前言:
目前咱们对“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语言贪吃蛇代码实现的几大功能要求