Java 蛇和阶梯:在对话框中显示栅格

Java 蛇和阶梯:在对话框中显示栅格,java,Java,我正在编写一个蛇和梯子游戏,我已经整理了大部分逻辑,除了在消息对话框中显示网格的方法 private static void generateGrid() { String[][] board = new String[][] { { "48", "47", "46", "45", "44", "43", "42" }, { "35", "36", "37", "38", "39", "40", "41" }, { "34", "33",

我正在编写一个蛇和梯子游戏,我已经整理了大部分逻辑,除了在消息对话框中显示网格的方法

private static void generateGrid() {

    String[][] board = new String[][] {
        { "48", "47", "46", "45", "44", "43", "42" },
        { "35", "36", "37", "38", "39", "40", "41" },
        { "34", "33", "32", "31", "30", "29", "28" },
        { "21", "22", "23", "24", "25", "26", "27" },
        { "20", "19", "18", "17", "16", "15", "14" },
        { "7", "8", "9", "10", "11", "12", "13" },
        { "6", "5", "4", "3", "2", "1", "0" } };

    String grid = "";

    for (int x = 0; x < 7; x++) { // This counts the number of
                                                // rows

        for (int y = 0; y < 7; y++) { // This counts the number
                                                    // of columns

            if ((board[x][y] + "").length() == 1) {

                grid = grid + board[x][y] + "   \t";

            } else {

                grid = grid + board[x][y] + "   \t";

            }

            grid = grid + "\n";
        }

        JOptionPane.showMessageDialog(null, grid);      

    }
}
private静态void generateGrid(){
字符串[][]板=新字符串[][]{
{ "48", "47", "46", "45", "44", "43", "42" },
{ "35", "36", "37", "38", "39", "40", "41" },
{ "34", "33", "32", "31", "30", "29", "28" },
{ "21", "22", "23", "24", "25", "26", "27" },
{ "20", "19", "18", "17", "16", "15", "14" },
{ "7", "8", "9", "10", "11", "12", "13" },
{ "6", "5", "4", "3", "2", "1", "0" } };
字符串网格=”;
对于(intx=0;x<7;x++){//这计算
//排
对于(int y=0;y<7;y++){//这会计算数字
//列数
如果((线路板[x][y]+).length()==1){
网格=网格+板[x][y]+“\t”;
}否则{
网格=网格+板[x][y]+“\t”;
}
网格=网格+“\n”;
}
showMessageDialog(空,网格);
}
}
我希望消息对话框中显示的网格具有与阵列中相同的布局,但当我运行程序时,最终结果如下:


如何获得它,以便在显示网格时,数字的顺序遵循数组中显示的布局?

您正在执行语句
grid=grid+“\n”,从而在数组的每个元素后添加新行。正确的代码如下所示:

private static void generateGrid() {

    String[][] board = new String[][] {
        { "48", "47", "46", "45", "44", "43", "42" },
        { "35", "36", "37", "38", "39", "40", "41" },
        { "34", "33", "32", "31", "30", "29", "28" },
        { "21", "22", "23", "24", "25", "26", "27" },
        { "20", "19", "18", "17", "16", "15", "14" },
        { "7", "8", "9", "10", "11", "12", "13" },
        { "6", "5", "4", "3", "2", "1", "0" } };

    String grid = "";

    for (int x = 0; x < 7; x++) { // This counts the number of
                                            // rows
        for (int y = 0; y < 7; y++) { // This counts the number
                                                // of columns
            if ((board[x][y] + "").length() == 1) {
                grid = grid + board[x][y] + "   \t";
            } else {
                grid = grid + board[x][y] + "   \t";
            }

        }

        grid = grid + "\n";
    }
    JOptionPane.showMessageDialog(null, grid);      
}
private静态void generateGrid(){
字符串[][]板=新字符串[][]{
{ "48", "47", "46", "45", "44", "43", "42" },
{ "35", "36", "37", "38", "39", "40", "41" },
{ "34", "33", "32", "31", "30", "29", "28" },
{ "21", "22", "23", "24", "25", "26", "27" },
{ "20", "19", "18", "17", "16", "15", "14" },
{ "7", "8", "9", "10", "11", "12", "13" },
{ "6", "5", "4", "3", "2", "1", "0" } };
字符串网格=”;
对于(intx=0;x<7;x++){//这计算
//排
对于(int y=0;y<7;y++){//这会计算数字
//列数
如果((线路板[x][y]+).length()==1){
网格=网格+板[x][y]+“\t”;
}否则{
网格=网格+板[x][y]+“\t”;
}
}
网格=网格+“\n”;
}
showMessageDialog(空,网格);
}
要自己找到类似问题的解决方案,下次可以使用带有调试器的IDE(如Eclipse或NetBeans)并逐步完成代码,或者只需添加System.out.println()命令,这样您就可以在每一步都看到变量的值。

else语句中的“\t”应该是“\n”?