-2
我正在做一個2D數組項目的迷宮遊戲。到目前爲止,我已經設法制作了一個隨機遊戲板。每次程序運行時,遊戲板都是隨機的。目標是讓'P'(玩家)從右上角到'E'(結束)左下角,同時避開'X'和'*'。我需要幫助製作一種允許玩家輸入向上,向下,向右,向左移動的方法。這是我到目前爲止有:簡單的Java 2D陣列迷宮遊戲
public class MazeGame {
//Declare scanner to allow user to input directional commands
Scanner move = new Scanner(System.in);
public static void main(String[] args) {
//Call methods
Game_Beginning();
Game_Board();
}
//Intro to the game
public static void Game_Beginning(){
System.out.println("This is your game board:");
System.out.println("-------------------------------");
}
//Game Board
public static void Game_Board(){
//Declare new array, maze 10x10
char maze[][] = new char[10][10];
//Randomly print the obstacles in the maze.
for (int i = 0; i < maze.length; i++){
for (int j = 0; j < maze.length; j++){
double random = Math.random();
if (random <= .05){
maze[i][j] = '*';
}
else if (random > .06 && random <= .15){
maze[i][j] = 'X';
}
else{
maze[i][j] = '.';
}
maze[0][0] = 'P';
maze[9][9] = 'E';
System.out.print(maze[i][j]);
}
System.out.println("");
}
}
/**
* Add a method called "makePMove." Define char right, char left and so on
*/
public static void makeMove(){
int row;
int col;
System.out.print("Enter your move (Up-Down-Left-Right): ");
}
}
你應該保存'P'的位置,然後有一個'move()'方法來測試它們輸入的方向。請記住檢查索引是否超出範圍,並適當地返回。 –
[Java命名約定](http://www.oracle.com/technetwork/java/codeconventions-135099.html)聲明方法不應以大寫字母開頭,並且應該是動詞(或至少以動詞開頭) 。此外,下劃線通常只用於命名常量 - 而不是方法名稱。 –
由於您的棋盤是純粹隨機生成的,因此不能保證迷宮是可以解決的。您應該考慮編寫一些邏輯來驗證迷宮是否可以解決,如果無法解決,可以生成一個新的邏輯。 –