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

下載本文檔

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

文檔簡介

1、<p><b> ?。ㄒ唬?需求分析 </b></p><p><b>  題目:</b></p><p>  32、實(shí)現(xiàn)一個(gè) N*M 的掃雷游戲</p><p><b>  設(shè)計(jì)要求:</b></p><p>  能夠?qū)崿F(xiàn)一個(gè) N*M 的掃雷游戲</p>

2、<p>  a、能夠打開一個(gè)方格(由于做的是靜態(tài)顯示,故在控制臺(tái)上方格用‘—’代替),已打開的方格不能關(guān)閉</p><p>  b、能夠標(biāo)記一個(gè)方格,標(biāo)記方格的含義是對(duì)該方格有雷的預(yù)測(并不表示真的一定有雷)</p><p>  c、能夠給出游戲結(jié)果:輸、贏</p><p>  d、N和M可由玩家自己設(shè)置</p><p><

3、;b>  系統(tǒng)功能需求分析:</b></p><p>  一個(gè)數(shù)字和一個(gè)雷(boom)。你可以打開(open)一個(gè)方格,如果你打開的是 一個(gè)boom,那么就失敗;否則就會(huì)打開一個(gè)數(shù)字,該數(shù)字是位于[0,8]的一個(gè)整數(shù),該數(shù)字表示其所有 鄰居方格所包含的雷數(shù),應(yīng)用該信息可以幫助你掃雷。點(diǎn)擊到了某區(qū)域發(fā)現(xiàn)其周圍沒有雷,那么顯而易見應(yīng)該點(diǎn)開周圍的區(qū)域,拓展空白區(qū)域 </p><p&

4、gt;<b> ?。ǘ└乓O(shè)計(jì)</b></p><p>  由于知識(shí)儲(chǔ)備不足,VC中的MFC應(yīng)用程序又過于復(fù)雜,故退而求其次,不再采用動(dòng)態(tài)顯示和界面圖形化,采用靜態(tài)顯示來實(shí)現(xiàn)掃雷游戲中的主要功能。</p><p>  用鍵盤上的‘1’鍵代替鼠標(biāo)左擊,即打開一個(gè)方格查看其屬性,已打開的方格不能在關(guān)閉;用鍵盤上的‘2’鍵代替鼠標(biāo)右擊,即標(biāo)記一個(gè)方格,標(biāo)記方格的含義是對(duì)該

5、方格有雷的預(yù)測(并不表示真的一定有雷)</p><p>  用鍵盤上的‘↑’‘↓’‘←’‘→’四個(gè)鍵來實(shí)現(xiàn)光標(biāo)在控制臺(tái)上的自由移動(dòng),</p><p>  相當(dāng)于用鼠標(biāo)實(shí)現(xiàn)光標(biāo)在圖形界面的移動(dòng)</p><p>  游戲區(qū)域的高度與寬度及總雷數(shù)可由玩家自己設(shè)定</p><p>  應(yīng)題目要求設(shè)計(jì)了一個(gè)基類:Base和一個(gè)繼承類:Game。<

6、/p><p>  基類Base主要實(shí)現(xiàn)一些基本功能:游戲結(jié)束時(shí)輸出游戲的結(jié)果:輸贏;</p><p>  返回控制臺(tái)上光標(biāo)的位置返回按下鍵時(shí)所對(duì)應(yīng)的按鍵控制符</p><p><b>  基類Base:</b></p><p>  繼承類Game是本程序的主要內(nèi)容,也是實(shí)現(xiàn)掃雷游戲的關(guān)鍵部分。</p><

7、p>  主要實(shí)現(xiàn)的功能:初始化圖形界面,把游戲區(qū)域在控制臺(tái)上顯示出來;利用隨機(jī)函數(shù)進(jìn)行隨機(jī)布雷,以保證玩家每次玩游戲時(shí)雷的分布位置均不同;得到一個(gè)坐標(biāo)位置周圍的雷數(shù),并把數(shù)值返回;在一個(gè)坐標(biāo)點(diǎn)上(x,y)點(diǎn)擊,在該位置上顯示其周圍的雷數(shù)或拓展空白區(qū)域或失?。蝗绻粋€(gè)坐標(biāo)點(diǎn)的周圍沒有雷,則拓展空白區(qū)域,并遞歸拓展;其中saolei()函數(shù)是類Game里的關(guān)鍵函數(shù)體,用來判斷玩家按下了哪個(gè)鍵,并作出相應(yīng)反應(yīng)(上下左右四個(gè)方向的移動(dòng),打

8、開一個(gè)方格,標(biāo)記一個(gè)方格),并判斷游戲的輸與贏</p><p><b>  繼承類Game:</b></p><p><b> ?。ㄈ┰敿?xì)設(shè)計(jì)</b></p><p><b>  核心算法:</b></p><p><b> ?。?)布雷函數(shù):</b>&

