为蛇和梯子游戏创建一个2D阵列

时间:2015-03-26 00:35:27

标签: java arrays swing grid 2d

我正在创造一个小蛇和小伙子游戏。我有多个类,但我关心的是我的BoardGame类和我的Grid类。

在做了一些研究之后,我决定跟踪我的玩家的动作的最好方法是让他们穿过网格,我也相信这个类应该与我读过的内容分开。

目前,在我的BoardGame类 - 其中包含GUI - 我创建了一个JLabel,其中包含一个100平方的蛇和梯子游戏的图像。我接下来要做的是覆盖一个网格,网格本身由100个方格组成,玩家将在其中移动。他们在棋盘上的动作和位置将在单独的Tracker课程中进行跟踪。

根据我的阅读,使用像int[][] multi = new int[10][10];这样的2D数组似乎是解决这个问题的方法。它是否正确?如果是这样,我将如何标记蛇头和梯子的底部,以及我如何将此网格转移到我的BoardGame类(GUI)?

在此先感谢,这是BoardGame课程。我没有包括我的网格类,因为我不确定继续它的方向。

public class GameBoard extends javax.swing.JFrame {
private JLabel Board;

/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            GameBoard inst = new GameBoard();
            inst.setLocationRelativeTo(null);
            inst.setVisible(true);
        }
    });
}

public GameBoard() {
    super();
    initGUI();
}

private void initGUI() {
    try {
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        getContentPane().setLayout(null);
        {
            Board = new JLabel();
            getContentPane().add(Board);
            Board.setText("jLabel1");
            Board.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/board.jpg")));
            Board.setBounds(199, 0, 742, 484);
        }
        pack();
        this.setSize(963, 523);
    } catch (Exception e) {
        //add your error handling code here
        e.printStackTrace();
    }
}

}

1 个答案:

答案 0 :(得分:0)

使用二维数组可能是最好的方法。 你可以像你提到的那样创建这样的数组。

int[][] multi = new int[10][10];

但是,如果你想自己画出电路板,最好像这样定义它

int[][] multi = {
     {0,0,0,0,0},
     {0,1,1,0,0}
};

在这个数组中,你可以让1代表一个梯子,0代表一个空格。 要添加更多行,只需执行此操作

int[][] multi = {
     {0,0,0,0,0},
     {0,1,1,0,0},
     {0,1,0,0,0}
};