Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C语言中,如何将石头、布、剪刀游戏中的数组中的变量随机化?_C#_Arrays_Random - Fatal编程技术网

C# 在C语言中,如何将石头、布、剪刀游戏中的数组中的变量随机化?

C# 在C语言中,如何将石头、布、剪刀游戏中的数组中的变量随机化?,c#,arrays,random,C#,Arrays,Random,我正在做一个石头、布、剪刀的游戏。我使用一个数组来表示这三个变量,并尝试将结果随机化,并将随机字符串与用户输入进行比较。我用随机函数尝试了很多方法,代码中的方法对我来说最有意义,但它不起作用。我试图使这段代码尽可能简洁。我见过其他的方法来创造这个游戏,但他们似乎效率低下。我相信坚持使用数组将使我的代码缩短并运行得更快。请帮帮我,指引我正确的方向,谢谢 using System; namespace ConsoleApp1 { class MyArray {

我正在做一个石头、布、剪刀的游戏。我使用一个数组来表示这三个变量,并尝试将结果随机化,并将随机字符串与用户输入进行比较。我用随机函数尝试了很多方法,代码中的方法对我来说最有意义,但它不起作用。我试图使这段代码尽可能简洁。我见过其他的方法来创造这个游戏,但他们似乎效率低下。我相信坚持使用数组将使我的代码缩短并运行得更快。请帮帮我,指引我正确的方向,谢谢

 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;
            }

        }
        }
}

在C语言中,我们使用System.Random类生成一个随机值,您可以使用该值从数组或案例逻辑中进行选择。 您要使用的是.Nextint方法来获取要从数组中选择的索引

请在兰德上查看我的文档:

一旦得到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!");
            }
        }
    }
}

这回答了你的问题吗?看看你具体在问什么?嗨,谢谢你的回答。所以我不明白你说的ai响应值是什么意思。我必须给它分配一个变量吗?当我输入这段代码时,它给了我一个错误,aiResponse在上下文中没有意义。谢谢,代码无法编译。抱歉@JimmyLimmy,我已经更新了代码示例在移动视图中编写代码有时有点棘手。我假设你想让用户玩电脑程序,人工智能。因此,人工智能的反应是选择计算机来对抗用户