質問編集履歴

6

コードの訂正

2022/05/16 07:54

投稿

potohuji-0517
potohuji-0517

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,88 +1,5 @@
1
1
  javaでRPGゲームのプログラムを作っています。魔王の行動を別クラスに分けたいのですが、どうしたらいいのかわかりません。教えていただけますでしょうか。
2
- enemyが入っている全ての行にエラーにがでます。
2
+
3
- 追記
4
- シンボル: 変数 enemy
5
- 場所: クラス Main
6
- Main.java:70: エラー: シンボルを見つけられません
7
- enemy.setHP((enemy.getHP() - 20));
8
- ^
9
- シンボル: 変数 enemy
10
- 場所: クラス Main
11
- Main.java:71: エラー: シンボルを見つけられません
12
- if (enemy.getHP() <= 0) {
13
- ^
14
- シンボル: 変数 enemy
15
- 場所: クラス Main
16
- Main.java:82: エラー: シンボルを見つけられません
17
- if (enemy.getHP() <= 0) {
18
- ^
19
- シンボル: 変数 enemy
20
- 場所: クラス Main
21
- Main.java:89: エラー: シンボルを見つけられません
22
- System.out.println(enemy.getName() + "に合計56のダメージ!");
23
-
24
-
25
-
26
- 上記のようなエラーメッセージが表示されます。
27
- ```Enemy.java
28
- import java.util.Random;
29
-
30
- public class Enemy extends Character {
31
-
32
- Character enemy = new Character(9999, "魔王");
33
-
34
-
35
- Enemy(int hp, String name) {
36
- super(hp, name);
37
- }
38
-
39
- public void action(Character Braver){
40
-
41
- Random rand = new Random();
42
- int val = rand.nextInt(5);
43
-
44
- switch (val) {
45
- case 0:
46
- System.out.println(this.getName() + "のこうげき!");
47
- System.out.println(Braver.getName() + "に51のダメージ!");
48
- System.out.println(" ");
49
-
50
- Braver.setHP((Braver.getHP() - 50));
51
- break;
52
-
53
- case 1:
54
- System.out.println(this.getName() + "のゆびからいてつくはどうがほとばしる!");
55
- System.out.println(Braver.getName() + "にかかっているすべてのじゅもんのききめがなくなった!");
56
- System.out.println(" ");
57
-
58
- break;
59
-
60
- case 2:
61
- System.out.println(this.getName() + "はイオナズンをとなえた!");
62
- System.out.println(Braver.getName() + "に118のダメージ!");
63
- System.out.println(" ");
64
-
65
- Braver.setHP((Braver.getHP() - 120));
66
- break;
67
-
68
- case 3:
69
- System.out.println(this.getName() + "はじごくからいかずちをよびよせた!");
70
- System.out.println(Braver.getName() + "に255のダメージ!");
71
- System.out.println(" ");
72
-
73
- Braver.setHP((Braver.getHP() - 255));
74
- break;
75
-
76
- case 4:
77
- System.out.println(this.getName() + "はふてきにわらっている。");
78
- System.out.println(" ");
79
-
80
- break;
81
- }
82
-
83
- }
84
-
85
- }
86
3
  ```
87
4
  ```Main.java
88
5
  import java.io.BufferedReader;
@@ -97,6 +14,7 @@
97
14
 
98
15
  //キャラクターの体力
99
16
  Character Braver = new Character(550, "勇者");
17
+ Enemy enemy = new Enemy(9999, "魔王");
100
18
 
101
19
  System.out.println("魔王があらわれた!");
102
20
 
@@ -115,7 +33,9 @@
115
33
  System.out.println(Braver.getName() + "はどうする? 1:たたかう 2:とくぎ 3:どうぐ 4:にげる");
116
34
  try{
117
35
  num = Integer.parseInt(br.readLine());
36
+ if(num < 5){
118
- break;
37
+ break;
38
+ }
119
39
  }catch(NumberFormatException e){
120
40
  //何もしないでループを続ける
121
41
  }
@@ -143,7 +63,9 @@
143
63
  System.out.println("1:メラミ 2:ホイミ 3:はやぶさ斬り 4:ぱふぱふ 5:もどる");
144
64
  try{
145
65
  num1 = Integer.parseInt(br.readLine());
66
+ if(num1 < 6){
146
- break;
67
+ break;
68
+ }
147
69
  }catch(NumberFormatException e){
148
70
  //何もしないでループを続ける
149
71
  }
@@ -195,9 +117,6 @@
195
117
 
196
118
  //一つ前に戻るコマンド
197
119
  case 5:
198
- continue Command;
199
-
200
- default:
201
120
  continue Command;
202
121
 
203
122
  }
@@ -211,7 +130,9 @@
211
130
  System.out.println("1:やくそう 2:うまのふん 3:てんばつの杖 4:もどる");
212
131
  try{
213
132
  num2 = Integer.parseInt(br.readLine());
133
+ if(num2 < 5){
214
134
  break;
135
+ }
215
136
  }catch(NumberFormatException e){
216
137
  //何もしないでループを続ける
217
138
  }
@@ -258,8 +179,6 @@
258
179
  //一つ前に戻るコマンド
259
180
  continue Command;
260
181
 
261
- default:
262
- continue Command;
263
182
 
264
183
  }
265
184
  continue;
@@ -297,7 +216,7 @@
297
216
  }
298
217
 
299
218
  //残りHPを表示するメソッド
300
- static void nowHp(Character Braver,Character Enemy) {
219
+ static void nowHp(Character Braver,Character enemy) {
301
220
 
302
221
  if(Braver.getHP() > 0){
303
222
  System.out.println(Braver.getName() +" HP:"+Braver.getHP());
@@ -307,6 +226,7 @@
307
226
  }
308
227
 
309
228
  }
229
+
310
230
  ```
311
231
  ```Character.java
312
232
  public class Character {

5

エラーメッセージ

2022/05/16 07:12

投稿

potohuji-0517
potohuji-0517

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,26 @@
1
1
  javaでRPGゲームのプログラムを作っています。魔王の行動を別クラスに分けたいのですが、どうしたらいいのかわかりません。教えていただけますでしょうか。
2
-
2
+ enemyが入っている全ての行にエラーにがでます。
3
3
  追記
4
+ シンボル: 変数 enemy
5
+ 場所: クラス Main
4
- Main.java:195: エラー: シンボルを見つけられません
6
+ Main.java:70: エラー: シンボルを見つけられません
5
- Enemy.action(Braver);
7
+ enemy.setHP((enemy.getHP() - 20));
6
- ^
8
+ ^
7
- シンボル: メソッド action(Character)
9
+ シンボル: 変数 enemy
10
+ 場所: クラス Main
11
+ Main.java:71: エラー: シンボルを見つけられません
12
+ if (enemy.getHP() <= 0) {
13
+ ^
8
- 場所: タイプCharacterの変数 Enemy
14
+ シンボル: 変数 enemy
9
- ー1個
15
+ 場所: クス Main
16
+ Main.java:82: エラー: シンボルを見つけられません
17
+ if (enemy.getHP() <= 0) {
18
+ ^
19
+ シンボル: 変数 enemy
20
+ 場所: クラス Main
21
+ Main.java:89: エラー: シンボルを見つけられません
22
+ System.out.println(enemy.getName() + "に合計56のダメージ!");
23
+
10
24
 
11
25
 
12
26
  上記のようなエラーメッセージが表示されます。
@@ -14,6 +28,9 @@
14
28
  import java.util.Random;
15
29
 
16
30
  public class Enemy extends Character {
31
+
32
+ Character enemy = new Character(9999, "魔王");
33
+
17
34
 
18
35
  Enemy(int hp, String name) {
19
36
  super(hp, name);
@@ -80,7 +97,6 @@
80
97
 
81
98
  //キャラクターの体力
82
99
  Character Braver = new Character(550, "勇者");
83
- Character Enemy = new Character(9999, "魔王");
84
100
 
85
101
  System.out.println("魔王があらわれた!");
86
102
 
@@ -114,7 +130,7 @@
114
130
  System.out.println(" ");
115
131
 
116
132
  //Trueである限り攻撃し続ける
117
- if (Enemy.getHP() <= 0) {
133
+ if (enemy.getHP() <= 0) {
118
134
  fin = true;
119
135
  }
120
136
  break;
@@ -135,11 +151,11 @@
135
151
  switch (num1) {
136
152
  case 1:
137
153
  System.out.println(Braver.getName() + "はメラミをとなえた!");
138
- System.out.println(Enemy.getName() + "に78のダメージ!");
154
+ System.out.println(enemy.getName() + "に78のダメージ!");
139
- System.out.println(" ");
155
+ System.out.println(" ");
140
-
156
+
141
- Enemy.setHP((Enemy.getHP() - 20));
157
+ enemy.setHP((enemy.getHP() - 20));
142
- if (Enemy.getHP() <= 0) {
158
+ if (enemy.getHP() <= 0) {
143
159
  fin = true;
144
160
  }
145
161
  break;
@@ -150,29 +166,29 @@
150
166
  System.out.println(" ");
151
167
 
152
168
  Braver.setHP((Braver.getHP() + 32));
153
- if (Enemy.getHP() <= 0) {
169
+ if (enemy.getHP() <= 0) {
154
170
  fin = true;
155
171
  }
156
172
  break;
157
173
 
158
174
  case 3:
159
175
  System.out.println(Braver.getName() + "のはやぶさのごとき高速の2回こうげき!");
160
- System.out.println(Enemy.getName() + "に合計56のダメージ!");
176
+ System.out.println(enemy.getName() + "に合計56のダメージ!");
161
- System.out.println(" ");
177
+ System.out.println(" ");
162
-
178
+
163
- Enemy.setHP((Enemy.getHP() - 56));
179
+ enemy.setHP((enemy.getHP() - 56));
164
- if (Enemy.getHP() <= 0) {
180
+ if (enemy.getHP() <= 0) {
165
181
  fin = true;
166
182
  }
167
183
  break;
168
184
 
169
185
  case 4:
170
- System.out.println(Braver.getName() + "は" + Enemy.getName() + "にぱふぱふしてあげた!");
186
+ System.out.println(Braver.getName() + "は" + enemy.getName() + "にぱふぱふしてあげた!");
171
- System.out.println(Enemy.getName() + "は冷ややかな視線でこちらを見ている...");
187
+ System.out.println(enemy.getName() + "は冷ややかな視線でこちらを見ている...");
172
- System.out.println(" ");
188
+ System.out.println(" ");
173
-
189
+
174
- Enemy.setHP(Enemy.getHP());
190
+ enemy.setHP(enemy.getHP());
175
- if (Enemy.getHP() <= 0) {
191
+ if (enemy.getHP() <= 0) {
176
192
  fin = true;
177
193
  }
178
194
  break;
@@ -209,7 +225,7 @@
209
225
  System.out.println(" ");
210
226
 
211
227
  Braver.setHP((Braver.getHP() + 30));
212
- if (Enemy.getHP() <= 0) {
228
+ if (enemy.getHP() <= 0) {
213
229
  fin = true;
214
230
  }
215
231
  break;
@@ -220,8 +236,8 @@
220
236
  System.out.println("しかしなにも起こらなかった。");
221
237
  System.out.println(" ");
222
238
 
223
- Enemy.setHP(Enemy.getHP());
239
+ enemy.setHP(enemy.getHP());
224
- if (Enemy.getHP() <= 0) {
240
+ if (enemy.getHP() <= 0) {
225
241
  fin = true;
226
242
  }
227
243
  break;
@@ -232,8 +248,8 @@
232
248
  System.out.println("あたりにはげしい旋風が巻き起こる!魔王に45ダメージ!");
233
249
  System.out.println(" ");
234
250
 
235
- Enemy.setHP((Enemy.getHP() - 45));
251
+ enemy.setHP((enemy.getHP() - 45));
236
- if (Enemy.getHP() <= 0) {
252
+ if (enemy.getHP() <= 0) {
237
253
  fin = true;
238
254
  }
239
255
  break;
@@ -262,8 +278,9 @@
262
278
 
263
279
  //値をランダムに取得し、対応した行動を表示する
264
280
  //Enemyクラスのactionメソッドを呼び出す
281
+
265
- Enemy.action(Braver);
282
+ enemy.action(Braver);
266
- nowHp(Braver,Enemy);
283
+ nowHp(Braver,enemy);
267
284
  }
268
285
  continue;
269
286
  }

4

エラーの表示

2022/05/16 06:29

投稿

potohuji-0517
potohuji-0517

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,24 +1,26 @@
1
1
  javaでRPGゲームのプログラムを作っています。魔王の行動を別クラスに分けたいのですが、どうしたらいいのかわかりません。教えていただけますでしょうか。
2
2
 
3
3
  追記
4
- Enemy.java:5: エラー: '.class'がありません
4
+ Main.java:195: エラー: シンボルを見つけられません
5
- Enemy(int Hp, String name) {
5
+ Enemy.action(Braver);
6
- ^
6
+ ^
7
- Enemy.java:5: エラー: ';'がありません
8
- Enemy(int Hp, String name) {
7
+ シンボル: メソッド action(Character)
9
- ^
10
- Enemy.java:5: エラー: ';'がありません
11
- Enemy(int Hp, String name) {
8
+ 場所: タイプCharacterの変数 Enemy
12
- ^
9
+ エラー1個
10
+
11
+
13
12
  上記のようなエラーメッセージが表示されます。
14
13
  ```Enemy.java
14
+ import java.util.Random;
15
+
15
16
  public class Enemy extends Character {
16
17
 
18
+ Enemy(int hp, String name) {
19
+ super(hp, name);
20
+ }
21
+
17
22
  public void action(Character Braver){
18
23
 
19
- Enemy(int hp, String name) {
20
- super(hp, name);
21
- }
22
24
  Random rand = new Random();
23
25
  int val = rand.nextInt(5);
24
26
 
@@ -88,11 +90,20 @@
88
90
  Command:while (!fin) {
89
91
  for (int i = 0; i < 1; i++) {
90
92
 
91
- System.out.println(Braver.getName() + "はどうする? 1:たたかう 2:とくぎ 3:どうぐ 4:にげる");
92
93
 
93
94
  //キーボード入力値を取得
94
95
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
96
+
97
+ int num;
98
+ while (true) {
99
+ System.out.println(Braver.getName() + "はどうする? 1:たたかう 2:とくぎ 3:どうぐ 4:にげる");
100
+ try{
95
- int num = Integer.parseInt(br.readLine());
101
+ num = Integer.parseInt(br.readLine());
102
+ break;
103
+ }catch(NumberFormatException e){
104
+ //何もしないでループを続ける
105
+ }
106
+ }
96
107
 
97
108
  //行動の分岐
98
109
  switch (num) {
@@ -111,9 +122,16 @@
111
122
  case 2:
112
123
 
113
124
  //特技のコマンド
125
+ int num1;
126
+ while(true){
114
- System.out.println("1:メラミ 2:ホイミ 3:はやぶさ斬り 4:ぱふぱふ 5:もどる");
127
+ System.out.println("1:メラミ 2:ホイミ 3:はやぶさ斬り 4:ぱふぱふ 5:もどる");
128
+ try{
115
- int num1 = Integer.parseInt(br.readLine());
129
+ num1 = Integer.parseInt(br.readLine());
116
-
130
+ break;
131
+ }catch(NumberFormatException e){
132
+ //何もしないでループを続ける
133
+ }
134
+ }
117
135
  switch (num1) {
118
136
  case 1:
119
137
  System.out.println(Braver.getName() + "はメラミをとなえた!");
@@ -163,14 +181,25 @@
163
181
  case 5:
164
182
  continue Command;
165
183
 
184
+ default:
185
+ continue Command;
186
+
166
187
  }
167
188
  continue;
168
189
 
169
190
  case 3:
170
191
 
171
192
  //道具のコマンド
193
+ int num2;
194
+ while(true){
172
195
  System.out.println("1:やくそう 2:うまのふん 3:てんばつの杖 4:もどる");
196
+ try{
173
- int num2 = Integer.parseInt(br.readLine());
197
+ num2 = Integer.parseInt(br.readLine());
198
+ break;
199
+ }catch(NumberFormatException e){
200
+ //何もしないでループを続ける
201
+ }
202
+ }
174
203
 
175
204
  switch (num2) {
176
205
  case 1:
@@ -211,6 +240,9 @@
211
240
 
212
241
  case 4:
213
242
  //一つ前に戻るコマンド
243
+ continue Command;
244
+
245
+ default:
214
246
  continue Command;
215
247
 
216
248
  }
@@ -229,56 +261,13 @@
229
261
  for(int j = 0; j < 1; j++){
230
262
 
231
263
  //値をランダムに取得し、対応した行動を表示する
264
+ //Enemyクラスのactionメソッドを呼び出す
232
- Random rand = new Random();
265
+ Enemy.action(Braver);
233
- int val = rand.nextInt(5);
234
-
235
- switch (val) {
236
- case 0:
237
- System.out.println(Enemy.getName() + "のこうげき!");
238
- System.out.println(Braver.getName() + "に51のダメージ!");
239
- System.out.println(" ");
240
-
241
- Braver.setHP((Braver.getHP() - 50));
242
- nowHp(Braver,Enemy);
266
+ nowHp(Braver,Enemy);
243
- break;
244
-
245
- case 1:
246
- System.out.println(Enemy.getName() + "のゆびからいてつくはどうがほとばしる!");
247
- System.out.println(Braver.getName() + "にかかっているすべてのじゅもんのききめがなくなった!");
248
- System.out.println(" ");
249
-
250
- nowHp(Braver,Enemy);
251
- break;
252
-
253
- case 2:
254
- System.out.println(Enemy.getName() + "はイオナズンをとなえた!");
255
- System.out.println(Braver.getName() + "に118のダメージ!");
256
- System.out.println(" ");
257
-
258
- Braver.setHP((Braver.getHP() - 120));
259
- nowHp(Braver,Enemy);
260
- break;
261
-
262
- case 3:
263
- System.out.println(Enemy.getName() + "はじごくからいかずちをよびよせた!");
264
- System.out.println(Braver.getName() + "に255のダメージ!");
265
- System.out.println(" ");
266
-
267
- Braver.setHP((Braver.getHP() - 255));
268
- nowHp(Braver,Enemy);
269
- break;
270
-
271
- case 4:
272
- System.out.println(Enemy.getName() + "はふてきにわらっている。");
273
- System.out.println(" ");
274
-
275
- nowHp(Braver,Enemy);
276
- break;
277
267
  }
278
268
  continue;
279
-
280
269
  }
281
- }
270
+
282
271
 
283
272
  if (Braver.getHP() <= 0) {
284
273
  fin = true;

3

コードの修正

2022/05/16 05:37

投稿

potohuji-0517
potohuji-0517

スコア2

test CHANGED
File without changes
test CHANGED
@@ -12,11 +12,13 @@
12
12
  ^
13
13
  上記のようなエラーメッセージが表示されます。
14
14
  ```Enemy.java
15
- public class Enemy extends Cahacter {
15
+ public class Enemy extends Character {
16
+
17
+ public void action(Character Braver){
16
18
 
17
19
  Enemy(int hp, String name) {
18
20
  super(hp, name);
19
-
21
+ }
20
22
  Random rand = new Random();
21
23
  int val = rand.nextInt(5);
22
24
 
@@ -58,7 +60,7 @@
58
60
 
59
61
  break;
60
62
  }
61
-
63
+
62
64
  }
63
65
 
64
66
  }

2

エラーについて

2022/05/16 05:21

投稿

potohuji-0517
potohuji-0517

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,11 +1,21 @@
1
1
  javaでRPGゲームのプログラムを作っています。魔王の行動を別クラスに分けたいのですが、どうしたらいいのかわかりません。教えていただけますでしょうか。
2
2
 
3
3
  追記
4
- Enemyをコンパイルすると、identifierがありませんとエラーメッセージが表示されます。
4
+ Enemy.java:5: エラー: '.class'がありません
5
+ Enemy(int Hp, String name) {
6
+ ^
7
+ Enemy.java:5: エラー: ';'がありません
8
+ Enemy(int Hp, String name) {
9
+ ^
10
+ Enemy.java:5: エラー: ';'がありません
11
+ Enemy(int Hp, String name) {
12
+ ^
13
+ 上記のようなエラーメッセージが表示されます。
5
14
  ```Enemy.java
6
15
  public class Enemy extends Cahacter {
7
16
 
8
- public void action(Braver){
17
+ Enemy(int hp, String name) {
18
+ super(hp, name);
9
19
 
10
20
  Random rand = new Random();
11
21
  int val = rand.nextInt(5);

1

Enemyクラスの追加

2022/05/16 04:23

投稿

potohuji-0517
potohuji-0517

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,58 @@
1
1
  javaでRPGゲームのプログラムを作っています。魔王の行動を別クラスに分けたいのですが、どうしたらいいのかわかりません。教えていただけますでしょうか。
2
+
3
+ 追記
4
+ Enemyをコンパイルすると、identifierがありませんとエラーメッセージが表示されます。
5
+ ```Enemy.java
6
+ public class Enemy extends Cahacter {
7
+
8
+ public void action(Braver){
9
+
10
+ Random rand = new Random();
11
+ int val = rand.nextInt(5);
12
+
13
+ switch (val) {
14
+ case 0:
15
+ System.out.println(this.getName() + "のこうげき!");
16
+ System.out.println(Braver.getName() + "に51のダメージ!");
17
+ System.out.println(" ");
18
+
19
+ Braver.setHP((Braver.getHP() - 50));
20
+ break;
21
+
22
+ case 1:
23
+ System.out.println(this.getName() + "のゆびからいてつくはどうがほとばしる!");
24
+ System.out.println(Braver.getName() + "にかかっているすべてのじゅもんのききめがなくなった!");
25
+ System.out.println(" ");
26
+
27
+ break;
28
+
29
+ case 2:
30
+ System.out.println(this.getName() + "はイオナズンをとなえた!");
31
+ System.out.println(Braver.getName() + "に118のダメージ!");
32
+ System.out.println(" ");
33
+
34
+ Braver.setHP((Braver.getHP() - 120));
35
+ break;
36
+
37
+ case 3:
38
+ System.out.println(this.getName() + "はじごくからいかずちをよびよせた!");
39
+ System.out.println(Braver.getName() + "に255のダメージ!");
40
+ System.out.println(" ");
41
+
42
+ Braver.setHP((Braver.getHP() - 255));
43
+ break;
44
+
45
+ case 4:
46
+ System.out.println(this.getName() + "はふてきにわらっている。");
47
+ System.out.println(" ");
48
+
49
+ break;
50
+ }
51
+
52
+ }
53
+
54
+ }
55
+ ```
2
56
  ```Main.java
3
57
  import java.io.BufferedReader;
4
58
  import java.io.IOException;