龙空技术网

C语言学习:三天写好贪吃蛇小游戏(二)

日常生活博客 786

前言:

目前咱们对“c语言贪吃蛇代码实现的几大功能要求”大约比较着重,大家都想要了解一些“c语言贪吃蛇代码实现的几大功能要求”的相关内容。那么小编在网摘上网罗了一些关于“c语言贪吃蛇代码实现的几大功能要求””的相关文章,希望你们能喜欢,大家一起来学习一下吧!

前面一篇文章我们讲了贪吃蛇小游戏的大体思路,以及我写好的贪吃蛇小游戏的效果图。

还是那句话,贪吃蛇没有复杂的C语言指针,没有图形库,而且可玩性强。不要害怕贪吃蛇非常难写,

我们要相信自己能,今天我们把贪吃蛇的预处理部分,需要用到的函数声明写好,明天把各个功能的函数

模块写好,这个小游戏就大功告成了。

预处理部分和main函数的写法:源码:

/*预处理命令*/

#include <windows.h>

#include <stdlib.h>

#include <time.h>

#include <stdio.h>

#include <string.h>

#include <conio.h>

/*宏定义*/

#define N 21

/*全局变量*/

int food[3],num;//食物

char score[3];//游戏分数

char tail[3];

/*声明*/

void gotoxy(int x,int y); //输出坐标 函数

void color(int b); //颜色函数

int block(char head[2]); //判断出界撞墙函数

int eat(char snake[2]); //吃食物函数

void draw(char **snake, int len); //蛇移动函数

char** move(char **snake, char dirx, int *len); //控制方向函数

void init(char plate[N+2][N+2], char ***snake_x, int *len); //初始化函数

void menu();//侧面菜单函数

int savegard(); //取记录分数函数

int savedata(); //存数据函数

void free(char **snake, int len); //释放空间函数

/*main函数*/

int main(void)

{

system("title 源世界.Dracula出品");

int len;

char ch = 'g';

char a[N+2][N+2] = {{0}};

char **snake;

srand((unsigned)time(NULL));

color(11);

savegard();

init(a, &snake, &len);

menu();

while (ch != 0x1B) // 按 ESC 结束

{

draw(snake, len);

if (!food[2]) {

food[0] = rand()%N + 1;

food[1] = rand()%N + 1;

food[2] = 1;

num++;

if(num>8)

num=0;

}

Sleep(200-score[3]*10);

setbuf(stdin, NULL);

if (kbhit())

{

gotoxy(0, N+2);

ch = getche();

}

snake = move(snake, ch, &len);

if (block(snake[0])==1)

{

gotoxy(N+2, N+2);

puts("你输了");

savedata();

free(snake, len);

getche();

exit(0);

}

}

free(snake, len);

exit(0);

}

说明一下:这是我们已经写好的框架,当你走到这一步时,是非常难得的,下一步我们就照着这个框架,把每个函数补充完整。

就像一栋房子的结构已经出来了,接下来我们只要按部就班的添砖加瓦,这个房子就修好了。上面的代码我们要记下来,

明天在这个的基础上继续,就over了。大家把这个收藏一下,我们明天继续,好吧!

贪吃蛇

今天我们的任务完成了,但是你们有什么感觉,那是我们明天的东西没有补充完整,这些函数构造的思路才是最重要的。

我给大家看一下这个已经写好程序的图片,相信你就兴趣了!

欢迎订阅点赞,谢谢!

标签: #c语言贪吃蛇代码实现的几大功能要求