9、lt;/p><p>  初始化時(shí)把數(shù)組里的值全部置為0,然后利用srand(),rand()隨機(jī)機(jī)制產(chǎn)生隨機(jī)數(shù),分別對(duì)列和行取模,便產(chǎn)生了雷的隨機(jī)位置。但是布雷前,先要判斷此隨機(jī)位置是否已經(jīng)布上了雷。</p><p>  int Game::initpool(int width,int height,int num)</p><p>  {poolWidth=widt

10、h;</p><p>  poolHeight=height;if(num<0||num>=width*height||width>GAME_MAX_HEIGHT||width<=0||height<=0||height>GAME_MAX_HEIGHT)return 1;</p><p>  //初始是把游戲區(qū)域也即是數(shù)組里的值全都置為0&

11、lt;/p><p>  for(int y=0;y<=height+1;y++)</p><p>  {for(int x=0;x<=width+1;x++)</p><p>  {pool[y][x]=0;}</p><p><b>  }</b></p><p>  //利用偽隨機(jī)函數(shù)

12、進(jìn)行隨機(jī)布雷,以保證每次點(diǎn)擊游戲時(shí)雷的分布位置不同</p><p>  srand(time(NULL));</p><p>  while(num!=0){</p><p>  int x=rand()%width+1;</p><p>  int y=rand()%height+1;</p><p>  if(po

13、ol[y][x]==0){</p><p>  pool[y][x]=GMARK_BOOM;</p><p>  num--;//num為設(shè)置的總雷數(shù)}</p><p><b>  }</b></p><p><b>  //初始化光標(biāo)位置</b></p><p>  cur

14、X=1;curY=1;</p><p>  MoveCursor();</p><p><b>  return 0;</b></p><p><b>  }</b></p><p> ?。?)打開方格,查看方格的屬性</p><p>  //在該位置上顯示其周圍的雷數(shù)或拓展

15、空白區(qū)域或失敗</p><p>  int Game::tryopen(int x,int y){</p><p><b>  int m=0;</b></p><p>  if(pool[y][x] & GMARK_BOOM)m=-1;</p><p><b>  else{</b><

16、;/p><p>  int count=shownum(x,y);</p><p>  if(count==0)tuozhan(x,y);//拓展空白區(qū)域</p><p>  else pool[y][x]=count;}</p><p>  return m;}</p><p> ?。?)獲得周圍雷的數(shù)目</p&

17、gt;<p>  掃描其周圍的所有相鄰方格,記錄雷數(shù),并把值返回;掃描前要選擇合理的起始點(diǎn)</p><p>  int Game::shownum(int x,int y){</p><p>  int count=0;</p><p>  for(int Y=-1;Y<=1;Y++)</p><p>  for(int

18、X=-1;X<=1;X++){</p><p>  if(pool[y+Y][x+X]&GMARK_BOOM)</p><p>  count++;}</p><p>  return count; }</p><p><b>  (4)展拓空白區(qū)域</b></p><p>  展

19、拓原因:當(dāng)玩家點(diǎn)擊的方塊周圍無雷時(shí),此方塊會(huì)被繪為空白,此時(shí)沒有必要讓玩家將其周圍一一點(diǎn)開,應(yīng)直接打開展拓條件:周圍雷數(shù)為零</p><p>  函數(shù)int tuozhan(intx,inty)</p><p>  參數(shù):x,y所點(diǎn)擊的方塊位置</p><p><b>  算法:遞歸</b></p><p>  遞歸結(jié)束

20、條件:某一個(gè)方塊不需要拓展就是因?yàn)槠渲車睦讛?shù)不是零</p><p>  int Game::tuozhan(int x,int y){</p><p>  if((x>0&&x<=poolWidth)&&(y>0&&y<=poolHeight)&&(pool[y][x]==0)){int

21、 count=shownum(x,y);</p><p>  if(count==0){</p><p>  pool[y][x]=GMARK_EMPTY;</p><p>  for(int Y=-1;Y<=1;Y++)</p><p>  for(int X=-1;X<=1;X++)</p><p> 

22、 {tuozhan(x+X,y+Y);}</p><p><b>  }</b></p><p>  else pool[y][x]=count;}</p><p>  return 0;}</p><p> ?。?)在控制臺(tái)上把掃雷區(qū)域顯示出來</p><p>  在還未按鍵時(shí),調(diào)用huatu(

23、)函數(shù)把游戲界面在控制臺(tái)上顯示出來,即全部顯示為方格。以后每按鍵一次。刷新一次界面</p><p>  int Game::huatu(int n=0)</p><p>  {for(int y=1;y<=poolHeight;y++)</p><p>  {Base::GotoXY(1,y);</p><p>  for(int x=

24、1;x<=poolWidth;x++)</p><p>  {if(pool[y][x]==0)</p><p>  putchar('.');</p><p>  else if(pool[y][x]==GMARK_EMPTY)</p><p>  putchar(' ');</p>&l

25、t;p>  else if(pool[y][x]>0 && pool[y][x]<=8)</p><p>  putchar('0'+pool[y][x]);</p><p>  else if(n==0 && (pool[y][x]& GMARK_MARK) )</p><p>  putc

26、har('#');</p><p>  else if(pool[y][x]& GMARK_BOOM)</p><p>  {if(n!=0)putchar('*');</p><p>  elseputchar('.');}</p><p><b>  }</b>

27、;</p><p><b>  }</b></p><p>  return 0;}</p><p><b> ?。?)判斷是否勝利</b></p><p>  判斷游戲是否勝利的條件在saolei()函數(shù)體內(nèi),在主函數(shù)里調(diào)用saolei()進(jìn)行循環(huán),直到戲贏了或輸了才退出循環(huán),并在控制臺(tái)上

