繁体   English   中英

C#计数器游戏机应用

[英]C# counter game console application

var choices = new Dictionary<int, string> { { 1, "Rock" }, { 2, "Paper" }, { 3, "Scissors" } };
int input;
var randomly = new Dictionary<int, string> { { 1, "Rock" }, { 2, "Paper" }, { 3, "Scissors" } };

Random random = new Random();
int RandomNumber = random.Next(1, 4);

do
{
    //Counter
    double Wins = 0.0;
    int Losses = 0;
    int Ties = 0;

    Console.WriteLine("-- Weapons Menu --");
    Console.WriteLine("-------------------");
    Console.WriteLine("1] Rock");
    Console.WriteLine("2] Paper");
    Console.WriteLine("3] Scissors");
    Console.WriteLine("Choose Your Weapon [1, 2 or 3]:");
    Console.WriteLine();
    input = int.Parse(Console.ReadLine());
    if (input == RandomNumber)
        Console.WriteLine("You Tied The Computer");
    Ties++;
    //Winning 
    ++Wins;
    if (input == 1 && RandomNumber == 3)

    Console.WriteLine("You Beat The Computer :)");


    if (input == 2 && RandomNumber == 1)

    Console.WriteLine("You Beat The Computer :)");


    if (input == 3 && RandomNumber == 2)

    Console.WriteLine("You Beat The Computer :)");

    //Lossing 
    ++Losses;
    if (input == 1 && RandomNumber == 2)
        Console.WriteLine("Sorry You Lost To The Computer :(");

    if (input == 2 && RandomNumber == 3)
        Console.WriteLine("You Beat The Computer :)");

    if (input == 3 && RandomNumber == 1)
        Console.WriteLine("You Beat The Computer :)");

    Console.WriteLine(string.Format("Player Chose {0} : Computer Chose {1}", choices[input], randomly[RandomNumber]));
    Console.WriteLine();
    Console.WriteLine("<Press Any Key To Continue...>");
    Console.WriteLine();

    Console.WriteLine("Player Wins      Computer Wins");
    Console.WriteLine("----------       --------------");
    Console.WriteLine(" {0}                {1}", Wins, Losses);
    Console.WriteLine();

    Console.ReadKey();
}
while (input != 4) ;
Console.WriteLine("Thanks for playing!");

尽管我无法在每场比赛完成后正确获得输赢记录,但代码运行良好。

此代码是您的问题(以及赢/输的问题)

        if (input == RandomNumber)
            Console.WriteLine("You Tied The Computer");
        Ties++;

它需要写成:

        if (input == RandomNumber){
            Console.WriteLine("You Tied The Computer");
            Ties++;
        }

说明:目前,您仅在input == randomnumber时才输出 Tied,这很好,但是无论是否为平局,您都将 Ties 增加 1。 赢也一样,输也一样。

IF 语句只会执行下一行。 如果作为 If 语句的结果需要执行多于 1 行,则需要将这些多行包装在 { }

除了Nikerym的答案:对于输赢逻辑,将三个“if”语句合并为一个“if”语句,并将增量语句移到“then”块中。

if ((input == 1 && RandomNumber == 3) || 
    (input == 2 && RandomNumber == 1) ||
    (input == 3 && RandomNumber == 2)) {

    Console.WriteLine("You Beat The Computer :)");
    Wins++;
}

损失的想法相同。 你的程序的编写方式,你总是在增加赢和输。 此外,Wins 应该是 int,而不是 double。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM