【发布时间】:2018-10-22 23:57:50
【问题描述】:
所以我目前正在玩一款类似RPG的文字游戏,在经历了一次攻击和反击之后,会出现一个对话框询问你是否要离开,但问题是,“是”和否”都导致它离开循环,如果你的HP和敌人的HP高于0,点击“否”它应该留在循环中。我认为它工作正常,直到我稍后在程序中添加代码但我可能是错的:
DialogResult dialogResult;
do
{
count++;
if (enemyHP > 0)
{
Random rand = new Random();
int chance = rand.Next(1, 101);
MessageBox.Show("You see another enemy...);
MessageBox.Show("Its HP is 10...2/5");
MessageBox.Show("His current HP is " + enemyHP + ");
if (chance <= 5)
{
MessageBox.Show("Miss");
}
else
{
MessageBox.Show("You dealt 5 damage to it.);
enemyHP -= 5;
}
if (enemyHP > 0)
MessageBox.Show("He also dealt 5 damage to you.);
playerHP -= 5;
}
if (enemyHP <= 0)
{
MessageBox.Show("Enemy has been defeated!");
dialogResult = (0);
}
else
if (playerHP > 0)
{
dialogResult = MessageBox.Show("Do you want to leave?", "Message box", MessageBoxButtons.YesNo);
}
} while (DialogResult == DialogResult.No && enemyHP > 0);
【问题讨论】:
-
我认为这行
} while (DialogResult == DialogResult.No && enemyHP > 0);有错字,是您过早退出的原因。也许它应该是} while (dialogResult == DialogResult.No && enemyHP > 0);- 注意小写的'dialogResult' -
另外
Random rand = new Random();会给你带来麻烦,每个应用程序初始化一次 -
@JayV 感谢您的回答!当我更改它时,有一条红色下划线并显示“使用未分配的局部变量”
-
@TheGeneral 感谢您的回答!我应该把它改成什么?
-
把它作为类变量放在你的主类中
private static readonly Random _rand = new Random();
标签: c# loops while-loop