程
序
说
明
文
档
嵌入式 17061
李卓
嵌入式组 D 题
开发环境:
linux
操作说明:
首先 注册,登陆,开始游戏,
WASD 上左下右
R 从新开始
T 退出
项目分为两个模块:
开发说明:
在 package.h 中封装了信息
@brief 封装
struct game
{
char name[6]; //登录的用户名
2> 游戏模块
涉及的代码为
new.c 主函数
各种函数的入口
重新游戏(会保留最高成绩)
退出游戏(会保留用户的数据)
package.h
封装游戏数据(16 位数组),游戏步数,
游戏标志位,
游戏成绩,游戏最高记录
control.c control.h
控制终端函数,屏蔽输入回显
draw_color.c draw_color.h
界面颜色和绘制
game.c game.h
游戏相关:初始化数据,生成随机数,更新
界面,游戏是否结束,寻找空余
move.c 移动合并,左移 右移 上移 下
移
编写了一个简单的 Makele,自动化编译,
根据时间戳编译
1> 用户登录模块:
涉及的代码为 local.c local.h
执行 a.out 之后,选择要执行的操作:
1>注册 2>登陆 3>退出
其中要求注册账号名在 6 字符以内,密码
要求 6 个字符
注册完成后会给每个账户一个初始化的游
戏数据
登录用户名密码后可以开始游戏
注:已经注册的用户
账号 密码
lz 123456
ok 111111
ui 444444
ty llyzzx
nihao 888888
io 111111
@brief 标志位
enum control
{
RIGHT, //右
LEFT, //左
UP, //上
DOWN, //下
QUIT, //退出
UPDATE, //刷新
OK, //游戏未失败
GAMEOVER, //游戏失败};
};
int data[16];
int step; // 步数
int score; //成绩
int best; //最佳成绩
int ret; //操作标志};
进入主函数
/**
* @brief 主函数
* 用户注册或登录
* 绘制 2048 界面
* 左移右移上移下移
* 判断游戏是否结束
*/
int main(int argc, char *argv[])
struct game newgame;
//整个的用户登录与保存
welcome(&newgame); --> (load.c load.h)
/**
* @brief 用户注册登录模块的入口
* 选择要执行的操作
*调用 contrl.c 用的函数取消回显
*/
void welcome(struct game *newgame)
menu();
printf("\n");
printf("\t\e[1;34m \t\t1> 注册 2> 登录 \e[0m");
printf("\t\e[1;31m3> 退出\e[0m\n");
打印出界面: