【发布时间】:2013-02-08 11:20:52
【问题描述】:
我一直在为我的高级 RAP 项目开发一款游戏,直到最近我才开始使用这个循环。当玩家或敌人的生命值等于 0 时,我需要一种方法来迭代它。我不希望它们都等于 0,这两个示例都这样做。我已经尝试过几种方式重写它,但它不起作用。感谢所有为此提供帮助的人。
while (!(enemyHealth == 0 || playerHealth == 0)
{ //START WHILE
Console.WriteLine("[System:] Here are the list of moves that you can do:\n1)Punch\n2)Kick\n3)Round House Kick");
Console.WriteLine();
decision = Console.ReadLine();
Console.WriteLine();
decisionNumber = int.Parse(decision);
if (decisionNumber < 1 || decisionNumber > 3)
{ //STARTS IF
throw new Exception();
} //ENDS IF
else
{ //STARTS ELSE
enemyHealth = enemyHealth - attackNumber;
playerHealth = playerHealth - enemyAttackNumber;
Console.WriteLine();
Console.WriteLine("[System:] Enemy Health: " + enemyHealth + "\nYour Health: " + playerHealth);
} //ENDS ELSE
} //ENDS WHILE
while (enemyHealth > 0 || playerHealth > 0)
{ //START WHILE
Console.WriteLine("[System:] Here are the list of moves that you can do:\n1)Punch\n2)Kick\n3)Round House Kick");
Console.WriteLine();
decision = Console.ReadLine();
Console.WriteLine();
decisionNumber = int.Parse(decision);
if (decisionNumber < 1 || decisionNumber > 3)
{ //STARTS IF
throw new Exception();
} //ENDS IF
else
{ //STARTS ELSE
enemyHealth = enemyHealth - attackNumber;
playerHealth = playerHealth - enemyAttackNumber;
Console.WriteLine();
Console.WriteLine("[System:] Enemy Health: " + enemyHealth + "\nYour Health: " + playerHealth);
} //ENDS ELSE
} //ENDS WHILE
任何人都可以解决这个问题,因为我遇到了重大问题。
【问题讨论】:
-
请不要只要求我们为您解决问题。向我们展示您如何尝试自己解决问题,然后向我们确切地展示结果是什么,并告诉我们您为什么觉得它不起作用。请参阅“What Have You Tried?”了解您真正需要阅读的优秀文章。
-
problems你有什么用?它有什么作用以及它应该做什么? -
@John Saunders 我有。我已经尝试了从部分分解到重写循环的所有方法。没有任何效果。理论上是应该工作的。我对此感到沮丧,所以我可能应该给它取个更好的名字,但我想不出任何令人沮丧的东西。几乎把我的电脑扔在地上。
-
您的 WriteLine 是否曾经将健康值之一显示为零?
-
也许这是我可怜的 engrish 但是,在我看来,您在代码中所做的与您所说的完全相反:)
标签: c# loops while-loop project