【问题标题】:c# Math game win counterc# 数学游戏获胜计数器
【发布时间】:2016-02-15 18:11:05
【问题描述】:

所以我创建了一个游戏,玩家一和玩家二可以玩一个他们回答数学问题的游戏,基本上他们一个接一个地进行 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 次,然后告诉我谁赢的最多。我觉得我的错误很简单,让它只是我累了。感谢您的所有帮助,这个网站非常有帮助。

【问题讨论】:

  • 只需在while 循环周围添加一个for 循环,每次都重置您的gOver
  • 如果您已经知道谁赢了,请放置一个计数器来跟踪每个玩家的获胜情况
  • 不太清楚如何向这个计数器添加一个计数器,有没有我可以阅读的 msdn 页面?

标签: c# while-loop


【解决方案1】:

您需要将游戏包装在 for 循环中,而不是一会儿。然后当(你的游戏的)while循环结束时,你应该检查谁赢了并计算它。在 for 循环之后,您应该有计数器显示。 有很多方法可以“统计”,但最简单的方法是为每个玩家添加一个变量,并在他们获胜时递增。

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

【讨论】:

  • 我从没想过要为循环使用一个新变量,这比我之前测试的要好得多。我的代码已经检查了谁在我的班级中获胜,所以我所要做的就是在 while 循环中计算谁获胜最多。感谢您的解决方案,这非常有帮助。
  • 实际上,这个解决方案正在创建一个无限循环,它会经过 5 轮。
  • 添加了休息;解决了循环问题
  • 不确定你的“游戏”方法中有什么,但提供的代码不会超过5。很可能没有提供的“游戏”方法内部有问题。如果您添加了“休息”,那么您将不会玩 5 场比赛。 for 循环计算 5 个游戏,而“游戏”代码(未发布)应该管理实际的游戏问题并完成。很可能您甚至不需要内部循环,这就是您的问题。但是,由于您没有发布“游戏”方法,我无法确定您的实现方式并模仿了您最初的方式。
  • 此外,您的数学游戏可能需要在完成游戏后重新初始化。
猜你喜欢
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多