所以我创造了一个游戏,其中玩家1和玩家2可以玩游戏,他们回答数学问题,基本上他们一个接一个地进行5轮,所以如果一个玩家首先回答问题他们“赢”,如果他们两者都回答它是一个“领带”。有点奇怪的方式来解释一个奇怪的游戏,但这不是我的问题。我已经完成了一个类的游戏,它功能齐全,我的问题是我需要玩家玩5个游戏,并告诉谁最赢得游戏,例如:“玩家1(或玩家2)已经赢了{0}次!我尝试了很多不同的东西,但它都没有用。这是我的代码:
static void Main(string[] args)
{
string ID = "";
bool gOver = false;
Console.WriteLine("ID 1 ");
ID = Console.ReadLine();
MathGame p1 = new MathGame(1, ID);
Console.WriteLine();
Console.WriteLine("ID 2");
ID = Console.ReadLine();
MathGame p2 = new MathGame(2, ID);
Console.WriteLine();
while (!gOver)
{
MathGame.prblm();
while (!p1.Game() && !p2.Game())
gOver = true;
}
}
重申;我想让游戏循环5次并告诉我谁赢了最多。我觉得我的错误很简单,让我感到很累。感谢您提供的任何帮助,本网站非常有用。
答案 0 :(得分:1)
你需要将游戏包裹在for循环中,而不是一段时间。然后当你的游戏的while循环结束时,你应该检查谁赢了并计算了它。在for循环之后,您应该有要显示的计数器。 有许多方法可以" tally"但最简单的方法是为每个玩家添加一个变量,并在获胜时增加。
const in GAME_COUNT_TO_PLAY = 5;
for(int i = 0; i < GAME_COUNT_TO_PLAY; i++)
{
MathGame.prblm();
while (!p1.Game() && !p2.Game())
{
//Keep track of score here, incriment some counter for winner
//e.g. if(p1.Win) p1Count++;
}
}
在for循环之后,你可以检查谁赢了。
if(p1Count > p2Count)
Display("Player 1 Wins!");
else if(p1Count < p2Count)
Display("Player 2 Wins!")
else
Display("Draw!");