我正在创造一个小蛇和小伙子游戏。我有多个类,但我关心的是我的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();
}
}
}
答案 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}
};