Javaで戦闘プログラムを書きたいと思っています。
敵に遭遇(sysout("遭遇"))
while(自分のHPが0になるか敵のHPが0になるかで終わり)
選択肢(switch)
数値入力(BufferedReader)
case1:
①戦う(ダメーじ10)
case2:
②魔法(ダメージ20)
case3:
③逃げる(戦闘終了)
敵の行動
2回に一回攻撃(for i = 0; i<2; i++)
攻撃(ダメージ25)
なにもしない(0)
クラスを分ける
自分クラス
名前
HP 100
たたかう attack 10
魔法 attack 20
逃げる
敵クラス
HP 100
名前
たたかう attack 25
なにもしない attack 0
といった感じのざっくりとしたフローはかけたのですが
プログラムがうまく書けません。
主にダメージ計算がわかりません。
現在はこのような感じになっています。
どなたか教えてくださる方よろしくお願いいたします。
Java
1 2public class Main { 3 public static void main(String[] args) throws NumberFormatException, IOException { 4 Braver b = new Braver(); 5 Enemy e = new Enemy(); 6 b.setName("Braver"); 7 e.setEnemyname("Enemy"); 8 9 System.out.println("敵に遭遇しました。"); 10 while(e.getEnemyHP() <= 0 || b.getHP() <= 0){ 11 try { 12 for(int i = 0; i<2; i++){ 13 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 14 int num = Integer.parseInt(br.readLine()); 15 System.out.println(b.name+"の行動1:たたかう 2:まほう 3:にげる"); 16 switch(num){ 17 case 1: 18 System.out.println("たたかう"); 19 System.out.println(e.getEnemyname()+"に10のダメージを与えた"); 20 21 if(e.getEnemyHP() <= 0){ 22 break; 23 } 24 25 26 case 2: 27 System.out.println(("魔法")); 28 System.out.println(e.getEnemyname()+"に20のダメージを与えた"); 29 if(e.getEnemyHP() <= 0){ 30 break; 31 } 32 case 3: 33 System.out.println(("にげる")); 34 System.out.println(b.getName()+"は逃げ出した"); 35 break; 36 } 37 System.out.println(e.getEnemyname()+"の行動"); 38 if(i == 1){ 39 System.out.println(e.getEnemyname()+"の攻撃"); 40 41 System.out.println(b.getName()+"に25のダメージ"); 42 if(b.getHP() <= 0){ 43 break; 44 } 45 } 46 System.out.println("何もしなかった"); 47 } 48 } catch (Exception e1) { 49 e1.printStackTrace(); 50 } 51 } 52 } 53} 54 55 56 57public class Braver { 58 int HP = 100; 59 String name = "Braver"; 60 public int getHP() { 61 return HP; 62 } 63 public void setHP(int hP) { 64 HP = hP; 65 } 66 public String getName() { 67 return name; 68 } 69 public void setName(String name) { 70 this.name = name; 71 } 72 73 74} 75 76 77 78public class Enemy { 79 int enemyHP = 100; 80 String enemyname = "Enemy"; 81 public int getEnemyHP() { 82 return enemyHP; 83 } 84 public void setEnemyHP(int enemyHP) { 85 this.enemyHP = enemyHP; 86 } 87 public String getEnemyname() { 88 return enemyname; 89 } 90 public void setEnemyname(String enemyname) { 91 this.enemyname = enemyname; 92 } 93 94} 95
回答3件
あなたの回答
tips
プレビュー