javaについて
Q&A
package class03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class RandomMapGame extends Map {
private int errorCount = 0;
int i;
public RandomMapGame(int width, int height) throws IOException{
System.out.println("障害物の数を入力してください");
while(true) {
BufferedReader sr = new BufferedReader(new InputStreamReader(System.in));
String str = sr.readLine();
i = Integer.parseInt(str);
if(i>10) {
System.out.println("入力された値は範囲外です");
System.out.println("[0, 8]の範囲で入力してください");
}
else {
break;
}
}
int a = (int)(Math.random()*8);
int b = (int)(Math.random()*8);
int aa, bb;
while(true){
aa = (int)(Math.random()*8);
bb = (int)(Math.random()*8);
if((-2 <= aa-a && aa-a <= 2) && -2 <= bb-b && bb-b <= 2) {
break;
}
else {
continue;
}
}
initialize(width, height, a, b, bb, aa);
createObstacles(i);
}
public void start(Target target)throws IOException {
/** 以下に必要なコードを追記してください **/
int b=0;
while(true) {
if(b==0) {
System.out.println("**********");
printMap(target);
System.out.println("**********");
}
System.out.print("移動:右6, 左4, 上8, 下2 ?");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int key = Integer.parseInt(br.readLine());
if (canMoveTarget(target, key)) {
target.moveTarget(key,8,8);
//errorCount=0;
b=0;
if(b==0) {
System.out.println("エラー回数は"+errorCount+"です");
}
}
else {
if(key!=6&&key!=4&&key!=8&&key!=2) {
System.out.println("2,4,6,8のいずれかを選択してください");
b=1;
}else {
System.out.println("動けない!");
errorCount++;
}
if(b==0) {
System.out.println("エラー回数は"+errorCount+"です");
}
if(errorCount==5) {
System.out.println("ゲームオーバー!");
break;
}
}
} catch (NumberFormatException e) {
System.out.println("数字を入力してください.");
}
if(isGoal(target)) {
System.out.println("ゴールに到着!");
break;
}
}
}
}
0