teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

実際の処理があったほうがわかりやすいという指摘が来たのでそこを直しました。

2021/08/17 19:16

投稿

batc
batc

スコア18

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,27 @@
1
1
  ゲームにて個々の攻撃手段として継承元のクラスにhowtofightというフィールドを作り、そのフィールドの内容によって処理を変えるというメソッドを書いたのですが、この書き方は開発現場とかでかなり珍しいものなんですか?
2
2
 
3
3
  ```Java
4
- public void attack(){
4
+ public void attack(Hero target){
5
5
  switch(this.howToFight){
6
6
  case 1:
7
+ if(0 < hero.hp-this.power){
8
+ System.out.println("敵はヒーローのHPを"+power+"削った");
9
+ hero.hp-=power;
10
+ }
7
- 一回攻撃
11
+ else{
12
+ System.out.println("ヒーローは負けてしまった");
13
+ hero.die();
14
+ }
8
15
  break;
9
16
  case 2:
17
+ if(0 < hero.mp-this.power){
18
+ System.out.println("敵はヒーローのmpを"+power+"削った");
19
+ hero.mp-=power;
20
+ }
10
- 二回攻撃
21
+ else{
22
+ System.out.println("ヒーローは負けてしまった");
23
+ hero.die();
24
+ }
11
25
  break;
12
26
  }
13
27
  }