2016-06-11 97 views
1

我有问题的工作,其中2假设oppenents决斗RPG风格。我被要求给他们惠普,HP的每一回合都被他们的竞争对手所迷惑。我对它有基本的了解,但我的数字不断重复。在Visual Studio上工作15.提前致谢!基本虽然循环c#

/*Fighter 1 is Charlie The Unicorn 
*Fighter 2 is Nyan Cat 
*Fighter 1 has 100 HP 
*Fighter 2 has 150 HP 
*Fighter 1 can hit as hard as 15HP each turn 
*Fighter 2 can hit as hard as 10HP each turn 
*/ 

//Who wins the fight 

int fighterOneHealth = 100; 
int fighterTwoHealth = 150; 
Random randomizer = new Random(); 
while (fighterOneHealth > 0 || fighterTwoHealth > 0) 
{  
    int fOneRandomHit; 
    int fTwoRandomHit; 
    fOneRandomHit = randomizer.Next(0, 15); 
    fTwoRandomHit = randomizer.Next(0, 10); 
    int fightOneHpLoss = fighterOneHealth - fTwoRandomHit; 
    int fightTwoHpLoss = fighterTwoHealth - fOneRandomHit; 
    Console.WriteLine("After attack: Charlie the Unicorn HP: {0}, Nyan Cat HP: {1}", fightOneHpLoss, fightTwoHpLoss); 
} 
+0

你永远不会修改你在条件语句'fighterOneHealth> 0 ||中检查的值。 fighterTwoHealth> 0' – jdphenix

+0

此外,变量名称“fightOneHpLoss”和“fightTwoHpLoss”似乎让我感到困惑,因为它们是应用随机命中后留下的HP。也许你的意思是'fighterOneHealth - = fTwoRandomHit'等? – jdphenix

回答

6

你声明环内新变量:

int fightOneHpLoss = fighterOneHealth - fTwoRandomHit; 
int fightTwoHpLoss = fighterTwoHealth - fOneRandomHit; 

...但你永远不会修改这意味着可以代表球员当前健康的变量。你根本不需要这些额外的变量 - 你只需要减少健康状况:

fighterOneHealth -= fTwoRandomHit; 
fighterTwoHealth -= fOneRandomHit; 
Console.WriteLine("After attack: Charlie the Unicorn HP: {0}, Nyan Cat HP: {1}", 
    fighterOneHealth, fighterTwoHealth); 
+1

非常有帮助。谢谢乔恩。猜猜我只是在想它。 – Charlie