前提
JavaでRPGを作成しています。
Heroクラスの作り方が分かりません。
実現したいこと
Heroクラスなどの作り方が何から始めたらよいか分かりません
発生している問題・エラーメッセージ
Heroクラスは書いてみたのですが正しいのか分からずAbstractHeroクラスについてどう書けばよいか分かりません。。
該当のソースコード
Java
1package checkpoints; 2 3import rpg.character.hero.Hero; 4 5public class Checkpoint1Hero { 6 7 public static void main(String[] args) { 8 // インスタンス生成 9 Hero h1 = new Hero("kojiro", 100, 10); 10 11 // 勇者の名前と現在のHPを表示 12 System.out.println("名前: " + h1.getName()); 13 System.out.println("現在のHP: " + h1.getHp()); 14 System.out.println("ジョブ: " + h1.getJob()); 15 16 // 勇者に攻撃を与える 17 int damage = 30; 18 System.out.println(h1.getName() + "に攻撃"); 19 System.out.println(h1.getName() + "は" + h1.gotDamage(damage) + "ダメージ受けた"); 20 System.out.println("現在のHP: " + h1.getHp()); 21 22 // 勇者を休ませる 23 System.out.println(h1.getName() + "を休ませた"); 24 h1.rest(); 25 System.out.println("現在のHP: " + h1.getHp()); 26 27 // 勇者が逃げ出した 28 h1.run(); 29 30 // 勇者に致命的なダメージを与える 31 damage = 500; 32 System.out.println(h1.getName() + "に致命的なダメージを与えた"); 33 System.out.println(h1.getName() + "は" + h1.gotDamage(damage) + "ダメージ受けた"); 34 System.out.println("現在のHP: " + h1.getHp()); 35 h1.actionStatus(); 36 } 37 38} 39
名前: kojiro 現在のHP: 100 ジョブ: 普通のヒーロー kojiroに攻撃 kojiroは30ダメージ受けた 現在のHP: 70 kojiroを休ませた 現在のHP: 100 kojiroは逃げ出した kojiroに致命的なダメージを与えた kojiroは100ダメージ受けた 現在のHP: 0 kojiroは倒れた
と出力させるHeroクラスなどを作成したい。
実際に書いてみたHeroクラス
Java
1package checkpoints; 2 3public class Hero { 4 private String name; 5 private int hp; 6 private int job; 7 private boolean isAlive; 8 private boolean isRunning; 9 public final int MAX_HP; 10 11 public Hero(String name, int hp, int job) { 12 this.name = name; 13 this.hp = hp; 14 this.job = job; 15 this.isAlive = true; 16 this.isRunning = false; 17 this.MAX_HP = hp; 18 } 19 20 public String getName() { 21 return this.name; 22 } 23 24 public int getHp() { 25 return this.hp; 26 } 27 28 public int getJob() { 29 return this.job; 30 } 31 32 public boolean isAlive() { 33 return this.isAlive; 34 } 35 36 public boolean isRunning() { 37 return this.isRunning; 38 } 39 40 public int gotDamage(int damage) { 41 if (damage < 0) { 42 damage = 0; 43 } 44 this.hp -= damage; 45 if (this.hp <= 0) { 46 this.hp = 0; 47 this.isAlive = false; 48 } 49 return damage; 50 } 51 52 public void rest() { 53 this.hp = this.MAX_HP; 54 } 55 56 public void run() { 57 this.isRunning = true; 58 } 59 60 public void actionStatus() { 61 if (!this.isAlive) { 62 System.out.println(this.name + "は倒れた"); 63 } else if (this.isRunning) { 64 System.out.println(this.name + "は逃げ出した"); 65 } else { 66 System.out.println(this.name + "は戦い続ける"); 67 } 68 } 69}
補足情報
勇者にしか無いメンバ変数やgetterメソッドを追加しましょう
• run():逃げる
• rest():休む
• getJob():ジョブ名を取得する

あなたの回答
tips
プレビュー