You*_*Sof 2 java arrays multidimensional-array
基本上我是用java创建一个棋盘游戏,并设法使用数组创建看起来像10x10网格的单元格.现在我已经对它们进行了编号,它们从左到右从上到下(如图)
我正在创建一个类似于蛇和梯子游戏的游戏,但它有自己的扭曲.
问题是:如何创建类似于蛇和梯板的曲折板?
这就是它目前的样子:
下面的代码是创建数组并打印它们并对它们进行编号所需的内容.
对象名为Game:
private Cell[][] cell = new Cell[10][10];
public Game(String nameIt)
{
super(nameIt);
JPanel x = new JPanel();
x.setLayout(new GridLayout(10, 10, 2, 2));
for (int r = 0; ir< 10; r++)
for (int c= 0; c < 10; c++)
x.add(cell[r][c] = new Cell(r, c, this));
}
Run Code Online (Sandbox Code Playgroud)
对象命名单元格:
private int row;
private int col;
private int cellNum;
static int count = 0;
public Cell(int row, int column, Game guy)
{
this.ro = row;
this.col = column;
this.parent = guy;
count = count+1;
cellNum = count;
setBorder(new LineBorder(Color.BLUE, 1)); // Set cell's border
}
protected void paintComponent(Graphics p)
{
super.paintComponent(p);
p.drawString(String.valueOf(" " + cellNo), 24, 24);
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我不会为您编写确切的代码,但我将向您展示如何使用常规2D数组执行此操作的示例.我现在只有一个C++编译器可用,但它应该足够清楚:
所以基本上你需要循环遍历从开始到开始的行.这就是为什么第一个外循环从9变为0.这将从底行开始并在顶行完成,从而反转.
for (int i = 9; i >= 0; i--) {
// now the trick to making a "zig-zag" is to alternate between two ways
// of printing out each row. if i is even, you print out from right to left
if (i % 2)
for (int j = 9; j >= 0; j--)
cout << numbers[i][j] << "\t";
// and if i is odd, you print it out from left to right
else
for (int j = 0; j < 10; j++)
cout << numbers[i][j] << "\t";
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
结果: 