java2048小游戏
时间: 2023-07-09 18:37:08 浏览: 38
好的,我可以为您介绍一下 Java 实现的 2048 小游戏。
2048 是一款数字拼图游戏,通过把相同数字的方块合并起来,最终得到一个2048的方块为胜利。以下是一个简单的 Java 实现:
首先,我们需要一个 4x4 的方格来存储数字方块。我们可以使用一个二维数组来实现它。
```java
int[][] board = new int[4][4];
```
然后,我们需要一个方法来打印游戏板:
```java
public void printBoard() {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(board[i][j] + " ");
}
System.out.println();
}
}
```
接下来,我们需要一个方法来随机生成数字方块。我们可以使用 `Math.random()` 方法来生成一个 0 到 3 的随机整数,然后把它放入游戏板中。
```java
public void generateBlock() {
int x = (int) (Math.random() * 4);
int y = (int) (Math.random() * 4);
if (board[x][y] == 0) {
board[x][y] = 2;
} else {
generateBlock();
}
}
```
然后,我们需要一个方法来移动数字方块。我们可以使用 `for` 循环来遍历游戏板,然后把每个方块移动到它能到达的最远位置。
```java
public void moveLeft() {
for (int i = 0; i < 4; i++) {
int[] row = board[i];
int[] newRow = new int[4];
int index = 0;
for (int j = 0; j < 4; j++) {
if (row[j] != 0) {
if (newRow[index] == 0) {
newRow[index] = row[j];
} else if (newRow[index] == row[j]) {
newRow[index] *= 2;
index++;
} else {
index++;
newRow[index] = row[j];
}
}
}
board[i] = newRow;
}
}
```
最后,我们需要一个方法来检查游戏是否结束。如果游戏板上没有空位了,并且没有相邻的方块数字相同,那么游戏就结束了。
```java
public boolean isGameOver() {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (board[i][j] == 0) {
return false;
}
if (i < 3 && board[i][j] == board[i+1][j]) {
return false;
}
if (j < 3 && board[i][j] == board[i][j+1]) {
return false;
}
}
}
return true;
}
```
以上就是一个简单的 Java 实现的 2048 小游戏。