前提・実現したいこと
シンボルを見つけられません。コンパイルエラーを解決したい。
発生している問題・エラーメッセージ
Actor.java:4: エラー: シンボルを見つけられません int damage = offence - pActor.getDeffence(); ^ シンボル: 変数 offence 場所: クラス Actor Actor.java:4: エラー: シンボルを見つけられません int damage = offence - pActor.getDeffence(); ^ シンボル: メソッド getDeffence() 場所: タイプActorの変数 pActor Actor.java:9: エラー: シンボルを見つけられません pActor.setHitPoint(pActor.getHitPoint() - damage); ^ シンボル: メソッド getHitPoint() 場所: タイプActorの変数 pActor Actor.java:11: エラー: シンボルを見つけられません System.out.println(name + "は" + pActor.getName() + "に" + damage + "のダメージを与えた"); ^ シンボル: 変数 name 場所: クラス Actor Actor.java:11: エラー: シンボルを見つけられません System.out.println(name + "は" + pActor.getName() + "に" + damage + "のダメージを与えた"); ^ シンボル: メソッド getName() 場所: タイプActorの変数 pActor エラー5個
該当のソースコード
java
1public class Actor{ 2 public void attack(Actor pActor){ 3 //ダメージを計算 4 int damage = offence - pActor.getDeffence(); 5 //相手の防御力が自分より高いときは1ダメージ 6 if(damage <= 0){ 7 damage = 1; 8 //相手のHPからダメージ分のHPを減らします 9 pActor.setHitPoint(pActor.getHitPoint() - damage); 10 11 System.out.println(name + "は" + pActor.getName() + "に" + damage + "のダメージを与えた"); 12 } 13 } 14}
java
1public class Hero{ 2 private int hitPoint; 3 private int attack; 4 private int deffence; 5 6 public Hero(int pHitPoint,int pAttack,int pDeffence){ 7 hitPoint = pHitPoint; 8 attack = pAttack; 9 deffence = pDeffence; 10 } 11 public int getHitPoint(){ 12 return hitPoint; 13 } 14 public void setHitPoint(int pHitPoint){ 15 hitPoint = pHitPoint; 16 } 17 18 public int getAttack(){ 19 return attack; 20 } 21 public void setAttack(int pAttack){ 22 attack = pAttack; 23 } 24 25 public int getDeffence(){ 26 return deffence; 27 } 28 public void setDffence(int pDeffence){ 29 deffence = pDeffence; 30 } 31} 32 33 34 35 36 37
java
1public class MyMain{ 2 public static void main(String[] args){ 3 //主人公を作成、HP100、攻撃力20、防御力10 4 Actor hero = new Actor("主人公",100,20,10); 5 6 //敵を作成、HP80、攻撃力25、防御力6 7 Actor enemy = new Actor("敵",80,25,6); 8 9 while(true){ 10 hero.attack(enemy); 11 12 if(enemy.gerHitPoint() <= 0){ 13 14 System.out.println(enemy.getName() + "は死んだ"); 15 break; 16 } 17 enemy.attack(hero); 18 if(hero.getHitPoint() <= 0){ 19 20 System.out.println(enemy.getName() + "は死んだ"); 21 break; 22 } 23 } 24 } 25}
試したこと
解答と一字一句照らし合わせました
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
タイトルだけ見たときに要件が伝わりません。同じタイトルばかりだとあとから見返すときに困りませんか?
他の人は困ると思います。
「タイトルには要件を書きましょう」と「質問するときのヒント」にあるので、そこは倣ってもらえたらと。
ご指摘ありがとうございます。訂正しました。
コードはこれで全てですか?mainメソッドがないのにどうやって実行しているのでしょう?
エラー原因だけなら明白ですが的確な回答するのであれば再現確認する必要があります。
ご指摘ありがとうございます。実行クラスを追加しました。
>試したこと
>解答と一字一句照らし合わせました
とありますが、これでソースがすべてなのであれば、解答が間違っているとしか言えません。mts10806さんがご指摘されているように、原因は明白です。
回答3件
あなたの回答
tips
プレビュー