位置变化的java2d数组问题

位置变化的java2d数组问题,java,arrays,Java,Arrays,我会尽力解释我的问题。首先,我将把我所有的代码放在这里,这样你就可以看到我在这里做了什么,并得到一个更好的观点 package co.edureka; import java.util.Scanner; import java.util.Formatter; public class Puzzle { static void output(int[][] gamefield) { for (int i = 0; i < 4; i++) {

我会尽力解释我的问题。首先,我将把我所有的代码放在这里,这样你就可以看到我在这里做了什么,并得到一个更好的观点

package co.edureka;
import java.util.Scanner;
import java.util.Formatter; 

public class Puzzle {

    static void output(int[][] gamefield) {

        for (int i = 0; i < 4; i++) {
            System.out.println("|");
            System.out.println("+-------+-------+-------+-------+");
            for (int y = 0; y < 4; y++) {
                System.out.print("|    " + gamefield[i][y] + "\t");
            }
        }
    }

    static void coordinate(int[][] gamefield) {

        Scanner entry = new Scanner(System.in);

        System.out.println("\n\nEntry a number to move position");

        System.out.print("Row: ");
        int row = entry.nextInt();

        System.out.print("Column: ");
        int column = entry.nextInt();



        while (true) {

            while ((row == 0 && column == 0)) {

                if (row == 0 || column == 0) {
                    gamefield[0][0] = 0;
                }
                gamefield[3][0] = 11;


                break;
            }

            while ((row == 0 && column == 1)) {

                if (row == 0 || column == 1) {
                    gamefield[0][1] = 0;
                }
                gamefield[3][0] = 12;


                break;
            }

            while ((row == 0 && column == 2)) {

                if (row == 0 || column == 2) {
                    gamefield[0][2] = 0;
                }
                gamefield[3][0] = 13;


                break;
            }

            while ((row == 0 && column == 3)) {

                if (row == 0 || column == 3) {
                    gamefield[0][3] = 0;
                }
                gamefield[3][0] = 14;


                break;
            }

            while ((row == 1 && column == 0)) {

                if (row == 1 || column == 0) {
                    gamefield[1][0] = 0;
                }
                gamefield[3][0] = 1;


                break;
            }

            while ((row == 1 && column == 1)) {

                if (row == 1 || column == 1) {
                    gamefield[1][1] = 0;
                }
                gamefield[3][0] = 2;


                break;
            }

            while ((row == 1 && column == 2)) {

                if (row == 1 || column == 2) {
                    gamefield[1][2] = 0;
                }
                gamefield[3][0] = 3;


                break;
            }

            while ((row == 1 && column == 3)) {

                if (row == 1 || column == 3) {
                    gamefield[1][3] = 0;
                }
                gamefield[3][0] = 4;


                break;
            }

            while ((row == 2 && column == 0)) {

                if (row == 2 || column == 0) {
                    gamefield[2][0] = 0;
                }
                gamefield[3][0] = 8;


                break;
            }

            while ((row == 2 && column == 1)) {

                if (row == 2 || column == 1) {
                    gamefield[2][1] = 0;
                }
                gamefield[3][0] = 7;


                break;
            }

            while ((row == 2 && column == 2)) {

                if (row == 2 || column == 2) {
                    gamefield[2][2] = 0;
                }
                gamefield[3][0] = 6;


                break;
            }

            while ((row == 2 && column == 3)) {

                if (row == 2 || column == 3) {
                    gamefield[2][3] = 0;
                }
                gamefield[3][0] = 5;


                break;
            }

            while ((row == 3 && column == 0)) {

                if (row == 3 || column == 0) {
                    gamefield[3][0] = 0;
                }
                gamefield[3][0] = 0;


                break;
            }

            while ((row == 3 && column == 1)) {

                if (row == 3 || column == 1) {
                    gamefield[3][1] = 0;
                }
                gamefield[3][0] = 9;


                break;
            }

            while ((row == 3 && column == 2)) {

                if (row == 3 || column == 2) {
                    gamefield[3][2] = 0;
                }
                gamefield[3][0] = 10;


                break;
            }

            while ((row == 3 && column == 3)) {

                if (row == 3 || column == 3) {
                    gamefield[3][3] = 0;
                }
                gamefield[3][0] = 15;

            }

            if(row >4 || column >4) {
                System.out.println("Please put a number lower then 4");
                break;
            } else {
                break;
            } 

        }

    }

    public static void main(String[] args) {


        int[][] gamefield = new int[4][4];
        gamefield[0][0] = 11;
        gamefield[0][1] = 12;
        gamefield[0][2] = 13;
        gamefield[0][3] = 14;
        gamefield[1][0] = 1;
        gamefield[1][1] = 2;
        gamefield[1][2] = 3;
        gamefield[1][3] = 4;
        gamefield[2][0] = 8;
        gamefield[2][1] = 7;
        gamefield[2][2] = 6;
        gamefield[2][3] = 5;
        gamefield[3][0] = 0;
        gamefield[3][1] = 9;
        gamefield[3][2] = 10;
        gamefield[3][3] = 15;



        output(gamefield);


        coordinate(gamefield);


        output(gamefield);

    }
}
教育包装公司; 导入java.util.Scanner; 导入java.util.Formatter; 公共类难题{ 静态无效输出(int[][]游戏场){ 对于(int i=0;i<4;i++){ System.out.println(“|”); System.out.println(“+----+----+----+----+----+”; 对于(int y=0;y<4;y++){ 系统输出打印(“|”+游戏场[i][y]+“\t”); } } } 静态虚空坐标(int[][]游戏场){ 扫描仪条目=新扫描仪(System.in); System.out.println(“\n\n输入一个数字以移动位置”); 系统输出打印(“行:”); int row=entry.nextInt(); 系统输出打印(“列:”); int column=entry.nextInt(); while(true){ while((行==0和列==0)){ 如果(行==0 | |列==0){ 游戏场[0][0]=0; } 游戏场[3][0]=11; 打破 } while((行==0和列==1)){ 如果(行==0 | |列==1){ 游戏场[0][1]=0; } 游戏场[3][0]=12; 打破 } while((行==0和列==2)){ 如果(行==0 | |列==2){ 游戏场[0][2]=0; } 游戏场[3][0]=13; 打破 } while((行==0和列==3)){ 如果(行==0 | |列==3){ 游戏场[0][3]=0; } 游戏场[3][0]=14; 打破 } while((行==1和列==0)){ 如果(行==1 | |列==0){ 游戏场[1][0]=0; } 游戏场[3][0]=1; 打破 } while((行==1和列==1)){ 如果(行==1 | |列==1){ 游戏场[1][1]=0; } 游戏场[3][0]=2; 打破 } while((行==1和列==2)){ 如果(行==1 | |列==2){ 游戏场[1][2]=0; } 游戏场[3][0]=3; 打破 } while((行==1和列==3)){ 如果(行==1 | |列==3){ 游戏场[1][3]=0; } 游戏场[3][0]=4; 打破 } while((行==2和列==0)){ 如果(行==2 | |列==0){ 游戏场[2][0]=0; } 游戏场[3][0]=8; 打破 } while((行==2和列==1)){ 如果(行==2 | |列==1){ 游戏场[2][1]=0; } 游戏场[3][0]=7; 打破 } while((行==2和列==2)){ 如果(行==2 | |列==2){ 游戏场[2][2]=0; } 游戏场[3][0]=6; 打破 } while((行==2和列==3)){ 如果(行==2 | |列==3){ 游戏场[2][3]=0; } 游戏场[3][0]=5; 打破 } while((行==3和列==0)){ 如果(行==3 | |列==0){ 游戏场[3][0]=0; } 游戏场[3][0]=0; 打破 } while((行==3和列==1)){ 如果(行==3 | |列==1){ 游戏场[3][1]=0; } 游戏场[3][0]=9; 打破 } while((行==3和列==2)){ 如果(行==3 | |列==2){ 游戏场[3][2]=0; } 游戏场[3][0]=10; 打破 } while((行==3和列==3)){ 如果(行==3 | |列==3){ 游戏场[3][3]=0; } 游戏场[3][0]=15; } 如果(行>4 | |列>4){ System.out.println(“请输入一个低于4的数字”); 打破 }否则{ 打破 } } } 公共静态void main(字符串[]args){ int[][]游戏场=新int[4][4]; 游戏场[0][0]=11; 游戏场[0][1]=12; 游戏场[0][2]=13; 游戏场[0][3]=14; 游戏场[1][0]=1; 游戏场[1][1]=2; 游戏场[1][2]=3; 游戏场[1][3]=4; 游戏场[2][0]=8; 游戏场[2][1]=7; 游戏场[2][2]=6; 游戏场[2][3]=5; 游戏场[3][0]=0; 游戏场[3][1]=9; 游戏场[3][2]=10; 游戏场[3][3]=15; 输出(游戏场); 坐标(游戏场); 输出(游戏场); } } 上下文:

要了解我的想法: 我想编程一个益智游戏,也叫滑块或15个游戏益智。 我的程序打印一个表,其中包含所有数组元素。所以在坐标法中有了所有的while循环,我现在可以改变我想要的每个位置。但这不是重点,我得找零,所以是空位

我无法让它工作,0可以用它旁边的数字改变位置。看看我的程序,0在8的旁边