云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言贪吃蛇实验报告

C语言贪吃蛇实验报告

  • 62 次阅读
  • 3 次下载
  • 2026/4/29 12:34:34

}

if(x>0&&x<16&&y>0&&y<16) {

if(a==0)

printf(\○\用空心圆来表蛇改运动的总范围*/

else printf(\●\用实心圆来蛇的长度和食物的出现地点*/ return ; } }

void draw(int (*sna)[17]) {

int i,j; system(\刷屏工具*/ for(i=0;i<17;i++) /*区域范围的大小*/ {

for(j=0;j<17;j++) {

drawpt(sna[i][j],j,i); } }

printf (\总成绩为%d分\}

/*-----------------------------------------------*/

/*---------------取随机数,出现食物用------------*/

int randno() /*利用这个随机函数来控制食物的随机出现*/ {

srand(time(NULL));

return rand()+1;/*随机函数出现食物时的范围,防止食物出现在范围之外*/ }

/*-----------------------------------------------*/

/*----------判断游戏是否结束---------------------*/ bool judgeGO(int (*sna)[17]) {

int x,y,i=0,max=0,count=0; for(x=0,y=0;y<17;y++)

if(sna[x][y]==HEAD)/*判断头部是否在最外层的*/ return false; for(x=16,y=0;y<17;y++) if(sna[x][y]==HEAD) return false; for(y=0,x=0;x<17;x++) if(sna[x][y]==HEAD) return false;

8

for(y=16,x=0;x<17;x++) if(sna[x][y]==HEAD) return false; for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(max

if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD)

max=sna[x][y];/*这个也是求头部之后的*/ } }

for(i=0;i

for(x=1;x<16;x++) {

for(y=1;y<16;y++) {

if(sna[x][y]==i+1)

count++;/*这个判断想了好久的*/ score=(count-3)*10;/*计算蛇的总成绩*/ } } }

if(count!=max)/*判断身体部分是否连续*/ return false; return true; }

/*--------------------------------------------------*/ /*-------------游戏结束显示-------------------------*/ void gameover() {

system(\

printf(\ printf(\

printf(\游戏结束\\n\\n\ printf(\ printf (\此次总成绩为%d分\\n\\n\ printf(\ printf (\请您再接再厉\\n\\n\ printf(\

printf(\按Esc键退出,按任意键重新开始。\\n\}

/*-------------------------------------------------*/

/*全程标记法,从尾巴开始123456....HEAD,食物是FOOD。*/ void marksn()

9

{

void downmove(int (*sna)[17]);/*用键盘的方向键的下键来控制蛇向下运动*/ void upmove(int (*sna)[17]);/*用键盘的方向键的上键来控制蛇向上运动*/ void leftmove(int (*sna)[17]);/*用键盘的方向键的左键来控制蛇向左运动*/ void rightmove(int (*sna)[17]);/*用键盘的方向键的右键来控制蛇向右运动*/ int judgeF(int (*sna)[17],int keym); int snake[17][17]={0};

/*------各种东西初始化-------------------*/ int x=1,y=7,key,key1; snake[1][1]=1; snake[1][2]=2; snake[1][3]=3; snake[2][3]=HEAD; while(snake[x][y]!=0) {

x=randno(); y=randno(); }

snake[x][y]=FOOD; draw(snake);

/*---------------------------------------*/ /*--------控制的部分---------------------*/ while(judgeGO(snake)) {

key=getch(); switch(key){ case 72:

while(!kbhit()&&key1!=80&&judgeGO(snake))/*这个函数kbhit()自己查一下吧~控制输入很好*/ {

if(judgeF(snake,key)) {

draw(snake);

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/

continue; }

upmove(snake);/*用键盘的方向键的上键来控制蛇向上运动*/ draw(snake);

key1=key;/*这里的key1是就来标记上一步的方向,这样相反的方向就暂停了*/

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/ }

break; case 80:

while(!kbhit()&&key1!=72&&judgeGO(snake))

10

{

if(judgeF(snake,key)) {

draw(snake);

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/

continue; }

downmove(snake);/*用键盘的方向键的下键来控制蛇向下运动*/ draw(snake); key1=key;

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/ }

break; case 75:

while(!kbhit()&&key1!=77&&judgeGO(snake)) {

if(judgeF(snake,key)) {

draw(snake);

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/

continue; }

leftmove(snake);/*用键盘的方向键的左键来控制蛇向左运动*/ draw(snake);

key1=key;

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/ }

break; case 77:

while(!kbhit()&&key1!=75&&judgeGO(snake)) {

if(judgeF(snake,key)) {

draw(snake);

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的运动速度*/

continue; }

rightmove(snake);/*用键盘的方向键的右键来控制蛇向右运动*/ draw(snake);

key1=key;

Sleep(v_sleep);/*Sleep函数在着是个延迟函数,也可在呈现头改变v_sleep的大小来控制蛇的

11

搜索更多关于: C语言贪吃蛇实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

} if(x>0&&x0&&y<16) { if(a==0) printf(\○\用空心圆来表蛇改运动的总范围*/ else printf(\●\用实心圆来蛇的长度和食物的出现地点*/ return ; } } void draw(int (*sna)[17]) { int i,j; system(\刷屏工具*/ for(i=0;i<17;i++) /*区域范围的大小*/ { for(j=0;j<17;j++) { drawpt(sna[i][j],j,i);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com