我正在开发一个“合并号码”游戏的实现,可以在Play商店看到:https://play.google.com/store/apps/details?id=com.ft.game.puzzle.cubelevels
我的想法是,如果我有一个2D数组的单元格,其中一些是空的,其他的有数字,我将一个给定的数字放入一个空单元格,然后如果该数字匹配至少3个邻居,邻居变空,单元格值增加。一个简单的例子:
| 1 | 2 | 3 | 4 |
| 3 | | 2 | |
| 1 | 2 | 3 | |
| | 2 | 1 | 4 |
如果下一个数字(由游戏随机生成)为2,我将其放入单元格(1,1)(其中(0,0)为左上角单元格),新游戏板应如下所示:
| 1 | | 3 | 4 |
| 3 | 3 | | |
| 1 | | 3 | |
| | 2 | 1 | 4 |
新放置的2增加到3,值为2的相邻单元格已被清除。
我无法弄清楚如何做到这一点。到目前为止,这是我的代码:
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[][] w = {{1, 2, 3, 4}, {3, 0, 4, 0}, {1, 2, 3, 0}, {0, 2, 1, 4}};
Scanner input = new Scanner(System.in);
System.out.println("Enter space for putting 1: ");
int a = input.nextInt();
int b = input.nextInt();
if (a == 1 && b == 1) {
w[1][1] = 1;
for (a = 0; a < w.length; a++) {
for (b = 0; b < w[0].length; b++) {
System.out.print(w[a][b] + " ");
}
System.out.print('\n');
}
System.out.println("Enter space for putting 4: ");
a = input.nextInt();
b = input.nextInt();
if (a == 1 && b == 3) {
w[1][3] = 4;
for (a = 0; a < w.length; a++) {
for (b = 0; b < w[0].length; b++) {
System.out.print(w[a][b] + " ");
}
System.out.print('\n');
}
}
}
}
}
如何检查新添加的号码的邻居是否具有相同的值?
如何增加新添加的数字?