c#数学游戏胜利计数器

时间:2016-02-15 18:11:06

标签: c# while-loop

所以我创造了一个游戏,其中玩家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次并告诉我谁赢了最多。我觉得我的错误很简单,让我感到很累。感谢您提供的任何帮助,本网站非常有用。

1 个答案:

答案 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!");