C语言贪吃蛇代码.doc

C语言贪吃蛇代码.doc

ID:57609562

大小:43.00 KB

页数:7页

时间:2020-08-28

C语言贪吃蛇代码.doc_第1页
C语言贪吃蛇代码.doc_第2页
C语言贪吃蛇代码.doc_第3页
C语言贪吃蛇代码.doc_第4页
C语言贪吃蛇代码.doc_第5页
资源描述:

《C语言贪吃蛇代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#include#include#defineontimer(C,MS,CODE)(clock()-C>(MS)&&((CODE),C=clock()))//宏定义一个计时器ontime(计时变量,间隔时间,需要执行的表达式)extern"C"WINBASEAPIHWNDWINAPIGetConsoleWindow();HWNDhwnd=GetConsoleWindow();HANDLEhOut=GetStdHandle(STD_OUTPUT_HANDLE);typedefstructs{

2、charx;chary;s*n;}she;//蛇身链表she*head=(she*)malloc(sizeof(she)),*tail=head;UINTmap[35][35]={0},a,b,x,y,score,ms,ch=0,tally[3]={0};void__cdeclouttextxy(int,int,constchar*,...);//将光标移动到指定行和列输出格式化字符串voidinitialize();//初始化开始画面和各项数据voidstart();//手动游戏voidkmsg(UINT);//键盘消息处理voidmove(int,int);//移动voidadd(int,

3、int);//吃掉食物后增加一节以及分数和速度voidAI();//智能AI,躲避蛇voidAI2();//智能AI2,贪吃蛇boolroad(char);//测路是否有障碍voidend();//游戏结束intmain(void){initialize();return0;}void__cdeclouttextxy(intx,inty,constchar*str,...){COORDpos={y*2,x};SetConsoleCursorPosition(hOut,pos);va_listarg_ptr;va_start(arg_ptr,str);vprintf(str,arg_ptr);v

4、a_end(arg_ptr);}voidinitialize(){SetConsoleTitle("贪吃蛇");//设定窗口标题system("modeconlines=35cols=100");//设定窗口大小CONSOLE_CURSOR_INFOcursor_info={1,0};//光标属性结构体SetConsoleCursorInfo(hOut,&cursor_info);//设定光标为不可见map[17][17]=1;x=y=17;head->x=17;head->y=17;score=0;ms=300;for(inti=0;i<35;++i)outtextxy(i,35,"▓");

5、outtextxy(2,41,"游戏速度");outtextxy(4,42,"300");outtextxy(8,42,"得分");outtextxy(10,42,"0");outtextxy(14,41,"操作方法");outtextxy(17,40,"方向键操作");outtextxy(19,42,"↑");outtextxy(21,40,"←↓→");outtextxy(24,39,"按下空格临时加速");outtextxy(28,40,"作者:深井冰");outtextxy(30,40,"QQ:93060178");outtextxy(32,40,"QQ群:1900997");outt

6、extxy(15,10,"按方向键手动游戏,按回车自动游戏");for(ch=getch();ch!=72&&ch!=75&&ch!=77&&ch!=80&&ch!=13;ch=getch());outtextxy(15,10,"");srand((int)time(NULL));do{a=rand()%35;b=rand()%35;}while(map[a][b]);map[a][b]=2;//生成食物outtextxy(a,b,"★");outtextxy(17,17,"■");if(ch==13)AI2();elsestart();}voidstart(){while(1){if(kbh

7、it())switch(getch()){case72:if(ch!=80)ch=72;break;case80:if(ch!=72)ch=80;break;case75:if(ch!=77)ch=75;break;case77:if(ch!=75)ch=77;break;}if(GetKeyState(VK_SPACE)&0x80)//如果空格键是按下状态,将速度临时调整至60msontimer

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。