28、輸出結(jié)果;游戲贏了返回1,按下ESC鍵退出游戲返回-1,記為輸,掃到雷也是返回-1</p><p>  判斷是否贏了游戲:按下鍵‘1’后,對(duì)整個(gè)游戲區(qū)域進(jìn)行檢測,如果檢測不到值為0的方格,即所有的雷已被掃出,則返回1,游戲勝利;按下ESC鍵退出游戲和掃到雷均為輸,返回-1</p><p>  if(Key == KEY_1 )//判斷是否贏了游戲</p><p> 

29、 { int y=1;</p><p>  for(;y<=poolHeight;++y)</p><p>  { int x=1;</p><p>  for(;x<=poolWidth; ++x)</p><p>  {if(pool[y][x]==0)break;</p><p><b> 

30、 }</b></p><p>  if(x<=poolWidth) break; }</p><p>  if(! (y<=poolHeight))</p><p><b>  { m = 1;</b></p><p><b>  }</b></p><p

31、><b>  }</b></p><p> ?。ㄋ模┱{(diào)試分析及測試</p><p> ?。?)由玩家設(shè)置游戲區(qū)域的高度與寬度,并設(shè)置總雷數(shù)</p><p>  按下回車鍵后界面如下:</p><p>  按下鍵‘1’開始掃雷,掃雷過程部分界面如下:</p><p><b>  ……

32、……</b></p><p>  游戲輸時(shí)顯示的結(jié)果:</p><p> ?。?)直接按下ESC鍵時(shí)輸?shù)粲螒颍?lt;/p><p>  然后按下回車鍵后,直接按下ESC鍵,結(jié)果如下:</p><p> ?。?)為了使快速贏得游戲,減少雷的數(shù)目:</p><p>  游戲運(yùn)行過程部分界面如下:</p>

33、<p>  按下鍵‘2’對(duì)懷疑有雷的區(qū)域進(jìn)行標(biāo)記</p><p>  游戲勝利時(shí)顯示的界面:</p><p><b> ?。ㄎ澹┰闯绦?lt;/b></p><p><b>  附錄源程序:</b></p><p>  #include<iostream></p>

34、<p>  #include<iostream.h></p><p>  #include<ctime>//包含偽隨機(jī)數(shù)發(fā)生函數(shù)</p><p>  #include<windows.h>//包含返回一個(gè)字符在控制臺(tái)屏幕上坐標(biāo)的文件</p><p>  #include<conio.h>//包含getch()

35、庫函數(shù):從控制臺(tái)讀取一個(gè)字符,但不顯示在屏幕上</p><p>  //#define 定義的一些宏變量</p><p>  //鍵盤上上、下、左、右四個(gè)鍵及一些按鍵對(duì)應(yīng)的ASCII編碼</p><p>  #define KEY_UP 0xE048 </p><p>  #define KEY_DOWN 0xE050</p&

