ターン制ゲームの戦闘結果の戻り値について
解決したいこと
戻り値(retrun)の解決
javaでターン制のゲーム(結果の出力)をつくっています。
曖昧なreturn設定のせいでエラーが発生しました。
解決方法を教えて下さい。
詳細:戦闘結果としてやりたいこと
playerのhitpointが0になった場合"GameOver"と出力
across(ランダムに遭遇した敵)のhitpointが0になった場合"明日は、何をする?"と出力
15ターンで勝敗が決まらなかったら "勝負は決まらなかった。"と出力
書いたコード
TextQuestCard fight(TextQuestCard[] monster, TextQuestCard[] player) {
TextQuestCard across = player[0].adventure(monster, player);
int battlestart = 0;
int MyTurn = 0;
int EnemyTurn = 0;
if(battlestart == 0) {
if(player[0].speed >= across.speed) {
MyTurn = 1 ;
EnemyTurn = 0;
}
else {
MyTurn = 0 ;
EnemyTurn = 1;
}
battlestart = 1;
}
for(int i = 1; i <= 15; i++) {
if(MyTurn == 1) {
/////////////////////自分のターンが先行////////////////////////////
//////////////////////戦闘エフェクト//////////////////////////////
System.out.println(player[0].name + "の攻撃");
//////////////////////ダメージ計算////////////////////////////////
across.hitPoint = across.hitPoint - player[0].atkPoint;
System.out.println(across.name + "に" + player[0].atkPoint + "のダメージ");
if(across.hitPoint <= 0) {
System.out.println(across.name + "を倒した!");
return player[0];
}
System.out.println(across.name + "の攻撃");
player[0].hitPoint = player[0].hitPoint - across.atkPoint;
System.out.println(player[0].name + "は" + across.atkPoint + "のダメージ");
if(player[0].hitPoint <= 0) {
System.out.println(player[0].name + "は倒れてしまった!");
return 0;
}
}
if(EnemyTurn == 1) {
/////////////////////相手ターンが先行////////////////////////////
//////////////////////戦闘エフェクト//////////////////////////////
System.out.println(across.name + "の攻撃");
//////////////////////ダメージ計算////////////////////////////////
player[0].hitPoint = player[0].hitPoint - across.atkPoint;
System.out.println(player[0].name + "は" + across.atkPoint + "のダメージ");
if(player[0].hitPoint <= 0) {
System.out.println(player[0].name + "は倒れてしまった!");
return 0;
}
System.out.println(player[0].name + "の攻撃");
across.hitPoint = across.hitPoint - player[0].atkPoint;
System.out.println(across.name + "に" + player[0].atkPoint + "のダメージ");
if(across.hitPoint <= 0) {
System.out.println(across.name + "を倒した!");
return player[0];
}
}
}
return null;
}
TextQuestCard result = player[0].fight(monster, player);
if(result == null) {
System.out.println("勝負は決まらなかった。");
}
if(result == 0) {
System.out.println("GameOver");
}
if(result == player[0].hitPoint) {
System.out.println("明日は、何をする?");
}
情報が足りなかったりした場合はご連絡お願いします。
0