写一个2048上下左右滑动的函数,要求2048是用二维数组4乘进行保存,
时间: 2024-03-06 14:46:35 浏览: 19
好的,以下是一个C语言实现2048上下左右滑动的函数的示例:
```c
void slide(int direction) {
int i, j, i2, tile_moved, temp;
switch (direction) {
case UP:
for (j = 0; j < SIZE; j++) {
for (i = 1; i < SIZE; i++) {
if (board[i][j] != 0) {
i2 = i;
tile_moved = 0;
while (i2 > 0 && !tile_moved) {
if (board[i2-1][j] == 0) {
board[i2-1][j] = board[i2][j];
board[i2][j] = 0;
i2--;
} else if (board[i2-1][j] == board[i2][j]) {
board[i2-1][j] *= 2;
board[i2][j] = 0;
tile_moved = 1;
} else {
tile_moved = 1;
}
}
}
}
}
break;
case DOWN:
for (j = 0; j < SIZE; j++) {
for (i = SIZE-2; i >= 0; i--) {
if (board[i][j] != 0) {
i2 = i;
tile_moved = 0;
while (i2 < SIZE-1 && !tile_moved) {
if (board[i2+1][j] == 0) {
board[i2+1][j] = board[i2][j];
board[i2][j] = 0;
i2++;
} else if (board[i2+1][j] == board[i2][j]) {
board[i2+1][j] *= 2;
board[i2][j] = 0;
tile_moved = 1;
} else {
tile_moved = 1;
}
}
}
}
}
break;
case LEFT:
for (i = 0; i < SIZE; i++) {
for (j = 1; j < SIZE; j++) {
if (board[i][j] != 0) {
j2 = j;
tile_moved = 0;
while (j2 > 0 && !tile_moved) {
if (board[i][j2-1] == 0) {
board[i][j2-1] = board[i][j2];
board[i][j2] = 0;
j2--;
} else if (board[i][j2-1] == board[i][j2]) {
board[i][j2-1] *= 2;
board[i][j2] = 0;
tile_moved = 1;
} else {
tile_moved = 1;
}
}
}
}
}
break;
case RIGHT:
for (i = 0; i < SIZE; i++) {
for (j = SIZE-2; j >= 0; j--) {
if (board[i][j] != 0) {
j2 = j;
tile_moved = 0;
while (j2 < SIZE-1 && !tile_moved) {
if (board[i][j2+1] == 0) {
board[i][j2+1] = board[i][j2];
board[i][j2] = 0;
j2++;
} else if (board[i][j2+1] == board[i][j2]) {
board[i][j2+1] *= 2;
board[i][j2] = 0;
tile_moved = 1;
} else {
tile_moved = 1;
}
}
}
}
}
break;
}
}
```
该函数接受一个整数参数direction,用于指定滑动的方向,其中UP、DOWN、LEFT、RIGHT分别表示上、下、左、右。函数会根据指定的方向对二维数组board进行相应的滑动,滑动后的结果会保存在board中。请注意,为了简化代码,此处的滑动不包含新块的生成。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)