2048小游戏c语言代码
时间: 2024-05-02 14:15:04 浏览: 92
2048源代码(C语言).zip_小游戏;2048
2048是一款经典的数字益智游戏,下面是一个简单的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 4
int board[SIZE][SIZE];
void init_board() {
int i, j;
for (i = 0; i < SIZE; i {
for (j = 0; j < SIZE; j++) {
board[i][j] = 0;
}
}
}
void print_board() {
int i, j;
for (i = 0; i < SIZE; i++) {
for (j = 0; j < SIZE; j++) {
printf("%4d", board[i][j]);
}
printf("\n");
}
}
void add_random_number() {
int i, j;
int count = 0;
int empty_cells[SIZE * SIZE];
for (i = 0; i < SIZE; i++) {
for (j = 0; j < SIZE; j++) {
if (board[i][j] == 0) {
empty_cells[count] = i;
empty_cells[count] = j;
count++;
}
}
}
if (count > 0) {
int index = rand() % count;
int x = empty_cells[index];
int y = empty_cells[index];
// 90%的概率生成2,10%的概率生成4
board[x][y] = (rand() % 10 == 0) ? 4 : 2;
}
}
int move_left() {
int i, j, k;
int moved = 0;
for (i = 0; i < SIZE; i++) {
for (j = 1; j < SIZE; j++) {
if (board[i][j] != 0) {
for (k = j - 1; k >= 0; k--) {
if (board[i][k] == 0) {
board[i][k] = board[i][k + 1];
board[i][k + 1] = 0;
moved = 1;
} else if (board[i][k] == board[i][k + 1]) {
board[i][k] *= 2;
board[i][k + 1] = 0;
moved = 1;
break;
} else {
break;
}
}
}
}
}
return moved;
}
// 其他方向的移动操作可以通过旋转矩阵实现
int main() {
srand(time(NULL));
init_board();
add_random_number();
add_random_number();
while (1) {
print_board();
// 获取用户输入,根据输入执行相应的移动操作
if (move_left()) {
add_random_number();
}
// 判断游戏是否结束
// 如果游戏结束,打印游戏结束信息并退出循环
// 如果游戏没有结束,继续下一轮循环
}
return 0;
}
```
这段代码实现了一个简单的2048小游戏,包括初始化游戏棋盘、打印棋盘、随机生成数字、移动操作等功能。你可以根据需要进行修改和扩展。
阅读全文