[英]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.