2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告書</p><p>  學(xué)生 : </p><p><b>  指導(dǎo)老師: </b></p><p>  課程設(shè)計(jì)名稱: 推箱子小游戲</p><p>  班級(jí): </p><p><b>  設(shè)計(jì)任務(wù)</

2、b></p><p>  介紹推箱子游戲的實(shí)現(xiàn)方法,并逐步介紹C語言圖形編程的方法和技巧。在C語言編寫軟件WIN-TC上,涉及軟中斷、二維數(shù)組、鍵盤操作及圖形化函數(shù)等方法,顯示器中斷寄存器的設(shè)置、二維數(shù)組的定義、鍵盤上鍵值的獲取、圖形方式下光標(biāo)的顯示和定位,以及部分圖形函數(shù)的使用實(shí)現(xiàn)了一個(gè)完整的推箱子游戲界面,界面清晰可見。</p><p><b>  設(shè)計(jì)目的</b

3、></p><p>  訓(xùn)練學(xué)生掌握C的數(shù)據(jù)結(jié)構(gòu)和綜合編程能力和游戲開發(fā)技巧等應(yīng)用能力。</p><p><b>  初步設(shè)想</b></p><p>  推箱子是一款經(jīng)典的益智小游戲,目的是在訓(xùn)練人的邏輯思考能力。在一個(gè)狹小的空間中,要求把木箱從起始位置處推放到指定位置。在空間中有地方限制,稍不小心就會(huì)出現(xiàn)箱子無法移動(dòng)或者通道被堵住的情

4、況,而且箱子只能推不能拉,所以需要玩家巧妙的利用有限的空間和通道,合理的移動(dòng)次序和位置,才能完成任務(wù)。本游戲一共分14關(guān),由易到難,每一關(guān)都隨著關(guān)數(shù)的增加來增加難度,從而達(dá)到吸引游戲玩家的目的。 </p><p><b>  三 功能</b></p><p>  1、菜單功能,玩家通過看目錄按對(duì)應(yīng)的鍵可以進(jìn)入對(duì)應(yīng)的功能菜單,其中1進(jìn)入游戲,2選擇游戲關(guān)卡,3游戲幫助指

5、南 ,4退出游戲。</p><p>  2 游戲功能: 玩家可以通過操縱鍵盤中的上下左右鍵進(jìn)入游戲進(jìn)行各種操作來完成游戲。</p><p>  3 循環(huán)功能:當(dāng)玩家正在游戲的時(shí)候如果某一步走錯(cuò)了,導(dǎo)致游戲無法完成,可以隨時(shí)重新開始游戲來完成關(guān)卡,游戲過程中可以隨時(shí)按Ctrl+V退出游戲。</p><p>  4 順序功能: 當(dāng)玩家完成了某一關(guān)之后,隨著進(jìn)入下一關(guān)門可

6、以按順序進(jìn)入下一關(guān),繼續(xù)開始更有挑戰(zhàn)的關(guān)卡,如果該關(guān)是最后一關(guān),則顯示通關(guān)完成。</p><p><b>  總體設(shè)計(jì)</b></p><p><b>  功能模塊設(shè)計(jì)</b></p><p>  函數(shù)功能描述本程序包括5個(gè)模塊,分別是初始化模塊、畫圖模塊、移動(dòng)箱子模塊、移動(dòng)小人模塊和功能控制模塊。各個(gè)模塊功能的功能描述如

7、下:</p><p> ?。?)初始化模塊。該模塊包括屏幕初始化和游戲第一關(guān)到第最后一關(guān)的初始化。屏幕初始化用于輸出歡迎信息和操作提示,游戲每一關(guān)的初始化是構(gòu)建每一關(guān)的關(guān)卡。</p><p>  (2)畫圖模塊。該模塊主要是被其他模塊調(diào)用,用于畫墻、在空地畫箱子、在目的地畫箱子、畫小人和畫目的地。</p><p>  (3)移動(dòng)箱子模塊。該模塊用于移動(dòng)箱子,包括目的

