1、c语言贪吃蛇制作过程 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();/销毁
2、蛇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 Che
3、ck()/检测空格 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; /处理蛇头 Snake0
4、2=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=nor
5、th; 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+Sn
6、ake02,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!=
7、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_Snakelen
8、1-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
9、_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(S
10、TD_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();/改变方向; if(false=SnakeDie()/判断死亡 printf(snake dien); break; SnakeMove();/蛇动 shows2();/显示 Score();/显示分数 Sleep(1000); /printf(开始游戏n); system(pause); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1