javaでRPGゲームのプログラムを作っています。魔王の行動を別クラスに分けたいのですが、どうしたらいいのかわかりません。教えていただけますでしょうか。
```Main.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { //キャラクターの体力 Character Braver = new Character(550, "勇者"); Enemy enemy = new Enemy(9999, "魔王"); System.out.println("魔王があらわれた!"); boolean fin = false; //終了フラグ //行動コマンド Command:while (!fin) { for (int i = 0; i < 1; i++) { //キーボード入力値を取得 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num; while (true) { System.out.println(Braver.getName() + "はどうする? 1:たたかう 2:とくぎ 3:どうぐ 4:にげる"); try{ num = Integer.parseInt(br.readLine()); if(num < 5){ break; } }catch(NumberFormatException e){ //何もしないでループを続ける } } //行動の分岐 switch (num) { case 1: System.out.println("勇者のこうげき!"); System.out.println("ミス!ダメージをあたえることができない!"); System.out.println(" "); //Trueである限り攻撃し続ける if (enemy.getHP() <= 0) { fin = true; } break; case 2: //特技のコマンド int num1; while(true){ System.out.println("1:メラミ 2:ホイミ 3:はやぶさ斬り 4:ぱふぱふ 5:もどる"); try{ num1 = Integer.parseInt(br.readLine()); if(num1 < 6){ break; } }catch(NumberFormatException e){ //何もしないでループを続ける } } switch (num1) { case 1: System.out.println(Braver.getName() + "はメラミをとなえた!"); System.out.println(enemy.getName() + "に78のダメージ!"); System.out.println(" "); enemy.setHP((enemy.getHP() - 20)); if (enemy.getHP() <= 0) { fin = true; } break; case 2: System.out.println(Braver.getName() + "はホイミをとなえた!"); System.out.println(Braver.getName() + "のHPが32回復した!"); System.out.println(" "); Braver.setHP((Braver.getHP() + 32)); if (enemy.getHP() <= 0) { fin = true; } break; case 3: System.out.println(Braver.getName() + "のはやぶさのごとき高速の2回こうげき!"); System.out.println(enemy.getName() + "に合計56のダメージ!"); System.out.println(" "); enemy.setHP((enemy.getHP() - 56)); if (enemy.getHP() <= 0) { fin = true; } break; case 4: System.out.println(Braver.getName() + "は" + enemy.getName() + "にぱふぱふしてあげた!"); System.out.println(enemy.getName() + "は冷ややかな視線でこちらを見ている..."); System.out.println(" "); enemy.setHP(enemy.getHP()); if (enemy.getHP() <= 0) { fin = true; } break; //一つ前に戻るコマンド case 5: continue Command; } continue; case 3: //道具のコマンド int num2; while(true){ System.out.println("1:やくそう 2:うまのふん 3:てんばつの杖 4:もどる"); try{ num2 = Integer.parseInt(br.readLine()); if(num2 < 5){ break; } }catch(NumberFormatException e){ //何もしないでループを続ける } } switch (num2) { case 1: System.out.println(Braver.getName() + "はやくそうをつかった!"); System.out.println(Braver.getName() + "のHPが30回復した!"); System.out.println(" "); Braver.setHP((Braver.getHP() + 30)); if (enemy.getHP() <= 0) { fin = true; } break; case 2: System.out.println(Braver.getName() + "はうまのふんをつかった!"); System.out.println("しかしなにも起こらなかった。"); System.out.println(" "); enemy.setHP(enemy.getHP()); if (enemy.getHP() <= 0) { fin = true; } break; case 3: System.out.println(Braver.getName() + "はてんばつの杖をふりかざした!"); System.out.println("あたりにはげしい旋風が巻き起こる!魔王に45ダメージ!"); System.out.println(" "); enemy.setHP((enemy.getHP() - 45)); if (enemy.getHP() <= 0) { fin = true; } break; case 4: //一つ前に戻るコマンド continue Command; } continue; case 4: //逃げるコマンド System.out.println("勇者はにげだした!"); System.out.println("しかしまわりこまれてしまった!"); System.out.println(" "); } break; } if (!fin) { for(int j = 0; j < 1; j++){ //値をランダムに取得し、対応した行動を表示する //Enemyクラスのactionメソッドを呼び出す enemy.action(Braver); nowHp(Braver,enemy); } continue; } if (Braver.getHP() <= 0) { fin = true; } } if (Braver.getHP() <= 0) { System.out.println(Braver.getName() + "はちからつきた..."); } } //残りHPを表示するメソッド static void nowHp(Character Braver,Character enemy) { if(Braver.getHP() > 0){ System.out.println(Braver.getName() +" HP:"+Braver.getHP()); }else{ System.out.println(Braver.getName() +" HP:0"); } } }
Character.java
1public class Character { 2 Character(int hp,String name){ 3 this.setHP(hp); 4 this.setName(name); 5 } 6 7 private int HP = 0; 8 private String Name = ""; 9 public int getHP() { 10 return HP; 11 } 12 public void setHP(int hp) { 13 HP = hp; 14 } 15 public String getName() { 16 return Name; 17 } 18 public void setName(String name) { 19 Name = name; 20 } 21}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/16 02:32
2022/05/16 03:43
2022/05/16 04:08
2022/05/16 04:14
2022/05/16 04:21
2022/05/16 04:29
2022/05/16 05:22
2022/05/16 05:27
2022/05/16 05:38
2022/05/16 05:43
2022/05/16 05:51
2022/05/16 06:14
2022/05/16 06:30
2022/05/16 06:34
2022/05/16 07:01
2022/05/16 07:09
2022/05/16 07:12
2022/05/16 07:22
2022/05/16 07:27
2022/05/16 07:53
2022/05/16 08:19
2022/05/16 08:23