8、地之間、空地之間和目的地與空地之間箱子的移動(dòng)。</p><p> ?。?)移動(dòng)小人模塊。該模塊是幾個(gè)功能函數(shù)的集合,包括屏幕輸出功能、指定位置狀態(tài)判斷功能和關(guān)卡重置功能。</p><p> ?。?)功能控制模塊。該模塊是幾個(gè)功能函數(shù)的集合,包括屏幕輸出功能、指定位置狀態(tài)判斷功能和關(guān)卡重置功能。</p><p><b>  任務(wù)執(zhí)行流程圖</b>

9、</p><p><b>  數(shù)據(jù)流程圖</b></p><p>  游戲從第一關(guān)開始,按上下左右方向鍵控制小人移動(dòng)來推動(dòng)箱子,可以在游戲中的任何時(shí)候按Esc鍵退出。如果游戲無成功希望,可以按CTRI+V回到當(dāng)前任務(wù)的開始狀態(tài);如果成功完成當(dāng)前關(guān),則進(jìn)入下一關(guān),如果當(dāng)前關(guān)是最后一關(guān),則顯示通關(guān)信息,提示游戲結(jié)束。</p><p><b&g

10、t;  小人移動(dòng)流程圖</b></p><p>  小人移動(dòng)的方向有4個(gè),move()函數(shù)(處理小人移動(dòng)的函數(shù))對(duì)這4個(gè)方向移動(dòng)的處理都一致,只是調(diào)用函數(shù)時(shí)的參數(shù)有所不同。首先判斷小人移動(dòng)的方向,然后根 據(jù)小人所處世的當(dāng)前狀態(tài)、下一步狀態(tài)或者下下一步狀態(tài)進(jìn)行適當(dāng)?shù)奶幚怼?lt;/p><p><b>  數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p&g

11、t;<b>  設(shè)置全局變量</b></p><p>  定義int v[13][17],用于記錄箱子在屏幕中哪個(gè)坐標(biāo)上。其中“0”表示什么都沒有。定義了int num_guan指現(xiàn)在的關(guān)數(shù),int num_xiang;箱子的個(gè)數(shù),int move_num人行走的次數(shù);int push_num人推箱子的次數(shù);定義數(shù)組int M[2]表示人所在的位置; M[0] 是人所在位置的橫坐標(biāo) M[1]

12、是人所在位置的縱坐標(biāo);定義數(shù)組int door[2]表示門所在的坐標(biāo),door[0]是“下一關(guān)門”的橫坐標(biāo),door[1]是“下一關(guān)門”的縱坐標(biāo)。</p><p><b>  3主函數(shù)</b></p><p>  下面讓我們來看看主函數(shù)的操作流程,主函數(shù)首先進(jìn)入游戲目錄,提醒游戲玩家輸入對(duì)應(yīng)的數(shù)字來進(jìn)行的對(duì)應(yīng)的操作,如果玩家輸入1則進(jìn)入游戲第一關(guān),輸入2選擇關(guān)卡進(jìn)入,

13、輸入3顯示游戲幫助菜單,幫助玩家更好的理解這個(gè)游戲的規(guī)則,輸入4退出游戲。進(jìn)入游戲后,首先調(diào)用chushi1()函數(shù)初始化要使用的頁面,之后程序進(jìn)入play()函數(shù),play()函數(shù)中通過if語句通過判斷i的值來初始化不同的關(guān)卡(設(shè)置好關(guān)卡的人,箱子,箱子的目的地,門),接著程序進(jìn)入control函數(shù)通過獲取玩家在鍵盤上的操作來分別對(duì)游戲人物進(jìn)行操作,最后通過wancheng函數(shù)來對(duì)操作進(jìn)行判斷,如果判斷成功的話則進(jìn)入下一關(guān)游戲。反之則

