简易Java 2D阵列迷宫游戏

简易Java 2D阵列迷宫游戏,java,arrays,Java,Arrays,我正在为一个2D阵列项目做一个迷宫游戏。到目前为止,我已经设法使一个随机的游戏板。每次程序运行时,游戏板都是随机的。目标是让“P”(玩家)从右上角到“E”(结束)左下角,同时避免“X”和“*”。我需要帮助做一个方法,允许球员输入上,下,右,左,使P移动。这就是我到目前为止所做的: public class MazeGame { //Declare scanner to allow user to input directional commands Scanner move = new Scan

我正在为一个2D阵列项目做一个迷宫游戏。到目前为止,我已经设法使一个随机的游戏板。每次程序运行时,游戏板都是随机的。目标是让“P”(玩家)从右上角到“E”(结束)左下角,同时避免“X”和“*”。我需要帮助做一个方法,允许球员输入上,下,右,左,使P移动。这就是我到目前为止所做的:

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): ");

}
公共类MazeGame{
//声明扫描仪以允许用户输入方向命令
扫描仪移动=新扫描仪(System.in);
公共静态void main(字符串[]args){
//调用方法
游戏开始();
游戏板();
}
//游戏介绍
公共静态无效游戏开始(){
System.out.println(“这是你的游戏板:”);
System.out.println(“------------------------------------”;
}
//游戏板
公共静态无效游戏板(){
//声明新阵列,迷宫10x10
字符迷宫[][]=新字符[10][10];
//随机打印迷宫中的障碍物。
对于(int i=0;i如果(random.06&&random首先,您需要创建一个循环并识别用户命令。因此,您可以在Game\u Board()方法之后添加类似的内容

一旦你知道你需要什么方向:
1.确定阵列/电路板中的目标位置。
2.验证您的规则是否允许移动到目标位置
3.如果允许移动:
3.1.将“P”置于目标位置
3.2.将“.”置于“P”的前一位置


还要确保您已经实现了用户退出的预期行为。

您应该保存
p
的位置,然后进行
移动()
测试方法输入方向的方法。记住检查索引是否超出范围,并适当返回。说明方法不应以大写字母开头,而应为动词(或至少以动词开头)而且,下划线通常只用于命名一个常数而不是一个方法名。因为你的板是纯粹随机生成的,所以不能保证迷宫是可解的。你应该考虑写一些逻辑来验证迷宫可以被解决,如果不能解决的话,可以生成一个新的迷宫。
while (true) {

        String playerInput = move.next();
        switch (playerInput) {
            case "u" :
                System.out.println("User command is 'up'");
                break;
            case "d" :
                System.out.println("User command is 'down'");
                break;
            case "l" :
                System.out.println("User command is 'left'");
                break;
            case "r" :
                System.out.println("User command is 'right'");
                break;
            case "e" :
                System.out.println("User command is 'exit'");
                break;
            case "y" :
                System.out.println("User command is 'yes'");
                break;
            case "n" :
                System.out.println("User command is 'no'");
                break;
            default:
                System.out.println("Unknown command '" + playerInput + "'!");
        }
    }