如何在 C# 中的石头、纸、剪刀游戏中随机化数组中的变量? [复制]
Posted
技术标签:
【中文标题】如何在 C# 中的石头、纸、剪刀游戏中随机化数组中的变量? [复制]【英文标题】:How to randomize variables from arrays in a rock, paper, scissors game in C#? [duplicate] 【发布时间】:2020-05-12 10:38:54 【问题描述】:我正在做一个石头、纸、剪刀的游戏。我正在对三个变量使用一个数组,并尝试将结果随机化并将随机字符串与用户输入进行比较。我用随机函数尝试了很多方法,代码中的一种对我来说最有意义,但它不起作用。我试图使这段代码尽可能简洁。我见过其他创建这个游戏的方法,但它们对我来说似乎效率低下。我相信坚持使用数组将使我的代码缩短并运行得更快。请帮助我并指导我正确的方向,谢谢。
using System;
namespace ConsoleApp1
class MyArray
static void Main(string[] args)
var array = new string[] "rock", "paper", "scissors" ;
var array = new Random();
Console.WriteLine("Rock, paper, or scissors?");
string rps = Console.ReadLine();
switch (rps)
case "Rock":
//??
break;
case "Paper":
//??
break;
case "Scissors":
//??
break;
【问题讨论】:
这能回答你的问题吗? Pick Random String From Array 看看enums 你具体要问什么? 【参考方案1】:在 C# 中,我们使用 System.Random 类生成一个随机值,您可以使用该值从数组或case
逻辑中进行选择。
您要使用的是.Next(int)
方法来获取要从数组中选择的索引。
在 rand 上查看我的文档:https://docs.microsoft.com/en-us/dotnet/api/system.random?view=netframework-4.8
一旦有了ai响应值,我们就可以使用简单的比较逻辑,打印出结果。
using System;
namespace ConsoleApp1
class MyArray
static void Main(string[] args)
var array = new string[] "rock", "paper", "scissors" ;
var rand = new Random();
Console.WriteLine("Rock, paper, or scissors?");
string rps = Console.ReadLine().ToLower().Trim(); // simple sanitation
var aiResponse = array[rand.Next(array.Length)]; // this is the PC's response
Console.WriteLine(" PC plays: 0", aiResponse);
// Now compare input to ai
if (rps == aiResponse)
Console.WriteLine("Draw!!!");
else
bool win = false;
switch (rps.ToLower())
case "rock":
win = aiResponse == "scissors";
break;
case "paper":
win = aiResponse == "rock";
break;
case "scissors":
win = aiResponse == "paper";
break;
default:
throw new ApplicationException("invalid input, expected: rock, paper or scissors");
if (win)
Console.WriteLine("You win!");
else
Console.WriteLine("You lose!");
【讨论】:
您好,感谢您的回答。所以我很困惑你所说的有一个人工智能响应值是什么意思。我必须为其分配一个变量吗?当我输入这段代码时,它给了我一个错误,即 aiResponse 在上下文中没有意义。谢谢 您的代码无法编译。 对不起@JimmyLimmy,我已经更新了代码示例(在移动视图中编写代码有时有点棘手)。我假设您希望用户与计算机程序 AI 对战。所以人工智能的反应是计算机选择与用户对战以上是关于如何在 C# 中的石头、纸、剪刀游戏中随机化数组中的变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章