36、gt;<p>  #define KEY_LEFT 0xE04B</p><p>  #define KEY_RIGHT 0xE04D</p><p>  #define KEY_ESC 0x001B</p><p>  #define KEY_1 '1'</p><p>  #define KEY

37、_2 '2'</p><p>  //設(shè)置游戲區(qū)域的最大長度與高度</p><p>  #define GAME_MAX_WIDTH 100</p><p>  #define GAME_MAX_HEIGHT 100</p><p>  //游戲初始時(shí)在控制臺(tái)上輸出的游戲提示</p><p>

38、  #define GAMETITLE "ArrowKey:MoveCursor KEY1:Open Key2:Mark"</p><p>  //當(dāng)游戲結(jié)束時(shí)輸出的字符</p><p>  #define GAMEWIN "Congratulations! You Win! Thank you for playing!\n"<

39、;/p><p>  #define GAMEOVER "Sorry,you lose! thank you for playing!\n "</p><p>  #define GAMEEND "Press ESC to exit\n"</p><p><b>  //基類</b></p>

40、<p>  // Base class</p><p>  class Base{ </p><p><b>  public:</b></p><p>  static int Output(const char*);</p><p>  static int GotoXY(int, int); </

41、p><p>  static int GetKey(); </p><p><b>  };</b></p><p>  int Base::GetKey()//等待按下鍵,并返回所對(duì)應(yīng)的按鍵控制符</p><p>  { int nkey=getch(),nk=0;</p><p&g

42、t;  if(nkey>=128||nkey==0)nk=getch();//等待你按下任意鍵后,把該鍵字符所對(duì)應(yīng)的ASCII符付給nk后,在執(zhí)行下面語句</p><p>  return nk>0?nkey*256+nk:nkey;</p><p><b>  } </b></p><p>  int Base::GotoXY

43、(int x, int y)//取得控制臺(tái)上光標(biāo)的坐標(biāo)位置并返回</p><p><b>  {</b></p><p><b>  COORD cd;</b></p><p>  cd.X = x;cd.Y = y;</p><p>  return SetConsoleCursorPositio

44、n(GetStdHandle(STD_OUTPUT_HANDLE),cd);</p><p><b>  }</b></p><p>  int Base::Output(const char* pstr)//在當(dāng)前位置上輸出一串字符</p><p><b>  {</b></p><p>  fo

45、r(;*pstr;pstr++)putchar(*pstr);//函數(shù)向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)變量的字符形式</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  //繼承</b></p><p>  cl

46、ass Game:public Base</p><p><b>  { </b></p><p><b>  private:</b></p><p>  int curX,curY;</p><p>  int poolWidth,poolHeight;//雷區(qū)間的總高度與寬度,相當(dāng)與hei

47、ght</p><p>  int pool[GAME_MAX_HEIGHT+2][GAME_MAX_WIDTH+2];</p><p><b>  public:</b></p><p>  Game():curX(0),curY(0){poolWidth=poolHeight=0;}</p><p>  int in

48、itpool(int,int,int);//初始化游戲區(qū)域,設(shè)置游戲區(qū)域的高度與寬度,并設(shè)置總雷數(shù)</p><p>  int MoveCursor(){return Base::GotoXY(curX,curY);}</p><p>  int huatu(int);//在控制臺(tái)上把掃雷區(qū)域顯示出來</p><p>  int shownum(int,int);/

49、/得到一個(gè)坐標(biāo)位置周圍的雷數(shù),并把數(shù)值返回</p><p>  int tryopen(int,int);//在一個(gè)坐標(biāo)點(diǎn)上(x,y)點(diǎn)擊,在該位置上顯示其周圍的雷數(shù)或拓展空白區(qū)域或失敗</p><p>  int saolei(); </p><p><b>  private:</b></p><

50、;p>  int tuozhan(int, int);//如果一個(gè)坐標(biāo)點(diǎn)的周圍沒有雷,則拓展空白區(qū)域,并遞歸拓展 </p><p><b>  private:</b></p><p>  const static int GMARK_BOOM;</p><p>  const static int GMARK_EMPTY;<

51、/p><p>  const static int GMARK_MARK;</p><p><b>  };</b></p><p>  const int Game::GMARK_BOOM = 0x10; //*所對(duì)應(yīng)的ASCII編碼 ,用*表示地雷 </p><p>  const int Game::GMARK_

