C# 我的石头剪刀游戏有问题

C# 我的石头剪刀游戏有问题,c#,c#-2.0,C#,C# 2.0,我知道这个问题以前已经发布过,我目前正在使用一些给我的代码,但是在添加了一些东西之后,我在让它实际输出我想要的东西方面遇到了问题 这就是我的控制台上显示的内容 你想玩石头、布和剪刀吗 对 你必须在石头布和剪刀之间做出选择 摇滚乐 退出程序 我在做什么不让程序进入游戏 using System; class rockpsV2 { public static void Main(string[]args) { do { Console.WriteLine("Do y

我知道这个问题以前已经发布过,我目前正在使用一些给我的代码,但是在添加了一些东西之后,我在让它实际输出我想要的东西方面遇到了问题

这就是我的控制台上显示的内容

  • 你想玩石头、布和剪刀吗
  • 你必须在石头布和剪刀之间做出选择
  • 摇滚乐
  • 退出程序
我在做什么不让程序进入游戏

using System;

class rockpsV2
{

public static void Main(string[]args)
{
   do
   {
       Console.WriteLine("Do you want to play rock,paper or scissors?");

       string userChoice = Console.ReadLine();

        Random r = new Random();
        int computerChoice = r.Next(4);

            if (computerChoice == 1)
            {
                if (userChoice == "rock")
                {
                    Console.WriteLine("The computer chose rock");
                    Console.WriteLine("It is a tie ");                     
                }
                else if (userChoice == "paper")
                {
                    Console.WriteLine("The computer chose paper");
                    Console.WriteLine("It is a tie ");

                }
                else if (userChoice == "scissors")
                {
                    Console.WriteLine("The computer chose scissors");
                    Console.WriteLine("It is a tie ");
                }
                else
                {
                    Console.WriteLine("You must choose rock,paper or scissors!");

                }

            }

            else if (computerChoice == 2)
            {
                if (userChoice == "rock")
                {
                    Console.WriteLine("The computer chose paper");
                    Console.WriteLine("Sorry you lose,paper beat rock");

                }
                else if (userChoice == "paper")
                {
                    Console.WriteLine("The computer chose scissors");
                    Console.WriteLine("Sorry you lose,scissors beat paper ");

                }
                else if (userChoice == "scissors")
                {
                    Console.WriteLine("The computer chose rock");
                    Console.WriteLine("Sorry you lose,rock beats scissors");                       
                }
                else
                {
                    Console.WriteLine("You must choose rock,paper or scissors!");        
                }
            }
            else if (computerChoice == 3)
            {
                if (userChoice == "rock")
                {
                    Console.WriteLine("The computer chose scissors");
                    Console.WriteLine("You win,rock beats scissors");

                }
                else if (userChoice == "paper")
                {
                    Console.WriteLine("The computer chose rock");
                    Console.WriteLine("You win,paper beats rock");

                }
                else if (userChoice == "scissors")
                {
                    Console.WriteLine("The computer chose paper");
                    Console.WriteLine("You win,scissors beat paper");

                }
                else
                {
                    Console.WriteLine("You must choose rock,paper or scissors!");

                }

            }

        } while(Console.ReadLine() == "yes");
    }
}

问题是:
Console.WriteLine(“你想玩石头、布还是剪刀?”)
(注意你在问题中写的“or”这个词是“and”)你用石头、布或剪刀回答这个问题,如果你给出不同的答案,它不会播放并转到
while(Console.ReadLine()=“yes”)行,如果您在此处回答任何与“是”不同的问题,它将离开do..while循环并退出程序

问题是:
Console.WriteLine(“您想玩石头、布或剪刀吗?”)
(注意你在问题中写的“or”这个词是“and”)你用石头、布或剪刀回答这个问题,如果你给出不同的答案,它不会播放并转到
while(Console.ReadLine()=“yes”)行,如果您在这里回答的不是“是”,它将离开do..while循环并退出程序

我将以这种方式重构整个程序

using System;

