c語言貪吃蛇制作過程.doc_第1頁
c語言貪吃蛇制作過程.doc_第2頁
c語言貪吃蛇制作過程.doc_第3頁
c語言貪吃蛇制作過程.doc_第4頁
c語言貪吃蛇制作過程.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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();/分數(shù)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;/過濾非法蛇身/把前一個節(jié)點賦值給后一個節(jié)點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(分數(shù));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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論