52、EMPTY= 0x100;//空白所對(duì)應(yīng)的ASCII編碼</p><p>  const int Game::GMARK_MARK = 0x200;//#所對(duì)應(yīng)的ASCII編碼,用#表示作標(biāo)記</p><p>  int Game::initpool(int width,int height,int num)</p><p>  {poolWidth=widt

53、h;</p><p>  poolHeight=height;if(num<0||num>=width*height||width>GAME_MAX_HEIGHT||width<=0||height<=0||height>GAME_MAX_HEIGHT)return 1;</p><p>  //初始是把游戲區(qū)域也即是數(shù)組里的值全都置為0&

54、lt;/p><p>  for(int y=0;y<=height+1;y++)</p><p><b>  {</b></p><p>  for(int x=0;x<=width+1;x++)</p><p><b>  {</b></p><p>  pool[

55、y][x]=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //利用偽隨機(jī)函數(shù)進(jìn)行隨機(jī)布雷,以保證每次點(diǎn)擊游戲時(shí)雷的分布位置不同</p><p>  srand(time(NULL));</p><p>  while

56、(num!=0){</p><p>  int x=rand()%width+1;</p><p>  int y=rand()%height+1;</p><p>  if(pool[y][x]==0){</p><p>  pool[y][x]=GMARK_BOOM;</p><p>  num--;//num為設(shè)

57、置的總雷數(shù)}</p><p><b>  }</b></p><p><b>  //初始化光標(biāo)位置</b></p><p>  curX=1;curY=1;</p><p>  MoveCursor();</p><p><b>  return 0;</b

58、></p><p><b>  }</b></p><p>  //在控制臺(tái)上把掃雷區(qū)域顯示出來</p><p>  int Game::huatu(int n=0)</p><p><b>  {</b></p><p>  for(int y=1;y<=poo

59、lHeight;y++)</p><p><b>  {</b></p><p>  Base::GotoXY(1,y);</p><p>  for(int x=1;x<=poolWidth;x++)</p><p><b>  {</b></p><p>  if(

60、pool[y][x]==0)</p><p>  putchar('.');</p><p>  else if(pool[y][x]==GMARK_EMPTY)</p><p>  putchar(' ');</p><p>  else if(pool[y][x]>0 && pool[

61、y][x]<=8)</p><p>  putchar('0'+pool[y][x]);</p><p>  else if(n==0 && (pool[y][x]& GMARK_MARK) )</p><p>  putchar('#');</p><p>  else if(p

62、ool[y][x]& GMARK_BOOM)</p><p><b>  {</b></p><p>  if(n!=0)putchar('*');</p><p><b>  else</b></p><p>  putchar('.');</p>

63、;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b>&l

64、t;/p><p>  //得到一個(gè)坐標(biāo)位置周圍的雷數(shù),并把數(shù)值返回</p><p>  int Game::shownum(int x,int y){</p><p>  int count=0;</p><p>  for(int Y=-1;Y<=1;Y++)</p><p>  for(int X=-1;X<

65、;=1;X++){</p><p>  if(pool[y+Y][x+X]&GMARK_BOOM)</p><p>  count++;}</p><p>  return count;</p><p><b>  }</b></p><p>  //在一個(gè)坐標(biāo)點(diǎn)上(x,y)點(diǎn)擊,在該位

66、置上顯示其周圍的雷數(shù)或拓展空白區(qū)域或失敗</p><p>  int Game::tryopen(int x,int y){</p><p><b>  int m=0;</b></p><p>  if(pool[y][x] & GMARK_BOOM)m=-1;</p><p><b>  else{

67、</b></p><p>  int count=shownum(x,y);</p><p>  if(count==0)tuozhan(x,y);//拓展空白區(qū)域</p><p>  else pool[y][x]=count;</p><p><b>  }</b></p><p>

68、;<b>  return m;</b></p><p><b>  }</b></p><p>  //如果一個(gè)坐標(biāo)點(diǎn)的周圍沒有雷,則拓展空白區(qū)域,并遞歸拓展</p><p>  int Game::tuozhan(int x,int y){</p><p>  if((x>0&&a

69、mp;x<=poolWidth)&&(y>0&&y<=poolHeight)&&(pool[y][x]==0)){</p><p>  int count=shownum(x,y);</p><p>  if(count==0){</p><p>  pool[y][x]=GMARK_EMPT

70、Y;</p><p>  for(int Y=-1;Y<=1;Y++)</p><p>  for(int X=-1;X<=1;X++)</p><p>  {tuozhan(x+X,y+Y);}</p><p><b>  }</b></p><p>  else pool[y][x

71、]=count;</p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  } </b></p><p>  int Game::saolei()//游戲贏了返回1,按下ESC鍵退出游戲返回-1,記為輸,掃到雷

