




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
內容:本游戲主要實現(xiàn)了人控制鍵盤方向鍵使小人(*)走出迷宮。具有的功能:1)、在游戲菜單里人可以選擇不同難度的游戲進行游戲;2)、在游戲過程中,可以通過鍵盤方向鍵使小人移動,走出迷宮;3)、在游戲過程中,當人碰到墻壁(#)的時候小人過不去;4)、當人順利完成游戲之后,輸出“========youarewin!======”字樣,30秒鐘后自動返回到游戲菜單;5)、在游戲過程中,人可以通過按Esc鍵返回游戲菜單;也可以可以按0直接退出游戲;6)、在游戲菜單里,按0鍵可以退出游戲。 3、具體應用: 1)、人主要同過鍵盤的1,2,3數(shù)字鍵來選擇游戲難度;2)、在游戲中通過Esc鍵來返回菜單;3)、同過0鍵退出游戲。上機環(huán)境操作系統(tǒng):windows7開發(fā)工具:VC6.0函數(shù)調用關系圖mamain()introduce()menu()system("cls");drawmg1();control1();system("cls");drawmg2();control2();system("cls");drawmg3();control3();exit(0);roadcake()roadcake()roadcake()輸入1輸入2輸入3輸入0Enter各函數(shù)功能說明main() 主函數(shù);menu() 游戲菜單;roadcake() 消去小人路徑;introduce() 游戲介紹;system(“cls”) 消屏函數(shù);exit(0) 退出游戲; drawmg1() 畫初級難度迷宮;drawmg2() 畫中級難度迷宮;drawmg3() 畫高級難度迷宮;control1() 控制初級難度游戲;control2() 控制中級難度游戲;control3() 控制高級難度游戲;算法流程圖首先定義三個全局數(shù)組mg1[20][20]、mg2[30][30]、mg3[30][30]用于畫出迷宮的地圖;1表示墻(#),0表示空地();Introduce()函數(shù)里如果按Enter鍵,則調用menu()函數(shù),從鍵盤中輸入相應的提示數(shù)字,進入難度不同的游戲;游戲的執(zhí)行在此只初級難度進行描述,其余的難度與其類似;選了1后調用system(”cls”)進行清屏;drawmg1()函數(shù)進行迷宮的地圖的繪制,for(i=0;i<20;i++) { printf("\t\t\t"); for(j=0;j<20;j++) { ch=mg1[i][j]; switch(ch) { case4:printf("*");break; case0:printf("");break; case1:printf("#");break; } if(num++%20==0) /*每行只能輸出20個字符*/ printf(”\n”);}}之后調用控制函數(shù)control1()進行控制小人移動路徑,在control1()函數(shù)里用do—while()語句進行循環(huán),while(1)進行死循環(huán),再定義四個整型a,b,m,n即:for(n=0;n<30;n++) for(m=0;m<30;m++) if(mg3[n][m]==4) { a=n; /*為后面調用roadcake()實現(xiàn)消除小人路徑進行初始賦值*/ b=m;break; }用switch()語句選擇方向鍵,在調用roadcake()函數(shù)進行消除小人路徑voidroadcake(int*i,int*j){ inttemp; temp=*i; /*進行值交換,即數(shù)組值為0和值為4進行交換 *i=*j; *j=temp;}完成第一個控制之后進行清屏和畫新的游戲狀態(tài)圖,若在游戲進行中要退出游戲,只需按0鍵,調用exit(0)函數(shù)結束;若要返回游戲菜單,按Esc鍵掉用menu()函數(shù)即可,重復以上步驟,直達游戲結束,此時掉用menu()函數(shù)自動返回菜單。程序運行效果圖開始執(zhí)行程序:按Enter鍵后:選擇2后進入中級難度游戲:按鍵盤方向鍵進行游戲,當順利結束后:與游戲菜單相同,選擇不同的級別進行游戲??偨Y本次課設在設計算法和運用語言在一定程度上遇到困難,同時有些以前不知道的函數(shù)和算法,在這次實習中通過查找資料學到了許多;覺得緊緊學好語言是不夠的,得要知道怎樣運用,即算法很重要;參考文獻李春葆曾平喻丹丹《c語言程序設計(第2版)》清華大學出版社2011程序清單#include<stdio.h>#include<conio.h>#include<time.h>#include<stdlib.h>voiddrawmg1(void); /*定義畫迷宮函數(shù)*/voiddrawmg2(void);voiddrawmg3(void);voidcontrol1(void); /*定義控制函數(shù)*/voidcontrol2(void);voidcontrol3(void); voidroadcake(int*i,int*j); /*定義交換函數(shù)*/voidmenu(void); /*定義菜單函數(shù)*/voidintroduce(void); /*定義游戲介紹函數(shù)*/intmg1[20][20]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {4,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1}, {1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1}, {1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1}, {1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,1}, {1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1}, {1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1}, {1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1}, {1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1}, {1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1}, {1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,1}, {1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1}, {1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1}, {1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,3}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},};intmg2[30][30]={{1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1}, {1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,0,1}, {1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1}, {1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,1}, {1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,1,0,1}, {1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,1}, {1,0,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1}, {1,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1}, {1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1}, {1,0,0,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1}, {1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,1}, {1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1}, {1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1}, {1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1}, {1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1}, {1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1}, {1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1}, {1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,1,1,1,1,0,1}, {1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,0,1}, {1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1}, {1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1}, {1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1}, {1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1}, {1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1}, {1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,1,1}, {1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, };intmg3[30][30]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1}, {1,0,1,1,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,0,1}, {1,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1}, {1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,1}, {1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,1,0,1}, {1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,0,0,1,1,0,0,1}, {1,0,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1}, {1,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1}, {1,1,1,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1}, {1,0,0,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1}, {1,0,1,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,1}, {1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1}, {1,1,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1}, {1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1}, {1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1}, {1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1}, {1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1}, {1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,1,0,1,1,1,1,0,1}, {1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,0,0,1}, {1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1}, {1,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1}, {1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1}, {1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1}, {1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1}, {1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,1,1}, {1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,4}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, };introad[20][20];voidmain(){ introduce();}/*-----------------------------------------------------------------------------*//*初級游戲控制函數(shù)*/voidcontrol1(void){ inta,b,m,n; charnum; do /*循環(huán)取得空制鍵*/ { for(n=0;n<20;n++) for(m=0;m<20;m++) if(mg1[n][m]==4) { a=n; b=m;break; } num=getch(); switch(num) { case72:if(mg1[a-1][b]!=1) { roadcake(&mg1[a][b],&mg1[a-1][b]); system("cls"); drawmg1(); break; } case80:if(mg1[a+1][b]!=1) { roadcake(&mg1[a][b],&mg1[a+1][b]); system("cls"); drawmg1(); break; } case75:if(mg1[a][b-1]!=1) { roadcake(&mg1[a][b],&mg1[a][b-1]); system("cls"); drawmg1(); break; } case77:if(mg1[a][b+1]!=1) { roadcake(&mg1[a][b],&mg1[a][b+1]); system("cls"); drawmg1(); break; } case27:system("cls"); menu();break; case48:exit(0); } if(mg1[18][19]==4) {printf("\n\t------------------youarewin!--------------------\n\n\n"); menu(); } } while(1); /*直到出口*/}/*-----------------------------------------------------------------------------*//*中級游戲控制函數(shù)*/voidcontrol2(void){ inta,b,m,n; charnum; do /*循環(huán)取得空制鍵*/ { for(n=0;n<30;n++) for(m=0;m<30;m++) if(mg2[n][m]==4) { a=n; b=m;break; } num=getch(); switch(num) { case72:if(mg2[a-1][b]!=1) { roadcake(&mg2[a][b],&mg2[a-1][b]); system("cls"); drawmg2(); break; } case80:if(mg2[a+1][b]!=1) { roadcake(&mg2[a][b],&mg2[a+1][b]); system("cls"); drawmg2(); break; } case75:if(mg2[a][b-1]!=1) { roadcake(&mg2[a][b],&mg2[a][b-1]); system("cls"); drawmg2(); break; } case77:if(mg2[a][b+1]!=1) { roadcake(&mg2[a][b],&mg2[a][b+1]); system("cls"); drawmg2(); break; } case27:system("cls"); menu();break; case48:exit(0); } if(mg2[29][15]==4) {printf("\n\t------------------youarewin!--------------------\n\n\n"); menu(); } } while(1); /*直到出口*/}/*-----------------------------------------------------------------------------*//*高級游戲控制函數(shù)*/voidcontrol3(void){ inta,b,m,n; charnum; do /*循環(huán)取得空制鍵*/ { for(n=0;n<30;n++) for(m=0;m<30;m++) if(mg3[n][m]==4) { a=n; b=m;break; } num=getch(); switch(num) { case72:if(mg3[a-1][b]!=1) { roadcake(&mg3[a][b],&mg3[a-1][b]); system("cls"); drawmg3(); break; } case80:if(mg3[a+1][b]!=1) { roadcake(&mg3[a][b],&mg3[a+1][b]); system("cls"); drawmg3(); break; } case75:if(mg3[a][b-1]!=1) { roadcake(&mg3[a][b],&mg3[a][b-1]); system("cls"); drawmg3(); break; } case77:if(mg3[a][b+1]!=1) { roadcake(&mg3[a][b],&mg3[a][b+1]); system("cls"); drawmg3(); break; } case27:system("cls"); menu();break; case48:exit(0); } if(mg3[0][15]==4) {printf("\n\t------------------youarewin!--------------------\n\n\n"); menu(); } } while(1); /*直到出口*/}/*--------------------------------------------------------------------------------*//*畫初級謎宮函數(shù)*/voiddrawmg1(void){ inti,j,ch,num=1; for(i=0;i<20;i++) { printf("\t\t\t"); for(j=0;j<20;j++) { ch=mg1[i][j]; switch(ch) { case4:printf("*");break; case0:printf("");break; case1:printf("#");break; } if(num++%20==0) printf("\n"); } }}/*--------------------------------------------------------------------------------*//*畫中級謎宮函數(shù)*/voiddrawmg2(void){ inti,j,ch,num=1; for(i=0;i<30;i++) { printf("\t\t\t"); for(j=0;j<30;j++) { ch=mg2[i][j]; switch(ch) { case4:printf("*");break; case0:printf("");break; case1:printf("#");break; } if(num++%30==0) printf("\n"); } }}/*--------------------------------------------------------------------------------*//*畫高級謎宮函數(shù)*/voiddrawmg3(void){ inti,j,ch,num=1; for(i=0;i<30;i++) { printf("\t\t\t"); for(j=0;j<30;j++) { ch=mg3[i][j]; switch(ch) { case4:printf("*");break; case0:printf("");break; case1:printf("#");break; }
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司采購白酒合同范本
- 家具賒銷合同范本
- 招標代理協(xié)議合同范本
- 農(nóng)田整治合同范本
- 住宅小區(qū)改造補償合同
- 二零二五年度報紙廣告開發(fā)票印刷品廣告效果跟蹤及優(yōu)化合同
- 2025年室內清潔健康電器合作協(xié)議書
- 2025年奧沙利鉑合作協(xié)議書
- 2025年度安全演練人工費用支付與執(zhí)行合同
- 老年大學改造預算協(xié)議樣本
- 七年級數(shù)學下冊 第11章 單元測試卷(蘇科版 2025年春)
- 《恒瑞醫(yī)藥股權激勵實施方案探析綜述》6200字
- 部編人教版語文小學六年級下冊第四單元主講教材解讀(集體備課)
- (2024年)師德師風學習內容教師師德師風培訓內容通用多篇
- 形位公差測量方法
- 車轍防治指導意見(確定稿)
- 一個近乎完美的微信引流招生方案
- 門診特殊病種審批表
- T_CEC 102.1-2016 電動汽車充換電服務信息交換 第1部分_總則_(高清-最新版)
- 國際形式發(fā)票模板
- 山西省會計師事務所服務收費標準(匯編)
評論
0/150
提交評論