Javaで簡単なゲームを作成しているのですが、わからないことがありますので、質問させて頂きます。
勇者が敵を攻撃するというメソッド<attackEnemy>を
・自信の攻撃力の分だけ相手のHPを減らす。
・相手のHPを表示する
という二つの分を書いて、実行したところ
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Monster を変数に解決できません
Monster を変数に解決できません
at Hero.attackEnemy(Hero.java:32)
at Game.main(Game.java:17)
と例外が出てしまいました。
おそらくスコープの問題だと思うのですが、調べても分かりにくい表現ばかりで、よく分かりませんでしたので、こちらに質問させていただきました。
クラスはGameクラス、Heroクラス、Enemyクラスの3つです。
java
1public class Game { 2 public static void main(String[] args) { 3 Hero Yusya = new Hero(100, 15, 5, 15); 4 Enemy Monster = new Enemy(100, 10, 10, 12); 5 6 System.out.println("[初期値]"); 7 System.out.println("HiroのHPは" + Yusya.getHP() + "です。"); 8 System.out.println("Hiroの攻撃力は" + Yusya.getAttackPoint() + "です。"); 9 System.out.println("Hiroの防御力は" + Yusya.getDefendPoint() + "です。"); 10 System.out.println("Hiroのすばやさは" + Yusya.getSpeed() + "です。"); 11 System.out.println("MonsterのHPは" + Monster.getHP() + "です。"); 12 System.out.println("Monsterの攻撃力は" + Monster.getAttackPoint() + "です。"); 13 System.out.println("Monsterの防御力は" + Monster.getDefendPoint() + "です。"); 14 System.out.println("Monsterのすばやさは" + Monster.getSpeed() + "です。"); 15 16 Yusya.attackEnemy(); 17 18 } 19}
java
1 2public class Hero { 3 private int HP; 4 private int attackPoint; 5 private int defendPoint; 6 private int speed; 7 8 Hero(int hp, int ap, int dp, int sp){ 9 HP = hp; 10 attackPoint = ap; 11 defendPoint = dp; 12 speed = sp; 13 } 14 public int getHP() { 15 return HP; 16 } 17 18 public int getAttackPoint() { 19 return attackPoint; 20 } 21 22 public int getDefendPoint() { 23 return defendPoint; 24 } 25 26 public int getSpeed() { 27 return speed; 28 } 29 30 public void attackEnemy() { 31 System.out.println("勇者の攻撃:敵に" + this.attackPoint + "のダメージ"); 32 Monster.HP -= this.attackPoint; 33 System.out.println(Monster.HP); 34 35 } 36 public void heal() { 37 System.out.println("勇者の回復:勇者は50ptの体力を回復した"); 38 this.HP += 50; 39 if(this.HP > 100) this.HP = 100; 40 } 41 42 public void run() { 43 System.out.println("勇者は逃げ出した。"); 44 } 45}
java
1public class Enemy { 2 private int HP; 3 private int attackPoint; 4 private int defendPoint; 5 private int speed; 6 7 Enemy(int hp, int ap, int dp, int sp){ 8 HP = hp; 9 attackPoint = ap; 10 defendPoint = dp; 11 speed = sp; 12 } 13 14 public int getHP() { 15 return HP; 16 } 17 18 public int getAttackPoint() { 19 return attackPoint; 20 } 21 22 public int getDefendPoint() { 23 return defendPoint; 24 } 25 26 public int getSpeed() { 27 return speed; 28 } 29 30 public void attackEnemy() { 31 System.out.println("敵の攻撃:敵に" + this.attackPoint + "のダメージ"); 32 } 33 public void heal() { 34 System.out.println("敵の回復:敵は50ptの体力を回復した"); 35 this.HP += 50; 36 if(this.HP > 100) this.HP = 100; 37 } 38 39} 40
どのように対処すれば良いのか教えていただきたいです。