c语言贪吃蛇制作过程.doc_第1页
c语言贪吃蛇制作过程.doc_第2页
c语言贪吃蛇制作过程.doc_第3页
c语言贪吃蛇制作过程.doc_第4页
c语言贪吃蛇制作过程.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言贪吃蛇制作过程流程图如下:具体代码如下#include head.h#include#include#include#include#include#include#pragma comment(lib,winmm.lib)void Page();/显示界面void Mps();/播放音乐void Check();/检查空格void Stopm();/停止音乐void shows2();/画背景void SetSnake();/设置蛇的位置void DrawSnake();/画蛇void SnakeMove();/蛇的移动void DeleteSnake();/销毁蛇void ChangeDir();/蛇随方向动起来bool SnakeDie();/判断蛇是否死亡void ProduceFood();/随机产生食物void SnakeGrow();/蛇变长void Score();/分数void Page()/显示界面 printf(nnnn);printf(tttt欢迎来到贪吃蛇世界n);printf(tttt 按空格开始游戏n);printf(tttt w,a,s,d,控制方向n);/*void Mps()/播放声音PlaySound(E:霍旭祥st.wav ,NULL,SND_FILENAME | SND_ASYNC);*/void Check()/检测空格char input;while(1) input = _getch();/按空格键停止播放音乐 if( =input) break; /*void Stopm()/停止音乐PlaySound(NULL,0,0);/PlaySound(NULL,0,0);*/画背景void shows2()int i=0;for(i=0;i=1;i-)if(0=Snakei1)continue;/过滤非法蛇身/把前一个节点赋值给后一个节点Snakei0=Snakei-10;Snakei1=Snakei-11;Snakei2=Snakei-12;/处理蛇头Snake02=SnakeDir;/蛇头方向if(west=Snake02|east=Snake02)/判断东西Snake01+=Snake02;/Snake01为列else/南北Snake00+=Snake02;/Snake00为行DrawSnake();void DeleteSnake()/销毁蛇int i=0;for(i=0;Snakei0!=0;i+)strncpy(&ground2Snakei0Snakei1 , ,2);void ChangeDir()/蛇随方向动起来if(GetAsyncKeyState(W)if(south!=Snake02)SnakeDir=north;else if(GetAsyncKeyState(S)if(north!=Snake02)SnakeDir=south;else if(GetAsyncKeyState(A)if(east!=Snake02)SnakeDir=west;else if(GetAsyncKeyState(D)if(west!=Snake02)SnakeDir=east;bool SnakeDie()/判断蛇是否死亡if(west=Snake02|east=Snake02)/判断东西/蛇头的下一个是方块就死亡if(0=strncmp(&ground2Snake00Snake01+Snake02,2)return false;else/南北if(0=strncmp(&ground2Snake00+Snake02Snake01,2)return false;return true;void ProduceFood()/随机产生食物/产生随机目标 int i;/行和列 bool flag=true; if(false=ProFood)/判断是否产生新的食物; return ; srand(unsigned int)time(NULL); while(1) g_line=rand()%16+2; g_row=rand()%18+2; for(i=0;Snakei0!=0;i+) if(g_line=Snakei0&g_row=Snakei1) flag=false; break; if(true=flag) break; /坐标画食物 strncpy(&ground2g_lineg_row*2,2); ProFood=false;void SnakeGrow()/蛇变长/蛇头坐标与食物坐标相同if(g_line=Snake00&g_row*2=Snake01)if(east=Snakeg_Snakelen2)Snakeg_Snakelen+10=Snakeg_Snakelen0;Snakeg_Snakelen+11=Snakeg_Snakelen1-2;Snakeg_Snakelen+12=Snakeg_Snakelen2;else if(west=Snakeg_Snakelen2)Snakeg_Snakelen+10=Snakeg_Snakelen0;Snakeg_Snakelen+11=Snakeg_Snakelen1+2;Snakeg_Snakelen+12=Snakeg_Snakelen2;else if(south=Snakeg_Snakelen2)Snakeg_Snakelen+10=Snakeg_Snakelen0-1;Snakeg_Snakelen+11=Snakeg_Snakelen1;Snakeg_Snakelen+12=Snakeg_Snakelen2;else if(north=Snakeg_Snakelen2)Snakeg_Snakelen+10=Snakeg_Snakelen0+1;Snakeg_Snakelen+11=Snakeg_Snakelen1;Snakeg_Snakelen+12=Snakeg_Snakelen2;g_Snakelen+;ProFood=true;g_Score+;void Score()COORD rd;rd.X=55;rd.Y=8;/设置光标位置SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),rd);/打印printf(分数);rd.X=56;rd.Y=9;/设置光标位置SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),rd);/打印printf(%d,g_Score);int main(void) Page();/显示页面 /Mps();/播放音乐 Check(); /Stopm();/按空格键停止播放音乐 system(cls);/清屏; /游戏界面 SetSnake();/设置蛇的位置 shows2(); while(1) system(cls);ProduceFood(); SnakeGrow();/蛇变长 ChangeDir();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论