私は単純なテキストベースのゲームを作成していますが、私のループに問題があります。だから、私のキャラクターは同じ敵と3つの戦いがありますが、戦闘は1人のキャラクターが死ぬまで続きます。私の現在のコードでは、最初の戦闘だけをループしますが、戦闘2と3は空白のままにします。 HPは戦闘から戦闘に移りますが、後続の戦闘ごとにHPが25にリセットされます。 そして、キャラクターが死んですぐにループを止めるにはどうすればいいですか? 何が間違っていますか?シンプルなJavaテキストベースのゲームループ
Scanner keyboard = new Scanner(System.in);
Random rand = new Random();
int characterHP = 0, characterStrength = 0, weaponMin = 0, weaponMax = 0;
int enemyHP = 0, enemyStrength = 0, enemyWeaponMin = 0, enemyWeaponMax = 0;
boolean running = true, characterHasntDied = true, enemyHasntDied = true;
int choice;
String characterChoice = null;
String enemyChoice = null;
int ATK = 0, enemyATK = 0;
for (int i = 1; i <= 3; i++) {
ATK = rand.nextInt((weaponMax - weaponMin) + 1) + weaponMin;
enemyATK = rand.nextInt((enemyWeaponMax - enemyWeaponMin) + 1) + enemyWeaponMin;
int valueOfAttack = (ATK + characterStrength);
int enemyValueOfAttack = (enemyATK + enemyStrength);
enemyHP -= valueOfAttack;
characterHP -= enemyValueOfAttack;
if (enemyHP < 1) {
characterHasntDied = false;
System.out.println(characterChoice + " has defeated Goblin " + i);
break;
} else if (characterHP < 1) {
characterHasntDied = false;
System.out.println(characterChoice + " is defeated in battle!");
break;
}
}
}
が示されていない何か、例えばになり
loop
が2人の選手の間に3つの戦いをシミュレートしてから抜け出すますので
break
を使用しないでください。 'characterHasntDied'はどこに定義されていますか?コードを実行するときに、その出力と実際の出力を含めることができます。 – dave戦闘後に値(hp、characterHasntDiedなど)をリセットしますか?重要なコードをすべて提供してください(http://stackoverflow.com/help/mcveを参照)。たとえば、コードを分かりやすくするために、System.out.printlnsなどの値を変更していないコードの部分を削除します。 –