




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、#include ""#include "" #include "" #include ""#include ""#include ""#include ""#include ""#define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b #define ENTER 0x1c0d#define SPAC
2、E 0x3920 /*游戲中人物的結(jié)構(gòu)體*/ struct play int x; int y; ; struct Snowint x;int y;int speed;snow100;int snownum=0;struct play you,them5; void *save;int sum=0;/*統(tǒng)計吃的豆子個數(shù),吃滿50顆就算勝利*/int change=10;/*0豆子,1空地2,墻壁,3自己,4敵人*/int a1520=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,1,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,2,
3、 2,1,2,2,2,1,1,2,1,1,0,0,0,1,1,4,1,1,0,2, 2,1,1,0,2,1,1,2,0,1,1,2,2,2,2,2,0,0,0,2, 2,4,1,0,2,1,1,2,1,1,1,0,1,1,1,1,0,1,1,2, 2,1,2,1,2,1,1,2,1,3,2,2,1,1,1,1,2,2,1,2, 2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,0,1,1,1,2, 2,1,2,1,0,1,1,1,1,2,1,0,1,2,2,2,1,1,1,2, 2,1,0,1,0,1,2,1,1,2,1,0,1,2,1,1,4,1,1,2, 2,1,0,2,0,1,
4、2,1,1,2,1,0,1,2,1,1,1,1,1,2, 2,1,0,2,1,1,2,1,1,2,1,0,2,2,1,0,0,0,1,2, 2,1,1,2,1,1,2,1,1,2,1,0,2,1,1,2,2,1,1,2, 2,1,2,2,1,2,2,1,1,1,1,0,1,4,1,2,0,0,1,2, 2,1,0,0,0,0,0,4,0,1,1,0,1,1,1,1,0,0,1,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2; /*數(shù)組就是地圖( level 1)*/ ;int b1520=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
5、2,2,2, 2,1,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,2, 2,1,2,2,2,2,1,2,1,1,0,0,0,1,1,4,1,1,0,2, 2,1,1,0,2,2,1,2,0,1,2,2,2,2,2,2,0,0,0,2, 2,4,1,0,2,1,1,2,1,1,1,0,1,1,2,1,0,1,1,2, 2,1,2,1,2,1,1,2,2,3,2,2,1,1,2,1,2,2,1,2, 2,1,2,1,2,2,1,1,1,1,1,1,1,0,0,0,1,1,1,2, 2,2,2,1,0,2,1,1,1,2,1,0,1,2,2,2,1,1,1,2, 2,2,0,
6、1,0,2,2,1,1,2,1,0,1,2,2,1,4,1,1,2, 2,1,0,2,0,1,2,1,2,2,1,0,1,2,1,1,1,1,1,2, 2,1,0,2,1,1,2,1,1,2,1,0,2,2,1,0,0,0,1,2, 2,1,1,2,1,1,2,1,1,2,1,0,2,1,2,2,2,1,1,2, 2,1,2,2,1,2,2,2,1,1,1,0,1,4,1,2,0,0,1,2, 2,1,0,0,0,0,0,4,0,1,1,0,1,1,1,1,0,0,1,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2; /*數(shù)組就是地圖( level 2)*
7、/int c1520=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,1,1,0,0,0,0,0,1,0,0,0,1,1,2,1,1,1,0,2, 2,1,2,2,2,1,1,2,2,1,0,0,0,1,2,4,1,1,0,2, 2,1,1,0,2,2,1,2,0,1,2,2,2,2,2,2,0,0,0,2, 2,4,1,0,2,1,1,2,1,1,1,0,1,1,1,1,0,1,1,2, 2,1,2,1,2,1,2,2,1,3,2,2,1,1,1,1,2,2,1,2, 2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,0,1,1,1,2, 2,
8、1,2,1,0,2,1,1,1,2,2,0,1,2,2,2,1,1,1,2, 2,2,0,1,0,1,2,1,2,2,1,0,1,2,1,1,4,1,1,2, 2,2,0,2,0,1,2,1,1,2,1,0,1,2,2,1,1,1,1,2, 2,2,0,2,1,1,2,2,1,2,1,0,2,2,1,0,0,0,1,2, 2,1,1,2,1,1,2,1,1,2,2,0,2,1,1,2,2,2,1,2, 2,1,2,2,1,2,2,1,2,1,1,0,1,4,1,2,0,0,1,2, 2,1,0,0,0,0,0,4,0,1,1,0,1,1,1,1,0,0,1,2, 2,2,2,2,2,2,2,2
9、,2,2,2,2,2,2,2,2,2,2,2,2; /*數(shù)組就是地圖( level 3)*/ int xx52;/*判斷敵人方向用的結(jié)構(gòu)體*/ int false=0; /*判斷輸贏的參數(shù)*/*選擇關(guān)卡*/void levelchoose(int x) int j,k; switch(x) case 1:break; case 2:for(j=0;j<15;j+) for(k=0;k<20;k+) ajk=bjk; break; case 3:for(j=0;j<15;j+) for(k=0;k<20;k+) ajk=cjk; break; default:break;
10、 /*歡迎界面*/void hello()/*輸出界面*/printf("XXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXn");printf("X XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXn");printf("X XXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXn");printf("X XXX X XXXXX
11、XXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXn");printf("X XXX X XXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXn");printf("X XXX XXX XXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXn");printf("X XXX XXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXn"
12、;);printf("X XXX XXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXX XX XXXXXXXXXXn");printf("X XXXX XXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXX XXXX XXXXXXXXXn");printf("X XXX XXX XXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXX XXXXXX XXXXXXXXn");printf("X XXX XXX XXXXXX XXXXXXXXXX XXXX XXXX
13、XXXXXXXXX XXXXXXX XXXXXXXn");printf("XXXXXXXXXX XXXXXXX XXXXXXXXXX XXXXX XXXXXXXXXXXXX XXXXXXXX XXXXXn");printf("XXXXXXXXXXX XXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXX XXXXn");printf("XXXXXXXXXXX XXXXX XXXX XXXXXXXXXXXX XXXn");printf("XXXXXXXXXXXXXXXXXXXXXX
14、XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXn");printf("X XXXXXX XXXXXXXX XXX XXXX XXXXX XXXXXX XXXXX Xn");printf("X XXXXX XXXXXX XXXXXXX XXX XXX XXXX XXXXX XXXXXX XXXXX Xn");printf("X XXXXXX XXXXX XXXXXXX XXXXX XX XX XXXXX XXXXXX XXXX Xn");printf("X XXX
15、XXX XXXX X XXXXX XXXXXX XX XX XXXX X XXXXX XXXX Xn");printf("X XXXXXX XXXX X XXXXX XXXXXX XX XX XXXX X XXXXX X XXX Xn");printf("X XXXXXX XXXX X XXXXX XXXXXXXXXX X XX X XXXX X XXXXX X XXX Xn");printf("X XXXXX XXXX XXX XXXX XXXXXXXXXX X X XXX XXX XXXX XX XX Xn");prin
16、tf("X XXXX XXX XXXX XXXXXXXXXX X X XXX XXX XXXX XX XX Xn");printf("X XXXXXXXXXXX XXXX XXXXXX XX X X XXX XXXX XXX X Xn");printf("X XXXXXXXXXX XXXXX XXX XXXXXX XX X X XX XXXXX XXX XXXX Xn");printf("X XXXXXXXXXX XXXXX XXXX XXXX XX XX XX XX XXXXX XXX XXXX Xn");pri
17、ntf("X XXXXXXXXXX XXXXX XXXX XXX XXX XX XX XX XXXXX XXX XXXXX Xn");printf("X XXXXXXXXX XXXXXXX XXXX XXXX XX XX X XXXXXXX XX XXXXX Xn");/*游戲說明*/void instruction()printf(" *n");printf(" * GAME INSTRUCTIONS *n");printf(" *n");printf(" WELCOME TO PA
18、CMAN WORLD!nn");printf("Press up,down,left,right to play.n");printf("Press Esc to quit it.n");printf("Press space to reset the game when you are playing.n");printf("How to win the game:n");printf("tIf you have aten all of the yellow peans without bei
19、ng in the same location with the green enemy , you win ! n");printf("tIf you are in the same location with the green enemy ,you lose !n");printf("Please choose game level number from 1 to 3 and press Enter key to start game :n");/*延時函數(shù) 傳入微秒數(shù)*/void TimeDelay(unsigned long mic
20、rosec) union REGS r; =0x86; r.x.cx=microsec>>16; =microsec; int86(0x15,&r,&r); /*吃豆子的函數(shù)*/drawblackdou(int x,int y) setcolor(0); circle(100+y*20,100+x*20,3); /*吃到豆子后就加一*/sum+;/*吃到后這里就成為普通平地*/ axy=1;/*播放音樂的函數(shù)*/void Pr()int s15=0,100,150,200,50,150,250,300,250,300,250,150,100,250,350;/*改變
21、歡迎詞的顏色*/setcolor(change/10);/*改變歡迎詞的字體*/settextstyle(0,0,4);/*輸出歡迎詞*/outtextxy(20,200,"WELCOME TO OUR GAME!");outtextxy(20,250,"Press Space key to");outtextxy(20,300,"continue.");/*使揚聲器以schange/10的頻率發(fā)聲*/sound(schange/10);/*播放動畫音樂*/void DrawSnow()int i;int sx62;setlinest
22、yle(SOLID_LINE,0,THICK_WIDTH);/*一次3行畫出白色雪花的3條線*/line(1,1,9,9);line(0,5,10,5);line(9,1,1,9);/*在堆中申請200字節(jié)空間*/save=malloc(200);/*將雪花位圖保存到save中*/getimage(0,0,10,10,save);/*清屏*/cleardevice();/*設(shè)置隨機數(shù)的種子數(shù)*/randomize();/*計算雪花位置的橫坐標數(shù)組*/for(i=0;i<62;i+) sxi=(i+2)*10;/*以下的鍵控while循環(huán)控制播放音樂和下雪動畫*/*如果未按鍵,執(zhí)行循環(huán)體*
23、/while(!kbhit()Pr();if(snownum!=100) snowsnownum.speed=2+random(5); i=random(62); /*取橫坐標*/ snowsnownum.x=sxi; /*計算縱坐標*/ snowsnownum.y=10-random(100); /*循環(huán)放置snownum個雪花*/for(i=0;i<snownum;i+) putimage(snowi.x,snowi.y,save,COPY_PUT);/*延遲100ms以便看到雪花*/delay(100);/*清屏*/cleardevice();/*調(diào)用 Pr函數(shù)輸出歡迎詞并播放聲音
24、*/Pr();/*循環(huán)畫出snownum個雪花*/if(snownum!=100) snownum+; setfillstyle(SOLID_FILL,15);for(i=0;i<snownum;i+) snowi.y+=snowi.speed; putimage(snowi.x,snowi.y,save,COPY_PUT); if(snowi.y>500) snowi.y=10-random(200); change+;if(change=140) change=10;nosound();cleardevice();/*圖形系統(tǒng)初始化函數(shù)*/void Init(void) int
25、 gd=DETECT,gm; initgraph(&gd,&gm,"c:tc");cleardevice();/*開始函數(shù)*/ begain() int i,j; sleep(1); for(i=0;i<15;i+) for(j=0;j<20;j+) /*代表墻壁*/ if(aij=2) setfillstyle(SOLID_FILL,BLUE); bar(100+j*20-10,100+i*20+10,100+j*20+10,100+i*20-10); /*代表自己*/ else if(aij=3) setcolor(RED); circle(
26、100+j*20,100+i*20,9); /*代表敵人*/ else if(aij=4) setcolor(GREEN); circle(100+j*20,100+i*20,9); /*代表豆子*/ else if(aij=0) setcolor(YELLOW); circle(100+j*20,100+i*20,3); /*敵人也自己的開始坐標*/ =5=9;them0.x=2;them0.y=15; them1.x=4;them1.y=1; them2.x=8;them2.y=16; them3.x=12;them3.y=13; them4.x=13;them4.y=7; /*敵人移動的
27、過程*/ void movethem(struct play *them) int i,loop; randomize(); for(i=0;i<5;i+) if(=themi.x&&(themi.y+1)=) themi.y+; else if(=themi.x&&(themi.y-1)=) themi.y-; else if(=themi.y&&(themi.x+1)=) themi.x+; else if(=themi.y&&(themi.x-1)=)/*只要控制者在身邊就立即靠上去*/ themi.x-;else l
28、oop: /*這里的方向采取隨機賦值,原則是新的方向不可以和原來的方向相反*/ xxi0=rand()%4+1; if(xxi0=1&&xxi1=2|xxi0=2&&xxi1=1) goto loop; if(xxi0=3&&xxi1=4|xxi0=4&&xxi1=3) goto loop; xxi1=xxi0; if(xxi0=1)/*四個方向*/ themi.x-; if(athemi.xthemi.y=2)/*如果碰墻壁的話就回到原來的地方等待隨機的方向*/ themi.x+; goto loop; else if(xxi0
29、=2) themi.x+; if(athemi.xthemi.y=2) themi.x-; goto loop; else if(xxi0=3) themi.y+; if(athemi.xthemi.y=2) themi.y-; goto loop; else if(xxi0=4) themi.y-; if(athemi.xthemi.y=2) themi.y+; goto loop; /*敵人移動中的判斷*/fun(struct play *them) int i; /*把敵人原來的位置刪除*/setcolor(0); for(i=0;i<5;i+) circle(themi.y*20
30、+100,themi.x*20+100,9);/*根據(jù)控制者的位置來決定敵人的移動方向*/ movethem(them);/*勝利的話*/ win() cleardevice(); settextstyle(0,0,4); while(!kbhit() setcolor(rand()%13+1); outtextxy(200,200,"YOU WIN!"); delay(1000); /*失敗的話*/false1() cleardevice(); settextstyle(0,0,4); while(!kbhit() setcolor(rand()%13+1); outte
31、xtxy(180,200,"GAME OVER!"); delay(1000); loseyes()/*判斷是否失敗*/ int i; for(i=0;i<5;i+) if(themi.x=&&themi.y=) /*如果失敗的話*/false=1; /*主控函數(shù)*/main() int gd=DETECT,gm; int key,i,loop,jump;int choice;initgraph(&gd,&gm,"c:tc");cleardevice(); DrawSnow(); hello(); getchar(); instruction(); scanf("%d",&choice); levelchoose(choic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津舞臺噴泉施工方案
- 建筑施工方案分類
- 調(diào)料品稅務知識培訓課件
- 合同范例 購銷合同
- 合肥搬家合同范例
- 只有金額合同范例
- 買賣他人按揭房合同范例
- 特殊學生支持與幫助方案計劃
- 強化數(shù)據(jù)保護與隱私管理計劃
- 全院綜合評估與自查報告計劃
- 2024年新高考英語最后一卷(新高考專用)(含答案解析)
- 《新模式英語3(第三版)》 課件 Unit 3 Campus Life
- 領(lǐng)域特定代碼優(yōu)化與生成技術(shù)
- 上海市社區(qū)工作者管理辦法
- 信息技術(shù)咨詢服務合同協(xié)議2024年
- 小學語文閱讀素養(yǎng)大賽檢測卷
- 《鐵路職業(yè)道德》課件-7.1《鐵路法》、《勞動法》和《勞動合同法》
- 2024年徐州生物工程職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫各版本
- 2024年二建《(機電)專業(yè)工程管理與實務》考前必刷必練題庫600題(含真題、必會題)
- 降低住院患者PICC導管留置期間并發(fā)癥的發(fā)生率品管圈課件
- 監(jiān)理大綱房屋建筑投標方案(技術(shù)標方案)
評論
0/150
提交評論