14、失敗。一直通過到最后一個(gè)則通關(guān)成功。</p><p>  四 代碼設(shè)計(jì)(或編程)</p><p> ?、賳蝹€(gè)模塊或函數(shù)處理</p><p>  將整個(gè)系統(tǒng)程序分解為各個(gè)單獨(dú)的模塊,即C的函數(shù),各模塊可單獨(dú)編譯;</p><p><b> ?、谡麄€(gè)程序的聯(lián)調(diào)</b></p><p>  在各個(gè)模塊基

15、本的單獨(dú)編譯通過后,用主函數(shù)將他們集成在一起,實(shí)現(xiàn)調(diào)用,并進(jìn)行輸出數(shù)據(jù)的可靠性、輸入數(shù)據(jù)及系統(tǒng)的容錯(cuò)性測(cè)試。</p><p><b>  五 程序說明書</b></p><p><b>  功能模塊</b></p><p><b>  play()</b></p><p>&l

16、t;b>  control()</b></p><p><b>  Daying()</b></p><p>  Wancheng()</p><p><b>  解析</b></p><p><b>  play()</b></p><p

17、>  play()函數(shù)在這個(gè)程序中的功能主要是按1進(jìn)入游戲系統(tǒng)后自動(dòng)按照順序進(jìn)行游戲和完成每一關(guān)游戲后進(jìn)入下一關(guān)關(guān)卡,其中變量i控制關(guān)卡的關(guān)數(shù),j控制進(jìn)入下一關(guān),首先利用if語句將i從一開始,初始化完成第一關(guān),通過play()函數(shù)中的內(nèi)嵌函數(shù)control()函數(shù)來控制游戲中人和箱子的各種操作,當(dāng)過關(guān)了control()函數(shù)return 0.即j=control()中的j等于0,游戲進(jìn)入下一關(guān)。依次類推,當(dāng)完成14關(guān)之后j=1游

18、戲結(jié)束。</p><p>  void play()</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  for(i=1;i<=20;i++)</p><p><b>  {</b></p><p&g

19、t;  tem=0;system("cls");//清屏</p><p>  if(i==1) chushihua_guan1(); //設(shè)置關(guān)卡1的墻,箱子,人。 門 </p><p>  else if(i==2) chushihua_guan2();</p><p>  else if(i==3) chushihua_guan3

20、();</p><p>  else if(i==4) chushihua_guan4();</p><p>  else if(i==5) chushihua_guan5();</p><p>  else if(i==6) chushihua_guan6();</p><p>  else if(i==7) chushihua_guan7

21、();</p><p>  else if(i==8) chushihua_guan8();</p><p>  else if(i==9) chushihua_guan9();</p><p>  else if(i==10) chushihua_guan10();</p><p>  else if(i==11) chushihua_gu

22、an11();</p><p>  else if(i==12) chushihua_guan12();</p><p>  else if(i==13) chushihua_guan13();</p><p>  else if(i==14) chushihua_guan14();</p><p>  j=control();if(j==1

23、){system("cls");return ;}</p><p><b>  }</b></p><p><b>  }</b></p><p>  2 control()</p><p>  Control()在這個(gè)程序中主要控制游戲中人物和箱子的運(yùn)動(dòng),當(dāng)玩家在鍵盤進(jìn)行各

