いくつかの背景情報、私はプログラミングが初めてで、まだ学習中なので、些細な間違いをお詫びします。練習などのためだけにテキストベースのゲームを自作しています。
詳細なコンテキストについては、ドロップボックスのすべてへのリンクを次に示します 。
現在、ゲームに戦闘システムを実装しようとしていますが、必要なときに戦闘シーケンスが終了しないという問題が発生しています。「戦闘シーケンス」は、次のように while ループです。
public void startCombat()
{
inCombat = true;
while(inCombat != false)// && herohealth > 0 && monsterhealth > 0)
{
checkAlive();
heroHitMonster();
checkAlive();
monsterHitHero();
}
attackinghero.setHeroHealth(herohealth);
attackedmonster.setMonsterHealth(monsterhealth);
}
checkAlive() メソッドは次のとおりです。
public void checkAlive()
{
if(herohealth <= 0)
{
System.out.println("You have died.");
attackinghero.clearInventory();
inCombat = false;
}
else if(monsterhealth <= 0)
{
System.out.println("You have killed the "+attackedmonster.getmonsterName()+"!");
inCombat = false;
combatlocation.removeMonster(attackedmonster.getmonsterName());
}
else
{
//
}
}
「ヒーロー」または「モンスター」のヘルスが0以下になったときに戦闘シーケンスを終了させようとしていますが、現在whileループを終了しているため、ヒーローが殺されてもヒットしたという結果が生成されます初ヒットのモンスター。
これは現在「スクリーンに印刷」されているものです
ネズミの体力が5減る!あなたはネズミを殺しました!
ヒーローの体力が 1 減る!
事前に感謝します。