• 大小: 10KB
    文件类型: .gz
    金币: 2
    下载: 1 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签:

资源简介

这是一个适合与起步linux学习,但有一定的C编程能力的人学习,目的是易提高计算机语言及开发环境兴趣。更希望能帮助到能然爱与这一行业的人们!

资源截图

代码片段和文件信息


#include “mytype.h“

const int save_user_data(user_t *head)
{
FILE *fp = NULL;
user_t *p = head;

//打开文件
fp = fopen(UINFOFNAME MODE_W);

//重新写入数据
while(NULL != p)
{
p->activity = 0;

fwrite(p sizeof(user_t) 1 fp);

p = p->next;
}

//关闭文件
fclose(fp);

return 0;
}

int main (void)
{
//定义蛇结构指针
snake_t *mysnake = NULL;

//定义食物结构指针
food_t  *myfood  = NULL;

//定义用户结构指针
user_t *head = NULL;

//初始化键盘,使支持监测键盘可读模式
init_keyboard();

//清屏
printf (“\033[2J“);

//重置光标
gotoxy (0 0);

//隐藏光标
printf (“\033[?25l“);

//初始化游戏
init_game(&mysnake &myfood &head);

//游戏总列表。按ESC则退出
while(1)
{
//蛇移动方向选择
switch(mysnake->new_head_way)
{
case KEY__UP://向上移动
move_up(mysnake myfood);
break;

case KEY__DOWN://向下移动
move_down(mysnake myfood);
break;

case KEY__LEFT://向左移动
move_left(mysnake myfood);
break;

case KEY__RIGHT://向右移动
move_right(mysnake myfood);
break;

default://重新启动后默认向右移动
reboot_move_right(mysnake myfood);
}

//判断是否过关
if (MYOK == mysnake->new_head_way)
{
int i = 0;
int j = 0;

//输出信息
gotoxy(LIMIT_X + 2 21);
printf (“恭喜你通过次关保持这种状态继续!!!“);
mydelay(0x5FFFFFFF);

//清屏
for (i = 1; i < LIMIT_Y + 1; i++)
{
gotoxy(3 i);

for (j = 3; j < LIMIT_X - 3; j++)
{
printf (“ “);
}
}

//进入下一关
gotoxy(LIMIT_X + 2 21);
printf (“游戏正在启动,请等待 ...              “);
mydelay(0x5FFFFFFF);

//强制让游戏从默认状态开始
mysnake->new_head_way = ‘f‘;
mydelay(0x5FFFFFFF);

//重新定义游戏速度
if (-1 == regame_level(head))
{
//如果函数返回-1,则表示通关,强制结束游戏
mysnake->new_head_way = ESC;
}

mydelay(0x5FFFFFFF);

//升级后重新打印提示信息
print_game_info(head);

//清除前面的提示信息
gotoxy(LIMIT_X + 2 21);
printf (“                             “);
}

//判断是否要结束游戏
if(ESC == mysnake->new_head_way)
{
//输出结束信息
gotoxy(LIMIT_X + 2 24);
printf (“正在保存数据 ...“);
save_user_data(head);

gotoxy(LIMIT_X + 2 26);
printf (“游戏结束!“);

gotoxy(LIMIT_X + 2 28);

break;
}
}


close_keyboard();

//释放内存
free(mysnake);
free(myfood);
free(head);

//清屏
printf (“\033[2J“);

//重置光标
gotoxy (0 0);

//显示光标
printf (“\33[?25h“);

return 0;
}





评论

共有 条评论