質問編集履歴
3
◎現時点での最終ソースコードとエラーメッセージ、挨拶文を追記 ◎文字数オーバーのため古い情報を削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -122,129 +122,109 @@
|
|
122
122
|
|
123
123
|
CentOS Linux release 7.5.1804 (Core)
|
124
124
|
|
125
|
-
###
|
125
|
+
###2019/11/11 0:38追記
|
126
|
-
|
126
|
+
先程、解答欄にてgentaro様がインデントを修正したソースコードを投稿してくださいましたので(gentaro様、ありがとうございます!)こちら側で実行してみたのですが、やはりエラーの嵐が収まる気配がありません…
|
127
|
-
最初の`int count = 1;//砲撃回数カウント用の変数を作成`と
|
128
|
-
|
127
|
+
このコードは「潜水艦ゲームを作成しなさい」という名目の学校の課題で書いたものなので、出題した先生にアドバイスを頂くことにしました。結果は早急にこちらに投稿致します。
|
129
|
-
`public static void main(String[] args) throws IOException {`メゾッドの中に入れてみました。
|
130
|
-
しかし、相変わらずエラーが発生するという状況となってしまっております。
|
131
|
-
|
128
|
+
それまでに何かお気づきの点がございましたらこちらに投稿して頂けるとありがたいです。
|
132
129
|
|
133
|
-
|
130
|
+
稚拙な質問文・ソースコードではございましたが、それらから問題の原因の特定を行ってくれた皆様に深く感謝申し上げます。
|
134
131
|
|
132
|
+
コンパイル実行時のエラー
|
135
133
|
```
|
136
|
-
BattleShip.java:
|
134
|
+
BattleShip.java:56: エラー: 型の開始が不正です
|
137
|
-
|
135
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
138
|
-
|
136
|
+
^
|
139
|
-
シンボル: クラス IOException
|
140
|
-
場所: クラス BattleShip
|
141
|
-
BattleShip.java:
|
137
|
+
BattleShip.java:56: エラー: <identifier>がありません
|
142
|
-
|
138
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
143
|
-
|
139
|
+
^
|
144
|
-
シンボル: クラス BufferedReader
|
145
|
-
場所: クラス BattleShip
|
146
|
-
BattleShip.java:
|
140
|
+
BattleShip.java:56: エラー: ';'がありません
|
147
|
-
|
141
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
148
|
-
|
142
|
+
^
|
149
|
-
シンボル: クラス BufferedReader
|
150
|
-
場所: クラス BattleShip
|
151
|
-
BattleShip.java:
|
143
|
+
BattleShip.java:56: エラー: 型の開始が不正です
|
152
|
-
|
144
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
153
|
-
|
145
|
+
^
|
154
|
-
シンボル: クラス InputStreamReader
|
155
|
-
場所: クラス BattleShip
|
156
|
-
BattleShip.java:
|
146
|
+
BattleShip.java:56: エラー: <identifier>がありません
|
157
|
-
|
147
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
158
|
-
|
148
|
+
^
|
159
|
-
最初の型: boolean
|
160
|
-
2番目の型: int
|
161
|
-
BattleShip.java:
|
149
|
+
BattleShip.java:56: エラー: ';'がありません
|
162
|
-
|
150
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
163
|
-
|
151
|
+
^
|
164
|
-
BattleShip.java:
|
152
|
+
BattleShip.java:57: エラー: 型の開始が不正です
|
165
|
-
|
153
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】"); //敗北メッセージ
|
166
|
-
|
154
|
+
^
|
167
|
-
最初の型: boolean
|
168
|
-
2番目の型: int
|
169
|
-
BattleShip.java:
|
155
|
+
BattleShip.java:57: エラー: ';'がありません
|
170
|
-
|
156
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】"); //敗北メッセージ
|
171
|
-
|
157
|
+
^
|
172
|
-
BattleShip.java:
|
158
|
+
BattleShip.java:57: エラー: 無効なメソッド宣言です。戻り値の型が必要です。
|
173
|
-
|
159
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】"); //敗北メッセージ
|
174
|
-
|
160
|
+
^
|
175
|
-
BattleShip.java:
|
161
|
+
BattleShip.java:57: エラー: 型の開始が不正です
|
176
|
-
|
162
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】"); //敗北メッセージ
|
177
|
-
|
163
|
+
^
|
178
|
-
BattleShip.java:
|
164
|
+
BattleShip.java:59: エラー: class、interfaceまたはenumがありません
|
179
|
-
|
165
|
+
}
|
180
|
-
|
166
|
+
^
|
181
|
-
BattleShip.java:41: エラー: staticでない変数 syをstaticコンテキストから参照することはできません
|
182
|
-
int ym = sy - hy;//潜水艦y座標と着弾y座標の誤差の算出
|
183
|
-
^
|
184
|
-
エラー
|
167
|
+
エラー11個
|
185
|
-
|
186
168
|
```
|
187
|
-
|
169
|
+
ソースコード全体
|
188
|
-
```
|
170
|
+
```
|
189
171
|
public class BattleShip {
|
190
172
|
//潜水艦の座標を乱数で0-9の範囲で生成
|
191
|
-
int sx = (int)(Math.random()*10);
|
173
|
+
int sx = (int)(Math.random() * 10);
|
192
|
-
|
174
|
+
int sy = (int)(Math.random() * 10);
|
193
175
|
|
194
|
-
|
195
176
|
public static void main(String[] args) throws IOException {
|
196
|
-
int count = 1;//砲撃回数カウント用の変数を作成
|
197
177
|
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
|
178
|
+
int count = 1; //砲撃回数カウント用の変数を作成
|
198
179
|
|
199
|
-
|
180
|
+
while (count <= 10) { //攻撃回数が10回を越えていない場合は繰り返す
|
200
|
-
|
181
|
+
//数値の入力
|
201
|
-
|
182
|
+
System.out.println("砲撃のx座標を入力してください。(0-9)"); //ユーザに入力を促す
|
202
|
-
|
183
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
203
|
-
|
184
|
+
while (!(0 <= hx <= 9)) { //0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
204
|
-
|
185
|
+
System.out.println("!エラー:0から9までの整数を入力してください!"); //ユーザに入力を促す
|
205
|
-
|
186
|
+
System.out.println("砲撃のx座標を入力してください。(0-9)"); //ユーザに入力を促す
|
206
|
-
|
187
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
207
|
-
|
188
|
+
}
|
208
189
|
|
209
|
-
|
190
|
+
System.out.println("砲撃のy座標を入力してください。(0-9)"); //ユーザに入力を促す
|
210
|
-
|
191
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
211
|
-
|
192
|
+
while (!(0 <= hy <= 9)) { //0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
212
|
-
|
193
|
+
System.out.println("!エラー:0から9までの整数を入力してください!"); //ユーザに入力を促す
|
213
|
-
|
194
|
+
System.out.println("砲撃のy座標を入力してください。(0-9)"); //ユーザに入力を促す
|
214
|
-
|
195
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
215
|
-
|
196
|
+
}
|
216
|
-
|
197
|
+
//数値入力終了、ゲーム開始
|
217
|
-
|
198
|
+
System.out.println("砲撃回数" + count); //砲撃回数の表示
|
218
199
|
|
219
|
-
|
200
|
+
if (sx == hx && sy == hy) { //命中判定
|
220
|
-
|
201
|
+
//(※砲撃が命中した場合の処理)
|
221
|
-
|
202
|
+
System.out.println("砲撃(" + hx + "," + hy + ")は命中しました!"); //命中座標の通知
|
222
|
-
|
203
|
+
System.out.println("相手の潜水艦を撃沈しました。 【YOU WIN!】"); //勝利メッセージ
|
223
|
-
|
204
|
+
System.out.println(); //表示を整えるために改行
|
224
|
-
|
205
|
+
count = 0; //ループ脱出のためにカウント変数を0に設定
|
225
|
-
|
206
|
+
} else { //(※砲撃が外れた場合の処理)
|
226
|
-
|
207
|
+
System.out.println("砲撃(" + hx + "," + hy + ")は外れました..."); //命中座標の通知
|
227
|
-
|
208
|
+
//ここからマンハッタン距離の算出
|
228
|
-
|
209
|
+
int xm = sx - hx; //潜水艦x座標と着弾x座標の誤差の算出
|
229
|
-
|
210
|
+
int ym = sy - hy; //潜水艦y座標と着弾y座標の誤差の算出
|
230
|
-
|
211
|
+
if (xm < 0) { //潜水艦x座標と着弾x座標の誤差が負の値になった場合の修正処理
|
231
|
-
|
212
|
+
xm = -xm;
|
232
|
-
|
213
|
+
}
|
233
|
-
|
214
|
+
if (ym < 0) { //潜水艦y座標と着弾y座標の誤差が負の値になった場合の修正処理
|
234
|
-
|
215
|
+
ym = -ym;
|
235
|
-
|
216
|
+
}
|
236
|
-
|
217
|
+
int man = xm + ym; //x座標、y座標それぞれの誤差の合計の算出
|
237
|
-
|
218
|
+
//マンハッタン距離の算出終了
|
238
|
-
|
219
|
+
System.out.println("相手潜水艦との誤差は" + man); //砲撃
|
239
|
-
|
220
|
+
count++; //カウント演算子を1増加
|
240
|
-
|
221
|
+
System.out.println(); //表示を整えるために改行
|
241
|
-
|
222
|
+
}
|
242
|
-
|
223
|
+
}
|
243
|
-
if (count > 10) {//カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
244
|
-
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】");//敗北メッセージ
|
245
|
-
|
224
|
+
}
|
246
|
-
}
|
247
225
|
|
248
|
-
|
226
|
+
if (count > 10) { //カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
227
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】"); //敗北メッセージ
|
228
|
+
}
|
249
229
|
}
|
250
230
|
```
|
2
修正後のエラーメッセージ・ソースコードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -120,4 +120,131 @@
|
|
120
120
|
```
|
121
121
|
### 補足情報(FW/ツールのバージョンなど)
|
122
122
|
|
123
|
-
CentOS Linux release 7.5.1804 (Core)
|
123
|
+
CentOS Linux release 7.5.1804 (Core)
|
124
|
+
|
125
|
+
### 2019/11/10 23:45追記
|
126
|
+
「if文がメゾットの中に入っていないのでは」といった内容のアドバイスを頂いたため、
|
127
|
+
最初の`int count = 1;//砲撃回数カウント用の変数を作成`と
|
128
|
+
最後の`if (count > 10) {//カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理`を
|
129
|
+
`public static void main(String[] args) throws IOException {`メゾッドの中に入れてみました。
|
130
|
+
しかし、相変わらずエラーが発生するという状況となってしまっております。
|
131
|
+
解釈や修正の内容がズレているといった可能性も高いですが、アドバイスを頂けたらと思います。
|
132
|
+
|
133
|
+
エラー内容
|
134
|
+
|
135
|
+
```
|
136
|
+
BattleShip.java:7: エラー: シンボルを見つけられません
|
137
|
+
public static void main(String[] args) throws IOException {
|
138
|
+
^
|
139
|
+
シンボル: クラス IOException
|
140
|
+
場所: クラス BattleShip
|
141
|
+
BattleShip.java:9: エラー: シンボルを見つけられません
|
142
|
+
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
|
143
|
+
^
|
144
|
+
シンボル: クラス BufferedReader
|
145
|
+
場所: クラス BattleShip
|
146
|
+
BattleShip.java:9: エラー: シンボルを見つけられません
|
147
|
+
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
|
148
|
+
^
|
149
|
+
シンボル: クラス BufferedReader
|
150
|
+
場所: クラス BattleShip
|
151
|
+
BattleShip.java:9: エラー: シンボルを見つけられません
|
152
|
+
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
|
153
|
+
^
|
154
|
+
シンボル: クラス InputStreamReader
|
155
|
+
場所: クラス BattleShip
|
156
|
+
BattleShip.java:15: エラー: 二項演算子'<='のオペランド型が不正です
|
157
|
+
while (!(0 <= hx <= 9)) {//0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
158
|
+
^
|
159
|
+
最初の型: boolean
|
160
|
+
2番目の型: int
|
161
|
+
BattleShip.java:18: エラー: 変数 hxはすでにメソッド main(String[])で定義されています
|
162
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
163
|
+
^
|
164
|
+
BattleShip.java:23: エラー: 二項演算子'<='のオペランド型が不正です
|
165
|
+
while (!(0 <= hy <= 9)) {//0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
166
|
+
^
|
167
|
+
最初の型: boolean
|
168
|
+
2番目の型: int
|
169
|
+
BattleShip.java:26: エラー: 変数 hyはすでにメソッド main(String[])で定義されています
|
170
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
171
|
+
^
|
172
|
+
BattleShip.java:31: エラー: staticでない変数 sxをstaticコンテキストから参照することはできません
|
173
|
+
if (sx == hx && sy == hy) {//命中判定
|
174
|
+
^
|
175
|
+
BattleShip.java:31: エラー: staticでない変数 syをstaticコンテキストから参照することはできません
|
176
|
+
if (sx == hx && sy == hy) {//命中判定
|
177
|
+
^
|
178
|
+
BattleShip.java:40: エラー: staticでない変数 sxをstaticコンテキストから参照することはできません
|
179
|
+
int xm = sx - hx;//潜水艦x座標と着弾x座標の誤差の算出
|
180
|
+
^
|
181
|
+
BattleShip.java:41: エラー: staticでない変数 syをstaticコンテキストから参照することはできません
|
182
|
+
int ym = sy - hy;//潜水艦y座標と着弾y座標の誤差の算出
|
183
|
+
^
|
184
|
+
エラー12個
|
185
|
+
|
186
|
+
```
|
187
|
+
修正後の全ソースコード
|
188
|
+
```lang-Java
|
189
|
+
public class BattleShip {
|
190
|
+
//潜水艦の座標を乱数で0-9の範囲で生成
|
191
|
+
int sx = (int)(Math.random()*10);
|
192
|
+
int sy = (int)(Math.random()*10);
|
193
|
+
|
194
|
+
|
195
|
+
public static void main(String[] args) throws IOException {
|
196
|
+
int count = 1;//砲撃回数カウント用の変数を作成
|
197
|
+
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
|
198
|
+
|
199
|
+
while (count <= 10) {//攻撃回数が10回を越えていない場合は繰り返す
|
200
|
+
//数値の入力
|
201
|
+
System.out.println("砲撃のx座標を入力してください。(0-9)"); //ユーザに入力を促す
|
202
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
203
|
+
while (!(0 <= hx <= 9)) {//0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
204
|
+
System.out.println("!エラー:0から9までの整数を入力してください!"); //ユーザに入力を促す
|
205
|
+
System.out.println("砲撃のx座標を入力してください。(0-9)"); //ユーザに入力を促す
|
206
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
207
|
+
}
|
208
|
+
|
209
|
+
System.out.println("砲撃のy座標を入力してください。(0-9)"); //ユーザに入力を促す
|
210
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
211
|
+
while (!(0 <= hy <= 9)) {//0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
212
|
+
System.out.println("!エラー:0から9までの整数を入力してください!"); //ユーザに入力を促す
|
213
|
+
System.out.println("砲撃のy座標を入力してください。(0-9)"); //ユーザに入力を促す
|
214
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
215
|
+
}
|
216
|
+
//数値入力終了、ゲーム開始
|
217
|
+
System.out.println("砲撃回数" + count);//砲撃回数の表示
|
218
|
+
|
219
|
+
if (sx == hx && sy == hy) {//命中判定
|
220
|
+
//(※砲撃が命中した場合の処理)
|
221
|
+
System.out.println("砲撃(" + hx + "," + hy + ")は命中しました!");//命中座標の通知
|
222
|
+
System.out.println("相手の潜水艦を撃沈しました。 【YOU WIN!】");//勝利メッセージ
|
223
|
+
System.out.println();//表示を整えるために改行
|
224
|
+
count = 0;//ループ脱出のためにカウント変数を0に設定
|
225
|
+
} else {//(※砲撃が外れた場合の処理)
|
226
|
+
System.out.println("砲撃(" + hx + "," + hy + ")は外れました...");//命中座標の通知
|
227
|
+
//ここからマンハッタン距離の算出
|
228
|
+
int xm = sx - hx;//潜水艦x座標と着弾x座標の誤差の算出
|
229
|
+
int ym = sy - hy;//潜水艦y座標と着弾y座標の誤差の算出
|
230
|
+
if (xm < 0) {//潜水艦x座標と着弾x座標の誤差が負の値になった場合の修正処理
|
231
|
+
xm = -xm;
|
232
|
+
}
|
233
|
+
if (ym < 0) {//潜水艦y座標と着弾y座標の誤差が負の値になった場合の修正処理
|
234
|
+
ym = -ym;
|
235
|
+
}
|
236
|
+
int man = xm + ym;//x座標、y座標それぞれの誤差の合計の算出
|
237
|
+
//マンハッタン距離の算出終了
|
238
|
+
System.out.println("相手潜水艦との誤差は" + man);//砲撃
|
239
|
+
count++;//カウント演算子を1増加
|
240
|
+
System.out.println();//表示を整えるために改行
|
241
|
+
}
|
242
|
+
}
|
243
|
+
if (count > 10) {//カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
244
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】");//敗北メッセージ
|
245
|
+
}
|
246
|
+
}
|
247
|
+
|
248
|
+
|
249
|
+
}
|
250
|
+
```
|
1
タイトルの「javascript」を「java」に修正、全ソースコードの掲載
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Javaのコンパイル時に大量のエラーが発生しました
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
こんばんは。プログラミング/
|
2
|
+
こんばんは。プログラミング/Java初心者です。
|
3
3
|
|
4
4
|
|
5
5
|
Javaのソースコードを`javac`でコンパイルしようとしたところ、下記のようなエラーが発生してしまいました。
|
@@ -55,6 +55,69 @@
|
|
55
55
|
また、その他のエラーの詳細をネット上で調べてみたのですが、結局エラーの意味や原因を理解することができなかったので、噛み砕いて説明していただけると嬉しいです。
|
56
56
|
|
57
57
|
御回答よろしくお願い致します。
|
58
|
+
|
59
|
+
###全ソースコード
|
60
|
+
```lang-Java
|
61
|
+
public class BattleShip {
|
62
|
+
//潜水艦の座標を乱数で0-9の範囲で生成
|
63
|
+
int sx = (int)(Math.random()*10);
|
64
|
+
int sy = (int)(Math.random()*10);
|
65
|
+
|
66
|
+
public static void main(String[] args) throws IOException {
|
67
|
+
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); //標準入力の準備
|
68
|
+
int count = 1;//砲撃回数カウント用の変数を作成
|
69
|
+
|
70
|
+
while (count <= 10) {//攻撃回数が10回を越えていない場合は繰り返す
|
71
|
+
//数値の入力
|
72
|
+
System.out.println("砲撃のx座標を入力してください。(0-9)"); //ユーザに入力を促す
|
73
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
74
|
+
while (!(0 <= hx <= 9)) {//0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
75
|
+
System.out.println("!エラー:0から9までの整数を入力してください!"); //ユーザに入力を促す
|
76
|
+
System.out.println("砲撃のx座標を入力してください。(0-9)"); //ユーザに入力を促す
|
77
|
+
int hx = Integer.parseInt(buf.readLine()); //標準入力からx座標を入力
|
78
|
+
}
|
79
|
+
|
80
|
+
System.out.println("砲撃のy座標を入力してください。(0-9)"); //ユーザに入力を促す
|
81
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
82
|
+
while (!(0 <= hy <= 9)) {//0-9以外の値が入力された場合、正しい数が入力されるまで警告を表示して繰り返す
|
83
|
+
System.out.println("!エラー:0から9までの整数を入力してください!"); //ユーザに入力を促す
|
84
|
+
System.out.println("砲撃のy座標を入力してください。(0-9)"); //ユーザに入力を促す
|
85
|
+
int hy = Integer.parseInt(buf.readLine()); //標準入力からy座標を入力
|
86
|
+
}
|
87
|
+
//数値入力終了、ゲーム開始
|
88
|
+
System.out.println("砲撃回数" + count);//砲撃回数の表示
|
89
|
+
|
90
|
+
if (sx == hx && sy == hy) {//命中判定
|
91
|
+
//(※砲撃が命中した場合の処理)
|
92
|
+
System.out.println("砲撃(" + hx + "," + hy + ")は命中しました!");//命中座標の通知
|
93
|
+
System.out.println("相手の潜水艦を撃沈しました。 【YOU WIN!】");//勝利メッセージ
|
94
|
+
System.out.println();//表示を整えるために改行
|
95
|
+
count = 0;//ループ脱出のためにカウント変数を0に設定
|
96
|
+
} else {//(※砲撃が外れた場合の処理)
|
97
|
+
System.out.println("砲撃(" + hx + "," + hy + ")は外れました...");//命中座標の通知
|
98
|
+
//ここからマンハッタン距離の算出
|
99
|
+
int xm = sx - hx;//潜水艦x座標と着弾x座標の誤差の算出
|
100
|
+
int ym = sy - hy;//潜水艦y座標と着弾y座標の誤差の算出
|
101
|
+
if (xm < 0) {//潜水艦x座標と着弾x座標の誤差が負の値になった場合の修正処理
|
102
|
+
xm = -xm;
|
103
|
+
}
|
104
|
+
if (ym < 0) {//潜水艦y座標と着弾y座標の誤差が負の値になった場合の修正処理
|
105
|
+
ym = -ym;
|
106
|
+
}
|
107
|
+
int man = xm + ym;//x座標、y座標それぞれの誤差の合計の算出
|
108
|
+
//マンハッタン距離の算出終了
|
109
|
+
System.out.println("相手潜水艦との誤差は" + man);//砲撃
|
110
|
+
count++;//カウント演算子を1増加
|
111
|
+
System.out.println();//表示を整えるために改行
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
if (count > 10) {//カウント関数が10回を越えた(=10回以内に潜水艦を撃沈できずに失敗した)場合の処理
|
117
|
+
System.out.println("相手の潜水艦の撃沈に失敗しました。【GAME OVER!】");//敗北メッセージ
|
118
|
+
}
|
119
|
+
}
|
120
|
+
```
|
58
121
|
### 補足情報(FW/ツールのバージョンなど)
|
59
122
|
|
60
123
|
CentOS Linux release 7.5.1804 (Core)
|