今天无意间翻以前的代码时看到了当初写的贪吃蛇,改了改几处bug,增加了一个记录得分的模块。感觉自己最多只能拿到55分。有兴趣的小伙伴可以看看。
/*名称:贪吃蛇
作者:tedist
基本实现方法:链表表示蛇体,在while循环以及Sleep函数下用printf函数实现游戏的动态化。(在没有吃到食物的时候用增头去尾的方法表示移动,吃到食物的时候不去掉尾)
1.定义蛇体的每一个结点,定义食物。
2.预处理地图位置,地图墙壁
3.所需函数
1. 光标定位 void gotoxy()
2.地图初始化 void initmap()
3.刷新食物 void creatfood() *食物在刷新的时候不能出现在蛇的身上
4.蛇的操控 void controlSnake()*蛇不能进行180度的转弯
5.碰撞判定 int crush()
6.失败标志 int faile()
7.游戏速度 void speed()
8.当游戏结束时如果分数大于历史最高分则保存,增加游戏的可玩性。
4.主函数
如果之前有score文档保存最高分数则读取显示,没有就新建一个score文件保存最高得分
地图初始化
while(1)
{
蛇的操作
失败标志;break;
}
结束游戏若分数大于最高分那么保留最高分。
退出游戏。
*/
#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
#include<math.h>
#define wallx 4
#define wally 4 //墙壁的位置//
#define len 3 //蛇的初始长度//
#define wallwidth 40
#define wallheight 20 //围墙的大小//
int speed=200;//定义初始的运动速度//
COORD cor;//在构建围墙的时候用到的位置变量//
char ch=72;
char pre=72;//定义蛇一开始的初始运动方向,并为蛇之前运动的方向保留一个变量//
int eat=0;//判定蛇此时是否吃到了食物//
int length;//记录蛇的长度//
int maxscore;//记录最高记录//
int scorewallwidth=10;//分数框的宽度//
typedef struct snode
{
COORD cor;
snod