1、int print(int ret);int run(int ret);int foods(void);int grow(void);int direction(void);int die(void);int or(void);int poi(void);int gotoxy(int x,int y);二、资源文件 src.c ,这里存放的是函数的实现方法:#includeheader.hint flag=0;int len=5;int key=0;char name=name;int core=0;int life=3;/ 初始化墙int wall(void)int i=0;int j=0;
2、for(i=0;i30;i+)for(j=0;j0&29)if(j=0)*n if(j29) if(i=29)/ 初始化蛇属性int init(int len)life=3;core=0;flag=0;len=5;key=0;gotoxy(8,15); 请输入你的大名,按 Enter 键开始游戏:scanf(%s,&name);gotoxy(62,2);gotoxy(62,4);name:,name);gotoxy(62,6); 方向控制说明:gotoxy(62,7);w: 向上 s :向下 gotoxy(62,8);a: 向左 d: 向右 gotoxy(62,10); O表示食物gotoxy
3、(62,11);。表示有毒gotoxy(62,12); 分数: %d,core);gotoxy(62,14); 生命值:3; xy00=22;xy10=22;for(i=1;len;xy0i=xy0i-1-2; xy1i=xy1i-1;print(len);5;pois0i=2*(rand()%(28)+1);pois1i=rand()%(28)+1;gotoxy(pois0i,pois1i);prin tf( O/ 蛇移动int run(int ret) for(i=ret-1;i0;i-)xy0i=xy0i-1;/ 打印蛇int print(int ret)ret;gotoxy(xy00,
4、xy10); elsegotoxy(xy0i,xy1i); / 定义窗口属性int gotoxy(int x,int y)COORD coord = x, y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);int mov(int k)switch(k)case 1:if(2 != flag )run(len);xy00=xy00-2;case 3case 4case 2:if(1 != flag)xy00=xy00+2;flag=2;break;if(4 !xy10=xy10-1;flag=3;if(3 !xy
5、10=xy10+1;/ 生成食物int foods(void)food0=2*(rand()%(28)+1);food1=rand()%(28)+1;gotoxy(food0,food1);/ 蛇吃食物并成长int grow(void)if(xy00=food0&xy10=food1) len+;foods();core=core+100;return len;/ 根据键值获取蛇的移动方向int direction(void)if(_kbhit()key=_getch();if(a=key & flag!=2) flag=1;else if(d=1) flag=2;w=4) flag=3;s=
6、3) flag=4;return flag;/ 撞强和碰尾死亡方式int die(void)if(xy00=0 | xy00=58 |xy10=0 |xy10=29) return -1;if(xy00=xy0i & xy10=xy1i)/ 死亡后由玩家决定是否继续游戏int or(void)int key;while(1)y=key)return 1;nreturn 2;/ 吃有毒的食物,生命减少至 0;int poi(void)if(xy00=pois0i & xy10=pois1i) life-;if(life=0) gotoxy(62,14); printf( gotoxy(62,14
7、); return -3; for(i=1;=life; pois0i=2*(rand()%(28)+1); pois1i=rand()%(28)+1; gotoxy(pois0i,pois1i);、主函数 main.c 文件int main(void)int i;int flag=2;int kill;int ret;int ret2;system(COLOR 0C/ 窗口颜色MODE CON: COLS=99 LINES=30/ 窗口宽度和高度in:/ 初始化移动方向kill=1;ret=0;ret2=0;gotoxy(0,0);/ 光标移动到坐标( 0,0)的位置wall();/ 打印围
8、墙/ 初始化蛇init(5);/ 测试语句/ gotoxy(58,29);/ printf( 这 / 调用生成食物的函数,生成一个食物 while(1) gotoxy(xy0len-1,xy1len-1);/ 蛇移动时,蛇尾前移时擦去原蛇尾 mov(flag);/ 控制蛇移动方向len=grow();/ 蛇生长,并返回蛇的长度ret2=poi();/ 蛇吃到有毒的食物,如果生命值为 0,刚死亡 if(ret2=-3)goto out3;flag=direction();/ 根据键值,得到蛇移动方向 kill=die();/ 蛇死亡判断,撞墙和碰尾死亡; print(len);/ 打印当前长度的蛇if(-1=kill)goto out1;/ 撞墙死亡if(-2=kill)goto out2;/ 碰尾死亡Sleep(300-5*len);/ 简单延时out1:gotoxy(15,15); 恭喜你撞墙而死 ! 按 y 重新开始,按 n 结束游戏 in2:ret=or();/ 死亡后由玩家决定是否继续游戏,按 y 继续游戏,按 n 退出 游戏if(1=ret)/ 复活后游戏,把蛇身置空50;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1