24、種操作時(shí)系統(tǒng)會(huì)給出不同的反應(yīng)。模塊中定義了command變量,來接收玩家在鍵盤上的各種操作,首先調(diào)用getch()函數(shù)為command賦一個(gè)初值command=(“空字符”)22, 進(jìn)入界面圖表初始化,根據(jù)num_guan的大小來具體初始化對(duì)應(yīng)的關(guān)卡(箱子,人,墻的圖標(biāo)),接著模塊進(jìn)入了“控制階段”,再次通過getch()函數(shù)command獲得一個(gè)字符,當(dāng)command=”H”(也就是↑)時(shí)人進(jìn)行向上前進(jìn)的動(dòng)作,對(duì)應(yīng)的(“P” ”K”

25、”M”)進(jìn)行人的↓、←、→操作,以及人的上下左右推箱子的動(dòng)作,同時(shí)當(dāng)人的前進(jìn)的方向是墻或者雙層箱子的時(shí)候人則不能運(yùn)動(dòng),人推箱子如果箱子的前面是墻或者箱子的話箱子和人都不能運(yùn)動(dòng)。運(yùn)動(dòng)過程中如果玩家輸入ctrl+c時(shí)游戲此關(guān)卡重新開始,同時(shí)在control函數(shù)中調(diào)用一個(gè)win變量來判斷是否完成了游戲,調(diào)用內(nèi)嵌函數(shù)wancheng() 函數(shù),當(dāng)((win=wancheng())==1&&v[door[0]][door[1]]=

26、=ren)時(shí),表示這個(gè)關(guān)卡已經(jīng)完成了,return 0,</p><p>  int control()</p><p><b>  { </b></p><p><b>  int win;</b></p><p><b>  int temm;</b></p>

27、<p>  char command; //存放接收到命令 </p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  command=get

28、ch(); //輸入一個(gè)字符 </p><p>  /*if(command==1)</p><p>  if(command==22) </p><p><b>  {</b></p><p>  if(num_guan==1) {system("cls");chushihua

29、_guan1();}</p><p>  else if(num_guan==2) {system("cls");chushihua_guan2();}</p><p>  else if(num_guan==3) {system("cls");chushihua_guan3();}</p><p>  else if(num

30、_guan==4) {system("cls");chushihua_guan4();}</p><p>  else if(num_guan==5) {system("cls");chushihua_guan5();}</p><p>  else if(num_guan==6) {system("cls");chushihua

31、_guan6();}</p><p>  else if(num_guan==7) {system("cls");chushihua_guan7();}</p><p>  else if(num_guan==8) {system("cls");chushihua_guan8();}</p><p>  else if(num

32、_guan==9) {system("cls");chushihua_guan9();}</p><p>  else if(num_guan==10) {system("cls");chushihua_guan10();}</p><p>  else if(num_guan==11) {system("cls");chushi

33、hua_guan11();}</p><p>  else if(num_guan==12) {system("cls");chushihua_guan12();}</p><p>  else if(num_guan==1113) {system("cls");chushihua_guan13();}</p><p>  e

34、lse if(num_guan==14) {system("cls");chushihua_guan14();}</p><p><b>  }</b></p><p>  if(command==-32) //F11,F12:-123,-122<

35、/p><p><b>  {</b></p><p>  temm=0;command=getch(); </p><p>  if(temm==0&&command=='H' && (v[M[0]-1][M[1]]==xiang||v[M[0]-1][M[1]]==oxiang) &&a

36、mp; v[M[0]-2][M[1]]==jia) //箱子在人的上邊或者 人的上邊的箱子已經(jīng)放好了且人的上面兩行就是箱子的家</p><p>  { v[M[0]-1][M[1]]=ren; //H指的是向上推箱子到家</p><p>  v[M[0]][M[1]]=0;</p><p>  v[M[0]-2][M[1]]=oxiang;</p

37、><p>  M[0]=M[0]-1;move_num=move_num+1;push_num=push_num+1;</p><p>  temm=temm+1;}</p><p>  if(temm==0&&command=='P' && (v[M[0]+1][M[1]]==xiang||v[M[0]+1][M[1]]

38、==oxiang) && v[M[0]+2][M[1]]==jia) </p><p>  { v[M[0]+1][M[1]]=ren;temm=temm+1; //P指向下推箱子到家 </p><p>  v[M[0]][M[1]]=0;</p><p>  v[M[0]+2][M[1]]=oxiang;</p><p

39、>  M[0]=M[0]+1;move_num=move_num+1;push_num=push_num+1;}</p><p>  if(temm==0&&command=='K' && (v[M[0]][M[1]-1]==xiang||v[M[0]][M[1]-1]==oxiang) && v[M[0]][M[1]-2]==jia)<

