snake算法贪吃蛇C语言设计步骤

snake算法  时间:2022-02-24  阅读:()

贪吃蛇C语言设计步骤

#define N 200 #include <graphics.h> #include <stdlib.h> #include <dos.h> #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define Esc 0x011b int i,key; int score=0;/*得分*/ int gamespeed=50000;/*游戏速度可以自己调整*/ struct Food { int x; /*食物的横坐标*/ int y; /*食物的纵坐标*/ int yes; /*判断是否要出现食物*/ }food; /*食物结构体*/ struct Snake { int x[N]; int y[N]; int node; /*贪吃蛇的节数*/ int direction;/*蛇的移动方向*/ int life; }snake; void Init (void);/*图形驱动*/ void Close(void); void Drawk(void); void GameOver(void); void GamePlay(void); void PrScore(void);/*输出成绩*/ /*主函数*/ void main(void) { Init(); Drawk(); GamePlay(); Close(); } void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\tc"); cleardevice(); } void Drawk(void) { /*setbkcolor(LIGHTGREEN;*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH); for(i=50;i<=600;i+=10) { rectangle(i,40,i+10,49); rectangle(i,451,i+10,460); } for(i=40;i<=450;i+=10) { rectangle(50,i,59,i+10); rectangle(601,i,610,i+10); } } void GamePlay(void) { randomize(); food.yes=1; snake.life=0; snake.direction=1; snake.x[0]=100;snake.y[0]=100; snake.x[1]=110;snake.y[1]=100; snake.node=2; PrScore(); while(1) { while(!kbhit()) { if(food.yes==1) { food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0) food.x++; while(food.y%10!=0) food.y++; food.yes=0; } if(food.yes==0) { setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i>0;i--) /*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) { case 1: snake.x[0]+=10;break; case 2: snake.x[0]-=10;break; case 3: snake.y[0]-=10;break; case 4: snake.y[0]+=10;break; } for(i=3;i<snake.node;i++) { if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) { GameOver(); snake.life=1; break; } } if (snake.x[0]<55||snake.x[0]>595||snake.y[0]<55|| snake.y[0]>455) { GameOver(); snake.life=1; } if(snake.life==1) break; if(snake.x[0]==food.x&&snake.y[0]==food.y) { setcolor(0); rectangle(food.x,food.y,food.x+10,food.y-10); snake.x[snake.node]=-20; snake.y[snake.node]=-20; snake.node++; food.yes=1; score+=10; PrScore(); } setcolor(4); for(i=0;i<snake.node;i++) rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10); delay(gamespeed); setcolor(0); rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } if(snake.life==1) break; key=bioskey(0); if(key==Esc)/*按Esc键退出*/ break; else if(key==UP&&snake.direction!=4) snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; } } /*游戏结束*/ void GameOver(void) { cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch(); } /*输出成绩*/ void PrScore(void) { char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(55,20,str); } void Close(void) { getch(); closegraph(); }

小渣云(36元/月)美国VPS洛杉矶 8核 8G

小渣云 做那个你想都不敢想的套餐 你现在也许不知道小渣云 不过未来你将被小渣云的产品所吸引小渣云 专注于一个套餐的商家 把性价比 稳定性 以及价格做到极致的商家,也许你不相信36元在别人家1核1G都买不到的价格在小渣云却可以买到 8核8G 高配云服务器,并且在安全性 稳定性 都是极高的标准。小渣云 目前使用的是美国超级稳定的ceranetworks机房 数据安全上 每5天备份一次数据倒异地 支持一...

CYUN(29元/月)美国、香港、台湾、日本、韩国CN2,续费原价

关于CYUN商家在之前有介绍过一次,CYUN是香港蓝米数据有限公司旗下的云计算服务品牌,和蓝米云、蓝米主机等同属该公司。商家主要是为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。目前,CYUN主要运营美国、香港、台湾、日本、韩国CN2线路产品,包括云服务器、站群服务器和独立服务器等。这次看到CYUN夏季优惠活动发布了,依然是熟悉的...

月神科技:香港CN2/洛杉矶CN2/华中电信高防vps,月付20元起

月神科技怎么样?月神科技是由江西月神科技有限公司运营的一家自营云产品的IDC服务商,提供香港安畅、香港沙田、美国CERA、华中电信等机房资源,月神科技有自己的用户群和拥有创宇认证,并且也有电商企业将业务架设在月神科技的平台上。目前,香港CN2云服务器、洛杉矶CN2云主机、华中电信高防vps,月付20元起。点击进入:月神科技官方网站地址月神科技vps优惠信息:香港安畅CN2-GIA低至20元核心:2...

snake算法为你推荐
akf德州水份检测仪价格,AKF系列卡尔费休水份测定仪和世界顶级进口品牌相比怎么样?inode智能客户端win7如何使用校园网iNode智能客户端欢迎页面windows欢迎界面数据分析报告范文800字统计分析报告优众网一淘网是淘宝客吗?有什么区别吗12306注册12306网站账户注册菜霸现实中遇到地痞流氓该怎么办mac地址过滤MAC地址过滤有什么用mac地址过滤无线路由器,Mac地址过滤是什么意思,怎么用?学生公寓管理系统学生宿舍管理计划书
域名注册信息查询 hostmaster mach5 59.99美元 外国域名 ixwebhosting patcha 智能骨干网 web服务器架设 帽子云 空间论坛 cdn联盟 创建邮箱 双线asp空间 云营销系统 监控服务器 德讯 114dns 免费个人网页 cdn服务 更多