現在Java言語でゲームを作っています。
2体のモンスターを作り、順番に攻撃させ、先に0にしたほうが勝ちという内容です。
モンスター2体にはそれぞれ名前、HP、引数でモンスターを呼びだしてHPをランダムにダメージを与えるAttckメソッドを与え、
交互にAttackメソッドを実行し、お互いのHPどちらか0になるまで攻撃を続けると言った内容で以下のプログラムを書きました。
import
1 2 3 4public class Monster { 5 6 private String name; 7 8 private int hp; 9 10 private Monster() { 11 12 } 13 14 15 private Monster(String name, int hp) { 16 17 this.name = name; 18 this.hp = hp; 19 20 } 21 22 23 public String getName() { 24 return name; 25 } 26 27 28 public int getHp() { 29 return hp; 30 } 31 32 33 public void setName(String name) { 34 this.name = name; 35 } 36 37 38 public void setHp(int hp) { 39 this.hp = hp; 40 } 41 42 public void Attack(Monster m) { //対象のモンスターを(オブジェクト)のHPをランダムに減らす 43 44 System.out.println(this.name+"に攻撃!"); 45 46 47 48 Random damage = new Random(); 49 50 int random= damage.nextInt(10)+5; 51 52 53 this.hp = this.hp - random; 54 55 if (this.hp < 0){ 56 this.hp = 0; 57 } 58 59 60 System.out.println(this.name + "に" +random + "ダメージ。残りHPは" + hp + "です"); 61 62 63 64 65 66 67 68 } 69 70 71 public static void main(String[]args) { 72 73 74 System.out.println("バトルスタート"); 75 76 Monster m1 = new Monster("スライム",100); 77 78 Monster m2 = new Monster("ゴースト",100); 79 80 81 82 83 84 85 86 for (;;) { 87 88 89 90 91 m1.Attack(m2); 92 93 94 if (m2.hp <= 0) { 95 System.out.println("終了!スライムの勝利!"); 96 break; 97 98 } 99 100 101 m2.Attack(m1); 102 103 if(m1.hp <= 0) { 104 System.out.println("終了!ゴーストの勝利!"); 105 break; 106 } 107 108 } 109 110 } 111 112 113} 114 115コード
しかし、この内容で実行したところ。
スライムに攻撃!
スライムに●ダメージ!残りHPは●です。
ゴーストに攻撃!
ゴーストに●ダメージ!残りHPは●です。
引数で呼んだモンスターを攻撃するようにするにはどうすればよいのでしょうか?

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/15 13:53