40、/p><p>  { v[M[0]][M[1]-1]=ren; //K指向左推箱子到家</p><p>  v[M[0]][M[1]]=0;temm=temm+1; </p><p>  v[M[0]][M[1]-2]=oxiang; </p><p>  M[1]=M[1]-1;move_num=move_num+1;push_

41、num=push_num+1;}</p><p>  if(temm==0&&command=='M' && (v[M[0]][M[1]+1]==xiang||v[M[0]][M[1]+1]==oxiang) && v[M[0]][M[1]+2]==jia)</p><p>  { v[M[0]][M[1]+1]=ren;t

42、emm=temm+1; //M指向右推箱子到家 </p><p>  v[M[0]][M[1]]=0;</p><p>  v[M[0]][M[1]+2]=oxiang;</p><p>  M[1]=M[1]+1;move_num=move_num+1;push_num=push_num+1;}//H指人把箱子向上推,不是推到家 </p&g

43、t;<p>  if(temm==0&&command=='H' && (v[M[0]-1][M[1]]==xiang||v[M[0]-1][M[1]]==oxiang) && (v[M[0]-2][M[1]]==0||v[M[0]-2][M[1]]==jia)) </p><p>  { v[M[0]-1][M[1]]=re

44、n;temm=temm+1;v[M[0]][M[1]]=0;v[M[0]-2][M[1]]=xiang;M[0]=M[0]-1;move_num=move_num+1;push_num=push_num+1;}</p><p>  if(temm==0&&command=='H' && (v[M[0]-1][M[1]]==0||v[M[0]-1][M[1]]==ji

45、a||v[M[0]-1][M[1]]==men)) </p><p>  { v[M[0]-1][M[1]]=ren;temm=temm+1;v[M[0]][M[1]]=0;move_num=move_num+1;M[0]=M[0]-1;} //人向上走 </p><p>  if(temm==0&&command=='P' &&

46、; (v[M[0]+1][M[1]]==0||v[M[0]+1][M[1]]==jia||v[M[0]+1][M[1]]==men)) </p><p>  { v[M[0]+1][M[1]]=ren;temm=temm+1; //人的下面為空或者下面為家或者下面為門的時(shí)候 向下走</p><p>  v[M[0]][M[1]]=0;</p><p>  M[

47、0]=M[0]+1;move_num=move_num+1;}</p><p>  if(temm==0&&command=='P' && (v[M[0]+1][M[1]]==xiang||v[M[0]+1][M[1]]==oxiang) && (v[M[0]+2][M[1]]==0||v[M[0]+2][M[1]]==jia)) </p>

48、;<p>  { v[M[0]+1][M[1]]=ren; //人的下面為箱子或者下面已經(jīng)有箱子找到家了 切 下面的下面是空或者下面的下面是家,人把箱子向下推,人往下面走 </p><p>  v[M[0]][M[1]]=0;temm=temm+1;</p><p>  v[M[0]+2][M[1]]=xiang;</p><p>  

49、M[0]=M[0]+1;move_num=move_num+1;push_num=push_num+1;}</p><p>  if(temm==0&&command=='K' && (v[M[0]][M[1]-1]==0||v[M[0]][M[1]-1]==jia||v[M[0]][M[1]-1]==men))</p><p>  { v

50、[M[0]][M[1]-1]=ren;temm=temm+1; //人的左邊為空或者左邊是家或者左邊是門的時(shí)候人可以往左邊走 </p><p>  v[M[0]][M[1]]=0;</p><p>  M[1]=M[1]-1;move_num=move_num+1;}</p><p>  if(temm==0&&command=='

51、K' && (v[M[0]][M[1]-1]==xiang||v[M[0]][M[1]-1]==oxiang) && (v[M[0]][M[1]-2]==0||v[M[0]][M[1]-2]==jia))</p><p>  {v[M[0]][M[1]-1]=ren;temm=temm+1;//人的左邊是箱子或者人的左邊是已經(jīng)找到家的箱子切 人的左邊的左邊是空或者人的

52、左邊的左邊是家的時(shí)候箱子可以往左邊移動(dòng),</p><p>  v[M[0]][M[1]]=0;</p><p>  v[M[0]][M[1]-2]=xiang;</p><p>  M[1]=M[1]-1;move_num=move_num+1;push_num=push_num+1;}</p><p>  if(temm==0&&a

53、mp;command=='M' && (v[M[0]][M[1]+1]==0||v[M[0]][M[1]+1]==jia||v[M[0]][M[1]+1]==men))</p><p>  { v[M[0]][M[1]+1]=ren;temm=temm+1;v[M[0]][M[1]]=0;M[1]=M[1]+1;move_num=move_num+1;} //人的右邊是空的