class rockpsV2
{

public static string[] choices = new string[]  { "rock", "paper", "scissor" };
public static int comparePlay(string player1, string player2) 
{
    if (player1 == player2)
        return  0;

    if (player1 == "rock" && player2 == "scissor" ||
        player1 == "paper" && player2 == "rock" ||
        player1 == "scissor" && player2 == "paper")
        return -1;

    return 1;
}


public static bool validChoice(string choice) 
{
    return choice == "rock" 
            || choice == "scissor"
            || choice == "paper";

}

public static void Main(string[] args)
{

    string userChoice = "";
   do
   {
       do {
        Console.WriteLine("Do you want to play rock,paper or scissors?");
        userChoice = Console.ReadLine();       

        if (!validChoice(userChoice)) {
            Console.WriteLine("You must choose rock,paper or scissors!");        
        }

       }
       while(!validChoice(userChoice));


        Random r = new Random();
        int computerChoiceRand = r.Next(100) % 3;
        string computerChoice = choices[computerChoiceRand];

        Console.WriteLine("The computer chose {0}", computerChoice);

        int whoWins = comparePlay(computerChoice, userChoice);

        if (whoWins < 0) {
            Console.WriteLine("Sorry you lose, {0} beats {1}", computerChoice, userChoice);
        }

        if (whoWins == 0) {
            Console.WriteLine("It is a tie");
        }

        if (whoWins > 0) {
            Console.WriteLine("You win,{0} beats {1}", userChoice, computerChoice);
        }

        Console.WriteLine("Want to play again?");
        } while(Console.ReadLine() == "yes");
    }
}
使用系统;
rockpsV2级
{
公共静态字符串[]选项=新字符串[]{“岩石”、“纸张”、“剪刀”};
公共静态整数比较播放(字符串播放器1、字符串播放器2)
{
如果(player1==player2)
返回0;
如果(player1==“摇滚乐”和&player2==“剪刀”||
player1==“纸张”和&player2==“岩石”||
player1==“剪刀”和&player2==“纸”)
返回-1;
返回1;
}
公共静态布尔有效选择(字符串选择)
{
返回选项==“摇滚乐”
||选项==“剪刀”
||选择==“纸张”;
}
公共静态void Main(字符串[]args)
{
字符串userChoice=“”;
做
{
做{
你想玩石头、布还是剪刀;
userChoice=Console.ReadLine();
if(!validChoice(userChoice)){
控制台。WriteLine(“你必须选择石头、布或剪刀!”);
}
}
而(!validChoice(userChoice));
随机r=新随机();
int computerChoiceRand=r.Next(100)%3;
字符串computerChoice=选项[computerChoiceRand];
WriteLine(“计算机选择了{0}”,computerChoice);
int whoWins=comparePlay(computerChoice,userChoice);
如果(谁赢<0){
WriteLine(“对不起,您输了,{0}比{1}”,computerChoice,userChoice);
}
如果(whoWins==0){
Console.WriteLine(“这是一条领带”);
}
如果(谁赢>0){
WriteLine(“你赢了,{0}比{1}”,userChoice,computerChoice);
}
控制台。WriteLine(“想再玩一次吗?”);
}而(Console.ReadLine()=“是”);
}
}

我会这样重构整个程序

using System;

class rockpsV2
{

public static string[] choices = new string[]  { "rock", "paper", "scissor" };
public static int comparePlay(string player1, string player2) 
{
    if (player1 == player2)
        return  0;

    if (player1 == "rock" && player2 == "scissor" ||
        player1 == "paper" && player2 == "rock" ||
        player1 == "scissor" && player2 == "paper")
        return -1;

    return 1;
}


public static bool validChoice(string choice) 
{
    return choice == "rock" 
            || choice == "scissor"
            || choice == "paper";

}

public static void Main(string[] args)
{

    string userChoice = "";
   do
   {
       do {
        Console.WriteLine("Do you want to play rock,paper or scissors?");
        userChoice = Console.ReadLine();       

        if (!validChoice(userChoice)) {
            Console.WriteLine("You must choose rock,paper or scissors!");        
        }

       }
       while(!validChoice(userChoice));


        Random r = new Random();
        int computerChoiceRand = r.Next(100) % 3;
        string computerChoice = choices[computerChoiceRand];

        Console.WriteLine("The computer chose {0}", computerChoice);

        int whoWins = comparePlay(computerChoice, userChoice);

        if (whoWins < 0) {
            Console.WriteLine("Sorry you lose, {0} beats {1}", computerChoice, userChoice);
        }

        if (whoWins == 0) {
            Console.WriteLine("It is a tie");
        }

        if (whoWins > 0) {
            Console.WriteLine("You win,{0} beats {1}", userChoice, computerChoice);
        }

        Console.WriteLine("Want to play again?");
        } while(Console.ReadLine() == "yes");
    }
}
使用系统;
rockpsV2级
{
公共静态字符串[]选项=新字符串[]{“岩石”、“纸张”、“剪刀”};
公共静态整数比较播放(字符串播放器1、字符串播放器2)
{
如果(player1==player2)
返回0;
如果(player1==“摇滚乐”和&player2==“剪刀”||
player1==“纸张”和&player2==“岩石”||
player1==“剪刀”和&player2==“纸”)
返回-1;
返回1;
}
公共静态布尔有效选择(字符串选择)
{
返回选项==“摇滚乐”
||选项==“剪刀”
||选择==“纸张”;
}
公共静态void Main(字符串[]args)
{
字符串userChoice=“”;
做
{
做{
你想玩石头、布还是剪刀;
userChoice=Console.ReadLine();
if(!validChoice(userChoice)){
控制台。WriteLine(“你必须选择石头、布或剪刀!”);
}
}
而(!validChoice(userChoice));
随机r=新随机();
int computerChoiceRand=r.Next(100)%3;
字符串computerChoice=选项[computerChoiceRand];
WriteLine(“计算机选择了{0}”,computerChoice);
int whoWins=comparePlay(computerChoice,userChoice);
如果(谁赢<0){
WriteLine(“对不起,您输了,{0}比{1}”,computerChoice,userChoice);
}
如果(whoWins==0){
Console.WriteLine(“这是一条领带”);
}
如果(谁赢>0){
WriteLine(“你赢了,{0}比{1}”,userChoice,computerChoice);
}
控制台。WriteLine(“想再玩一次吗?”);
}而(Console.ReadLine()=“是”);
}
}

请尝试提供一个较小的示例/更准确地描述您的问题请尝试提供一个较小的示例/更准确地描述您的问题