【问题标题】:C# counter game console applicationC# 计数器游戏机应用程序
【发布时间】:2015-10-22 23:44:26
【问题描述】:
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!");

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

【问题讨论】:

  • 尽量不要发布太多代码。考虑对其进行编辑以仅显示相关部分。请参阅 minimal reproducible example。签出 faqHow to Ask
  • TiesWinsLosses 每次都会递增。我想你不明白如何使用花括号。

标签: c# console


【解决方案1】:

这个代码是你的问题(以及进一步的胜利/失败)

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

需要写成:

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

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

IF 语句只会执行下一行。如果您有超过 1 行需要作为 If 语句的结果执行,那么您需要将这些多行包装在 { }

【讨论】:

    【解决方案2】:

    除了 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 和 Losses。 Wins 也应该是 int,而不是 double。

    【讨论】:

      猜你喜欢
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多