54、或者人的右邊是家或者人的右邊的門的時(shí)候人可以往右邊走。</p><p>  if(temm==0&&command=='M' && (v[M[0]][M[1]+1]==xiang||v[M[0]][M[1]+1]==oxiang) && (v[M[0]][M[1]+2]==0||v[M[0]][M[1]+2]==jia))</p>&l

55、t;p>  { v[M[0]][M[1]+1]=ren;temm=temm+1;v[M[0]][M[1]]=0;v[M[0]][M[1]+2]=xiang; //人的右邊是箱子或者人的右邊是一個(gè)已經(jīng)找到家的箱子切右邊的右邊是空的或者右邊的右邊是家的時(shí)候可以推箱子 </p><p>  M[1]=M[1]+1;move_num=move_num+1;push_num=push_num+1;}</

56、p><p>  //else if(command==-122 || command==-123) ;</p><p><b>  //else ;</b></p><p><b>  }</b></p><p>  //else if(command==0)</p><p

57、>  //command=getch(); //接收Fn的下一個(gè)字符 //F1~F10:59~68 </p><p>  else if(command>=2&&command<=26){if(command==3)return 1;} else ; //Ctrl+a~z:1~26 當(dāng)為ctrl+c的時(shí)

58、候程序結(jié)束</p><p>  if(win=wancheng()==0) tem=0; </p><p>  system("cls");dayin();</p><p>  if((win=wancheng())==1&&v[door[0]][door[1]]==ren) {Sleep(225);return 0;}}<

59、;/p><p>  return 0; //如果門的坐標(biāo)和人的坐標(biāo)相等的時(shí)候直接退出此語句,進(jìn)入下一個(gè)程序(俗稱下一關(guān) )</p><p><b>  }</b></p><p>  3 Daying()</p><p>  Daying函數(shù)在這個(gè)程序主要在游戲

60、中的功能是畫出游戲中人和箱子和“完成門”家,人的圖標(biāo)和對(duì)游戲中的關(guān)卡和人走的步數(shù)和推箱子的步數(shù)進(jìn)行計(jì)數(shù)數(shù),根據(jù)游戲中玩家的操作隨時(shí)的對(duì)游戲畫面進(jìn)行變換。通過變量i,j來獲得men, qiang, oxiang ,ren, jia, xiang(分別表示完成門、墻、箱子放在家中、人、家、箱子)的坐標(biāo)來找到各個(gè)變量的位置,從而運(yùn)用畫圖函數(shù)畫出對(duì)應(yīng)的圖標(biāo)。</p><p>  void dayin()</p>

61、;<p><b>  {</b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<=12;i++)</p><p>  for(j=0;j<=16;j++)</p><p>  if(fuben[i][j]==jia&&

62、amp;v[i][j]==0) </p><p>  v[i][j]=jia;</p><p>  for(i=0;i<=12;i++)</p><p>  {for(j=0;j<=16;j++)</p><p><b>  {</b></p><p>  if(v[i][j]==q

63、iang){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);printf("█");}</p><p>  else if(v[i][j]==men){SetConsoleTextAttribute(GetStdHandle(STD_OUTP

64、UT_HANDLE),FOREGROUND_BLUE | FOREGROUND_RED);printf("П");}</p><p>  else if(v[i][j]==oxiang){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN);printf(

65、"■");}</p><p>  else if(v[i][j]==ren){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE|FOREGRO

66、UND_RED);printf("囧");}</p><p>  else if(v[i][j]==jia){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_GREEN | FOREGROUND_RED);printf("★");}</p&

