C# if语句中的2个值不起作用-石头剪纸游戏C

C# if语句中的2个值不起作用-石头剪纸游戏C,c#,arrays,C#,Arrays,因此,我陷入了一种困境,我无法使我的if语句正确工作,它们在屏幕上什么也不显示,有趣的是,当计算机和用户在石头-布-剪刀游戏中绘图时,只有最上面的if语句工作 以下是方法中无法正常工作的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading

因此,我陷入了一种困境,我无法使我的if语句正确工作,它们在屏幕上什么也不显示,有趣的是,当计算机和用户在石头-布-剪刀游戏中绘图时,只有最上面的if语句工作

以下是方法中无法正常工作的代码:

         using System;
         using System.Collections.Generic;
         using System.Linq;
         using System.Text;
         using System.Threading.Tasks;

         namespace SPSProject
         {
         class Game
         {
    string compChoice;
    string playerChoice;
    string name;
    Random randy;
    public string PAPER;
    public string STONE;
    public string SCISSORS;

    static void Main()
    {
        Game myGame = new Game();  // create new Game object
        myGame.play();             // call its play method
    }
    //*******************************************************
    public Game()
    {
        randy = new Random();       // create new Random object
    }
    //*******************************************************
    public void play()
    {
        setupScreen();
        introduction();
        getPlayerChoice();
        getComputerChoice();
        drawPlayerChoice();
        printChoices();
        showResult();
        Console.ReadKey();   // wait for a key press
    }
    //********************************************************
    private void setupScreen()
    {
        Console.Title = " The Great Scissors-Paper-Stone Game";
        Console.SetWindowSize(100, 36);
        Console.SetBufferSize(100, 36);
        Console.BackgroundColor = ConsoleColor.White;
        Console.ForegroundColor = ConsoleColor.Black;
        Console.Clear();  // clear screen in chosen colour
    }
    //********************************************************
    private void introduction()
    {
        Console.WriteLine("\tPlay the Scissors Paper Stone Game");
        Console.WriteLine("\t==================================");
    }
    //********************************************************
    private void getPlayerChoice()
    {
        Console.WriteLine("WHAT IS YOUR NAME?");
        name = Console.ReadLine();
        Console.WriteLine("\n\twhat is your choice" + " " + name + "?");
        Console.Write("\tScissors Paper or Stone : ");
        playerChoice = Console.ReadLine();
        playerChoice = playerChoice.ToUpper();
    }
    //*******************************************************
    private void getComputerChoice()
    {
        int num;
        num = randy.Next(3);  // pick a random number (0, 1 or 2)

        if (num == 0)
        {
            compChoice = "SCISSORS";
        }

        if (num == 1)
        {
            compChoice = "PAPER";
        }

        if (num == 2)
        {
            compChoice = "STONE";
        }

    }
    //***************************************************
    private void printChoices()
    {
        Console.WriteLine("\n\t You picked " + playerChoice);
        Console.WriteLine("\tThe computer choice is " + compChoice);
    }
    //***************************************************
    private void showResult()
    {
        if (playerChoice == compChoice)
        {
            Console.WriteLine("\n\tA DRAW!!");
        }

        if (playerChoice == PAPER && compChoice == SCISSORS)
        {
            Console.WriteLine("COMPUTER WINS AS SCISSORS BEATS PAPER");
        }

        if (playerChoice == STONE && compChoice == SCISSORS)
        {
            Console.WriteLine(name + "WINS AS STONE BEATS SCISSORS");
        }

        if (playerChoice == SCISSORS && compChoice == PAPER)
        {
            Console.WriteLine(name + "WINS AS SCISSORS BEATS PAPER");
        }

        if (playerChoice == STONE && compChoice == PAPER)
        {
            Console.WriteLine(name = "WINS AS STONE BEATS PAPER");
        }

        if (playerChoice == SCISSORS && compChoice == STONE)
        {
            Console.WriteLine("COMPUTER WINS AS STONE BEATS SCISSORS");
        }

        if (playerChoice == PAPER && compChoice == STONE)
        {
            Console.WriteLine(name + "WINS AS PAPER BEATS STONE");
        }

    }
    //******************************************************
    private void drawPlayerChoice()
    {
        if (playerChoice == "SCISSORS")
        {
            drawScissors(15, 10);
        }
        else if (playerChoice == "PAPER")
        {
            drawPaper(15, 10);
        }
        else if (playerChoice == "STONE")
        {
            drawStone(15, 10);
        }
    }
    //*******************************************************************
    private void drawScissors(int x, int y)
    {
        Console.SetCursorPosition(x, y++);   // set start position then increment y to move down
        Console.Write("     \\            /");
        Console.SetCursorPosition(x, y++);
        Console.Write("      \\          /");
        Console.SetCursorPosition(x, y++);
        Console.Write("       \\        /");
        Console.SetCursorPosition(x, y++);
        Console.Write("        \\      /");
        Console.SetCursorPosition(x, y++);
        Console.Write("         \\    /");
        Console.SetCursorPosition(x, y++);
        Console.Write("          \\  /");
        Console.SetCursorPosition(x, y++);
        Console.Write("           **");
        Console.SetCursorPosition(x, y++);
        Console.Write("          /  \\");
        Console.SetCursorPosition(x, y++);
        Console.Write("    (----/    \\----)");
        Console.SetCursorPosition(x, y++);
        Console.Write("     \\  /      \\  /");
        Console.SetCursorPosition(x, y++);
        Console.Write("      ==        ==");
        Console.WriteLine("\n\n");
    }
    //**************************************************************
    private void drawStone(int x, int y)
    {
        Console.SetCursorPosition(x, y++);   // set start position then increment y to move down
        Console.Write("                 ___---___     ");
        Console.SetCursorPosition(x, y++);
        Console.Write("              .--         --.    ");
        Console.SetCursorPosition(x, y++);
        Console.Write("           ./   ()       .-. \\.   ");
        Console.SetCursorPosition(x, y++);
        Console.Write("           /   o    .   (   )  \\  ");
        Console.SetCursorPosition(x, y++);
        Console.Write("          / .            '-'    \\  ");
        Console.SetCursorPosition(x, y++);
        Console.Write("         /     ()   ()           \\ ");
        Console.SetCursorPosition(x, y++);
        Console.Write("        |    o           ()       | ");
        Console.SetCursorPosition(x, y++);
        Console.Write("        |      .--.           O   | ");
        Console.SetCursorPosition(x, y++);
        Console.Write("         \\ .  |    |              |  ");
        Console.SetCursorPosition(x, y++);
        Console.Write("          \\   `.__.'     o   .   /    ");
        Console.SetCursorPosition(x, y++);
        Console.Write("           `\\  o    ()         /'    ");
        Console.SetCursorPosition(x, y++);
        Console.Write("              `--___    ___--'    ");
        Console.SetCursorPosition(x, y++);
        Console.Write("                     ---         ");
        Console.WriteLine();
    }
    //************************************************************************
    private void drawPaper(int x, int y)
    {
        Console.SetCursorPosition(x, y++);    // set start position then increment y to move down
        Console.Write("      .--.------------------.");
        Console.SetCursorPosition(x, y++);
        Console.Write("     /      \\  \\ \\ \\ \\ \\ \\ \\ \\");
        Console.SetCursorPosition(x, y++);
        Console.Write("    /   OOO  \\                |");
        Console.SetCursorPosition(x, y++);
        Console.Write("   |   OOOO   || A N D R E X | |");
        Console.SetCursorPosition(x, y++);
        Console.Write("   |   OOOO   |                |");
        Console.SetCursorPosition(x, y++);
        Console.Write("    \\   OOO   /                /");
        Console.SetCursorPosition(x, y++);
        Console.Write("     \\      // / / / / / / / //");
        Console.SetCursorPosition(x, y++);
        Console.Write("       `--'-|| | | | | | | | |");
        Console.SetCursorPosition(x, y++);
        Console.Write("             \\                \\");
        Console.SetCursorPosition(x, y++);
        Console.Write("              \\                \\");
        Console.SetCursorPosition(x, y++);
        Console.Write("               \\                \\");
        Console.SetCursorPosition(x, y++);
        Console.Write("                \\ \\ \\ \\ \\ \\ \\ \\ \\\\");
        Console.SetCursorPosition(x, y++);
        Console.Write("                 \\________________\\");
        Console.WriteLine();
    }
    //************************************************************************
    private void drawSmile()
    {
        Console.WriteLine("\n                    .-\"\"\"\"-.-\"\"\"\"-. ");
        Console.WriteLine("               _.'`               `'._   ");
        Console.WriteLine("            .-'  __..,.___.___.,..__  '-.   ");
        Console.WriteLine("           '-.-;` |  |    |    |  | `;-.-'   ");
        Console.WriteLine("            \\'-\\_/\\__|    |    |__/\\_/-'/   ");
        Console.WriteLine("             \\, _     '---'---'     _ ,/   ");
        Console.WriteLine("              \\'./`'.--.--.--,--.'`\\.'/   ");
        Console.WriteLine("               \\ `'-;__|__|__|__;-'` /   ");
        Console.WriteLine("                '.                 .'   ");
        Console.WriteLine("                 `'-....---....-'`    ");
    }
    //*************************************
    private void drawThumbsUp()
    {
        Console.WriteLine();
        Console.WriteLine("       _ ");
        Console.WriteLine("      ( ((  ");
        Console.WriteLine("       \\ =\\   ");
        Console.WriteLine("      __\\_ `-\\   ");
        Console.WriteLine("     (____))(  \\-----  ");
        Console.WriteLine("     (____)) _    ");
        Console.WriteLine("     (____))   ");
        Console.WriteLine("     (____))____/-----  ");
        Console.WriteLine();
    }
    //*************************************
    private void drawThumbsDown()
    {
        Console.WriteLine();
        Console.WriteLine("       ______ ");
        Console.WriteLine("     ((____  \\-----  ");
        Console.WriteLine("     ((_____         ");
        Console.WriteLine("     ((_____      ");
        Console.WriteLine("     ((____   -----   ");
        Console.WriteLine("          /  /    ");
        Console.WriteLine("         (_((     ");
        Console.WriteLine();
    }
}
}


