1
10x10ボードの周りに作品を移動するためのゲームを作成する必要があります。あなたは "^"スペースに移動し、あなたは勝ちます。これはこれまでのコードですが、問題があります。私は、プレイヤーが9を入力したときにゲームを終了するためのコードに休憩を入れました。しかし、ブレークがそこにあるとき、私は到達不能なコードエラーを取得します。私がそれを取り出すと、ゲームはすべての入力後にゲームが終了し、あなたが想定しているようにゲームをやめることができなくなることを除いて正常に動作します。私は間違った場所に置いていますか?または、プレーヤーが移動のために9を入力した場合、ゲームを終了するためのよりよい方法がありますか?これを実行すると到達不能なコードエラーが発生しますが、理由はわかりません
import java.util.Scanner;
import java.util.Random;
public class MineWalker {
public static final int BOARD_SIZE = 10;
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int pX = 0;
int pY = 0;
Random r = new Random();
int gX = r.nextInt(BOARD_SIZE);
int gY = r.nextInt(BOARD_SIZE);
Spaces[][] board = new Spaces[BOARD_SIZE][BOARD_SIZE];
for (int y = 0; y < board.length; y++) //clears board
{
for (int x = 0; x < board[y].length; x++) {
board[x][y] = Spaces.Empty;
}
}
board[pX][pY] = Spaces.Player;
board[gX][gY] = Spaces.Goal;
System.out.println("Welcome to Mine Walker. Get the ice cream cone and avoid the mines");
boolean gameOver = false;
while (gameOver == false) //game loop
{
for (int y = 0; y < board.length; y++) //Draws board
{
for (int x = 0; x < board[y].length; x++) {
switch (board[x][y]) {
case Empty:
System.out.print("_");
break;
case Player:
System.out.print("X");
break;
case Goal:
System.out.print("^");
break;
}
}
System.out.println();
}
System.out.println("Enter either a -1, 0, or 1 in the X or 9 to quit");//moves game piece
int dx = keyboard.nextInt();
if (dx == 9) ;
{
System.out.println("Game Over");
break;
}
System.out.println("Enter either a -1,0, or 1 in the Y"); // Unreachable statement here
int dy = keyboard.nextInt();
if (dx < -1 || dx > 1) {
System.out.println("Invalid x");
dx = 0;
}
if (dy < -1 || dy > 1) {
System.out.println("Invalid y");
dy = 0;
}
board[pX][pY] = Spaces.Empty;
pX += dx;
pY += dy;
if (board[pX][pY] == Spaces.Goal) {
System.out.println("You win!");
gameOver = true;
}
board[pX][pY] = Spaces.Player;
}
}
;
enum Spaces {Empty, Player, Goal}
}
あなたの ';'を数えます。少なくとも1対多が存在する。 – tkausl
IDEの自動フォーマッタでコードを実行しましたが、慎重に見れば問題は明らかです。 [if文の最後のセミコロン](/ q/14112515)を参照してください。 – bcsb1001
[if文の末尾にセミコロンを入れる]の可能な複製(https://stackoverflow.com/questions/14112515/semicolon-at-end-of-if-statement) – dave