67、gt;<p>  else if(v[i][j]==xiang){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);printf("■");}</p><p>  else {SetConsoleTex

68、tAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);printf(" ");}</p><p>  }printf("\n");}</p><p>  SetCon

69、soleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);</p><p>  printf("\n\n 關(guān)卡 %3d 步數(shù) %3d 推箱子次數(shù) %3d\n",num_guan,move_

70、num,push_num);</p><p><b>  }</b></p><p>  4 Wancheng()</p><p>  Wancheng()函數(shù)在這個(gè)程序中的功能主要是判斷游戲是否完成,其中定義了變量n來控制oxiang(進(jìn)入了目標(biāo)位置(家)的箱子)的個(gè)數(shù),用fuben[i][j]==men來定義“完成門”,當(dāng)n等于此關(guān)中箱子

71、的個(gè)數(shù)且v[i][j]=men,即人的位置在“完成門”上的時(shí)候return(1)即玩家完成了這個(gè)一關(guān),如果完成門在oxiang或者人不在完成門上則未完成。</p><p>  int wancheng()</p><p>  {int i,j,n=0;</p><p>  for(i=0;i<=12;i++)for(j=0;j<=16;j++)

72、if(v[i][j]==oxiang) n=n+1; //n是對(duì)進(jìn)入家的箱子計(jì)數(shù)</p><p>  if(n==num_xiang) </p><p><b>  {</b></p><p>  if(tem==0)</p><p>  for(i=0;i<=12;i++) </p>&l

73、t;p>  for(j=0;j<=16;j++) </p><p>  if(fuben[i][j]==men) </p><p>  v[i][j]=men;</p><p>  tem=tem+1;</p><p>  return 1; //正確</p><p><b>  }&l

74、t;/b></p><p>  else if(v[door[0]][door[1]]==xiang) </p><p><b>  {</b></p><p>  v[door[0]][door[1]]=xiang; //錯(cuò)誤</p><p><b>  return 0;</b><

75、;/p><p><b>  }</b></p><p>  else if(v[door[0]][door[1]]!=ren)</p><p><b>  {</b></p><p>  v[door[0]][door[1]]=0; //錯(cuò)誤</p><p>  return

76、0;//程序結(jié)束 </p><p><b>  }</b></p><p>  return 0; //錯(cuò)誤</p><p><b>  }</b></p><p><b>  六 不足之處</b></p><p>  由于技術(shù)等原因,有一些代碼

77、在效率上還有待提高,功能上有所不足。</p><p><b>  七 程序特色</b></p><p>  程序改變了傳統(tǒng)的方式,實(shí)現(xiàn)了非黑框的窗口,并且實(shí)現(xiàn)了游戲人物的繪制以及運(yùn)動(dòng),關(guān)卡的由易到難的逐級(jí)推進(jìn)功能,讓游戲變得更加有趣味有難度,從而吸引玩家玩這個(gè)游戲。</p><p><b>  八 總結(jié) </b><

78、/p><p>  通過這從課程,首先真正的感覺到了自己技術(shù)的提高,也認(rèn)識(shí)到了自己的不足和編寫代碼上的不熟練,在很多很多地方也需要花時(shí)間去練習(xí),去提升。 然后,通過這一次課程設(shè)計(jì)的經(jīng)驗(yàn),我們能夠發(fā)現(xiàn),原來我們以前認(rèn)為的非常難的一些東西在不懈的努力下也是可以完成的,“世上無難事,只怕有心人。” ,只要努力了,都會(huì)有收獲,同時(shí)相信經(jīng)過這一次課程設(shè)計(jì),我們?cè)谝院蟮膶W(xué)習(xí)生活中一定會(huì)有更大的提升,更大的進(jìn)步!</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論