【发布时间】:2015-10-15 20:04:15
【问题描述】:
我创建了一个游戏,让玩家有 5 次玩机会,之后我想问玩家是想再玩还是退出。我已经看到它是用 Python 完成的,但我不知道 Python。我的代码工作得很好,但我想添加这两个额外的功能 如何在 C# 中实现这些功能? 作为参考,这是我的代码主类代码的样子。
namespace NumBaseBall
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("\t\t\t*************************************");
Console.WriteLine("\t\t\t* Let's Have Some Fun *");
Console.WriteLine("\t\t\t* Welcome To The *");
Console.WriteLine("\t\t\t* Number Baseball Game *");
Console.WriteLine("\t\t\t*************************************\n");
GameResults gameresults = new GameResults();
for (int trysCounter = 1; trysCounter <= 5; trysCounter++)
{
gameresults.Strikes = 0;
Random r = new Random();
var myRange = Enumerable.Range(1, 9);
var computerNumbers = myRange.OrderBy(i => r.Next()).Take(3).ToList();
Console.WriteLine("The Game's Three Random Integers Are: (Hidden from user)");
foreach (int integer in computerNumbers)
{
Console.WriteLine("{0}", integer);
}
List<int> playerNumbers = new List<int>();
Console.WriteLine("Please Enter Three Unique Single Digit Integers and Press ENTER after each:");
for (int i = 0; i < 3; i++)
{
Console.Write("");
int number = Convert.ToInt32(Console.ReadLine());
playerNumbers.Add(number);
}
gameresults.StrikesOrBalls(computerNumbers,playerNumbers);
Console.WriteLine("---> Computer's Numbers = {0}{1}{2}", computerNumbers[0], computerNumbers[1], computerNumbers[2]);
Console.WriteLine("---> Player's Numbers = {0}{1}{2}", playerNumbers[0], playerNumbers[1], playerNumbers[2]);
Console.WriteLine("---> Game Results = {0} STRIKES & {1} BALLS\n", gameresults.Strikes, gameresults.Balls);
Console.WriteLine("You have played this games {0} times\n", trysCounter);
gameresults.TotalStrikes = gameresults.TotalStrikes + gameresults.Strikes;
Console.WriteLine("STRIKES = {0} ", gameresults.TotalStrikes);
if (gameresults.TotalStrikes >= 3)
{
gameresults.Wins++;
Console.WriteLine("YOU ARE A WINNER!!!");
break;
}
}
if (gameresults.TotalStrikes <3)
Console.WriteLine("YOU LOSE :( PLEASE TRY AGAIN!");
}
}
}
【问题讨论】:
-
请解释您的代码是如何不工作的,这样我们就不必猜测了。
-
请花时间来格式化您的代码,所以它并没有完全正确 - 最好将其简化为 minimal 示例。根本不清楚“数组”和“列表”标签与问题有什么关系。
-
提示解决这个问题:分离关注点。将大部分代码从您的 main 方法中移到一个名为
PlayGame的方法中。那时,我们不需要关心里面有什么——我们只需要修复询问用户是否想再次玩,如果他们想再次调用该方法。 -
一种可能的方法是将 for 循环放在一个单独的方法中,在该方法中初始化变量。当用户输了,再次调用该方法重置游戏。
标签: c# console console-application exit