我尝试了不同的方法使“draw”一下面的if语句能够工作,方法是去掉两个“&&”,只使用一个。顺便说一下,这没有任何作用,我想不出任何其他方法来解决这个问题。

问题可能就在这里。您可以在Console.WriteLine中分配而不是连接

 if (playerChoice == STONE && compChoice == PAPER)
 {
     Console.WriteLine(name = "WINS AS STONE BEATS PAPER");
 }

但是通过一堆if语句来计算胜利者的想法通常是不好的

您从未设置字符串的值。 纸


也考虑使用枚举,如果在代码中使用其他,则 我们需要了解如何分配playerChoice和compChoice,以及纸/石头/剪刀的值。另外,如果玩家选择了他们不会输的石头,你需要显示代码,而不是描述它们。我无法通过电话游戏看出你的问题。你不需要发布全部代码,只需发布与你的问题相关的代码。尤其是竖起大拇指和微笑不太可能帮助任何人。@Himbrombere为自己说话,这让我很开心@泽山-诺恩疯了。供将来参考:虽然代码是一个问题,但它几乎肯定不是整个问题的原因。这可能只是许多问题中的一个。我对C允许赋值表达式感到惊讶和失望。它们是C/C++中经常出现错误的原因。@bufjape你还能怎么做a=b=C=5?我也解决了这个问题,非常感谢你给出的明确答案!虽然这可以通过调试来解决。。。为了扩展,您没有点击任何语句,因为您正在将播放器输入与其他内容进行比较。OK,我将更改此设置。谢谢您的帮助,现在可以使用了。不客气。但是看看另一个回答,因为它指出了另一个错误。