2#include3#includ">
貪吃蛇游戲C語言源代碼學(xué)習(xí)

貪吃蛇游戲C語言源代碼學(xué)習(xí)

ID:41282340

大?。?0.19 KB

頁數(shù):11頁

時(shí)間:2019-08-21

貪吃蛇游戲C語言源代碼學(xué)習(xí)_第1頁
貪吃蛇游戲C語言源代碼學(xué)習(xí)_第2頁
貪吃蛇游戲C語言源代碼學(xué)習(xí)_第3頁
貪吃蛇游戲C語言源代碼學(xué)習(xí)_第4頁
貪吃蛇游戲C語言源代碼學(xué)習(xí)_第5頁
資源描述:

《貪吃蛇游戲C語言源代碼學(xué)習(xí)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、貪吃蛇游戲C語言源代碼學(xué)習(xí)閱讀學(xué)習(xí)了源代碼,并做了簡(jiǎn)單的注釋和修改,里面只用了鏈表數(shù)據(jù)結(jié)構(gòu),非常適合C語言入門者學(xué)習(xí)閱讀。程序可在VS2013下編譯運(yùn)行。1#include2#include3#include4#include56#defineU17#defineD28#defineL39#defineR4//蛇的狀態(tài),U:上;D:下;L:左R:右1011typedefstructSNAKE//蛇身的一個(gè)節(jié)點(diǎn)12{13intx;14inty;15structSNA

2、KE*next;16}snake;1718//全局變量//19intscore=0,add=10;//總得分與每次吃食物得分。20intstatus,sleeptime=200;//每次運(yùn)行的時(shí)間間隔21snake*head,*food;//蛇頭指針,食物指針22snake*q;//遍歷蛇的時(shí)候用到的指針23intendGamestatus=0;//游戲結(jié)束的情況,1:撞到墻;2:咬到自己;3:主動(dòng)退出游戲。2425//聲明全部函數(shù)//26voidPos();27voidcreatMap();28voidinitSnake();29int

3、biteSelf();30voidcreateFood();31voidcantCrossWall();32voidsnakeMove();33voidpause();34voidrunGame();35voidinitGame();36voidendGame();37voidgameStart();3839voidPos(intx,inty)//設(shè)置光標(biāo)位置40{41COORDpos;42HANDLEhOutput;43pos.X=x;44pos.Y=y;45hOutput=GetStdHandle(STD_OUTPUT_HANDLE)

4、;//返回標(biāo)準(zhǔn)的輸入、輸出或錯(cuò)誤的設(shè)備的句柄,也就是獲得輸入、輸出/錯(cuò)誤的屏幕緩沖區(qū)的句柄46SetConsoleCursorPosition(hOutput,pos);47}4849voidcreatMap()//創(chuàng)建地圖50{51inti;52for(i=0;i<58;i+=2)//打印上下邊框53{54Pos(i,0);55printf("■");//一個(gè)方塊占兩個(gè)位置56Pos(i,26);57printf("■");58}59for(i=1;i<26;i++)//打印左右邊框60{61Pos(0,i);62printf("■")

5、;63Pos(56,i);64printf("■");65}66}6768voidinitSnake()//初始化蛇身69{70snake*tail;71inti;72tail=(snake*)malloc(sizeof(snake));//從蛇尾開始,頭插法,以x,y設(shè)定開始的位置//73tail->x=24;74tail->y=5;75tail->next=NULL;76for(i=1;i<=4;i++)//初始長(zhǎng)度為477{78head=(snake*)malloc(sizeof(snake));79head->next=tail;

6、80head->x=24+2*i;81head->y=5;82tail=head;83}84while(tail!=NULL)//從頭到為,輸出蛇身85{86Pos(tail->x,tail->y);87printf("■");88tail=tail->next;89}90}91//??92intbiteSelf()//判斷是否咬到了自己93{94snake*self;95self=head->next;96while(self!=NULL)97{98if(self->x==head->x&&self->y==head->y)99{100

7、return1;101}102self=self->next;103}104return0;105}106107voidcreateFood()//隨機(jī)出現(xiàn)食物108{109snake*food_1;110srand((unsigned)time(NULL));//為了防止每次產(chǎn)生的隨機(jī)數(shù)相同,種子設(shè)置為time111food_1=(snake*)malloc(sizeof(snake));112while((food_1->x%2)!=0)//保證其為偶數(shù),使得食物能與蛇頭對(duì)其113{114food_1->x=rand()%52+2;1

8、15}116food_1->y=rand()%24+1;117q=head;118while(q->next==NULL)119{120if(q->x==food_1->x&&q->y==fo

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。