C语言实现语言实现2048游戏代码游戏代码
主要为大家详细介绍了C语言实现2048游戏代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了C语言实现2048游戏具体代码,供大家参考,具体内容如下
效果图效果图:
使用文本界面的屏幕绘图库 ncurses.
设计思路设计思路:
在满足条件情况下消除方块
允许在游戏主界面(16 宫格)中任意一格输出数据
实现代码:
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>
#include <signal.h>
#include <time.h>
void draw(); // 用于绘制游戏界面
void play(); // 游戏运行的逻辑主体
void init(); // 初始化函数,用于完成一些必要的初始化操作
void draw_one(int y, int x); // 绘制单个数字
void cnt_value(int *new_y, int *new_x); //统计(y, x)对应的格子周围一圈的空格的个数
int game_over(); // 结束游戏
int cnt_one(int y, int x); //统计(y, x)对应的格子周围一圈的空格的个数
// 游戏主界面是一个 4*4 的 16 宫格,使用二维数组进行表示,用 0 表示空格
int a[4][4] = { 0 };
// 16 宫格中空格的个数
int empty;
int old_y, old_x;
int main()
{
init();
play();
endwin();
return 0;
}
void init()
{
int x, y;
initscr(); //开启curses模式
cbreak(); //开启cbreak模式,除 DELETE 或 CTRL 等仍被视为特殊控制字元外一切输入的字元将立刻被一一读取
noecho(); //echo() and noecho(): 此函式用来控制从键盘输入字元时是否将字元显示在终端机上
curs_set(0); //设置光标模式
empty = 15;
srand(time(0));
x = rand() % 4;
y = rand() % 4;
a[y][x] = 2;
draw();
}