72、也是返回-1</p><p><b>  {</b></p><p>  int Key = Base::GetKey();</p><p>  int m = 0, nArrow = 0;</p><p>  switch (Key)</p><p><b>  {</b>

73、</p><p>  case KEY_UP:</p><p><b>  {</b></p><p>  if(curY>1)curY--;</p><p><b>  nArrow=1;</b></p><p><b>  }break;</b>

74、;</p><p>  case KEY_DOWN:</p><p>  { if(curY<poolHeight)curY++;</p><p><b>  nArrow=1;</b></p><p><b>  }break;</b></p><p>  case

75、 KEY_LEFT:</p><p>  { if(curX>1)curX--;</p><p><b>  nArrow=1;</b></p><p><b>  }break;</b></p><p>  case KEY_RIGHT:</p><p><

76、b>  {</b></p><p>  if(curX<poolWidth)curX++;</p><p><b>  nArrow=1;</b></p><p><b>  }break;</b></p><p>  case KEY_1:</p><p

77、><b>  {</b></p><p>  m = tryopen(curX, curY);</p><p><b>  }break;</b></p><p>  case KEY_2:</p><p><b>  {</b></p><p>

78、  if((pool[curY][curX]</p><p>  & ~(GMARK_MARK|GMARK_BOOM))==0)</p><p><b>  {</b></p><p>  pool[curY][curX] ^= GMARK_MARK;</p><p><b>  }</b>

79、</p><p><b>  }break;</b></p><p>  case KEY_ESC:</p><p><b>  {</b></p><p><b>  m =-1;</b></p><p><b>  }break;</

80、b></p><p><b>  }</b></p><p>  if(Key == KEY_1 )//判斷是否贏了游戲</p><p><b>  {</b></p><p><b>  int y=1;</b></p><p>  for(;y

81、<=poolHeight;++y)</p><p><b>  {</b></p><p><b>  int x=1;</b></p><p>  for(;x<=poolWidth; ++x)</p><p><b>  {</b></p><

82、;p>  if(pool[y][x]==0)break;</p><p><b>  }</b></p><p>  if(x<=poolWidth) break;</p><p><b>  }</b></p><p>  if(! (y<=poolHeight))</p&

83、gt;<p><b>  {</b></p><p><b>  m = 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(nArrow==0)</p>&l

84、t;p><b>  {</b></p><p>  huatu();////如果按下了key_1,key_2鍵,則顯示掃雷結(jié)果</p><p><b>  }</b></p><p>  MoveCursor();</p><p><b>  return m;</b>&

85、lt;/p><p><b>  } </b></p><p>  void main(){</p><p>  int x,y,b;//定義掃雷區(qū)域的高與寬,并設(shè)置游戲中得總雷數(shù)</p><p>  cout<<"寬度:";</p><p>  cin>>x

86、;</p><p>  cout<<"高度:";</p><p>  cin>>y;</p><p>  cout<<"總雷數(shù):";</p><p><b>  cin>>b;</b></p><

87、p><b>  int n;</b></p><p>  Game A;//定義類對(duì)象</p><p>  Base::GotoXY(0,0);</p><p>  Base::Output(GAMETITLE);</p><p>  A.initpool(x,y,b);</p><p> 

88、 A.huatu();</p><p>  A.MoveCursor();</p><p>  while((n=A.saolei())==0)</p><p><b>  ;//掃雷游戲進(jìn)行</b></p><p>  //掃雷游戲結(jié)束時(shí)在控制臺(tái)輸出的結(jié)果</p><p>  A.huatu(1

89、);//無論游戲成功與失敗,均在屏幕上顯示所有雷的位置</p><p>  Base::Output("\n");</p><p><b>  if(n==1)</b></p><p>  Base::Output(GAMEWIN);</p><p><b>  else</b&

90、gt;</p><p><b>  {</b></p><p>  Base::Output(GAMEOVER);</p><p><b>  }</b></p><p>  Base::Output(GAMEEND);</p><p>  while(Base::GetKe

溫馨提示

  • 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)論