掃雷程序的實現(xiàn)

掃雷程序的實現(xiàn)

ID:36630089

大小:368.47 KB

頁數(shù):8頁

時間:2019-05-13

掃雷程序的實現(xiàn)_第1頁
掃雷程序的實現(xiàn)_第2頁
掃雷程序的實現(xiàn)_第3頁
掃雷程序的實現(xiàn)_第4頁
掃雷程序的實現(xiàn)_第5頁
資源描述:

《掃雷程序的實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、掃雷程序的實現(xiàn)2014年12月22日15:27一直說寫個幾百行的小項目,于是我寫了一個控制臺的掃雷,沒有想到精簡完了代碼才200行左右,不過考慮到這是我精簡過后的,濃縮才是精華嘛,我就發(fā)出來大家一起學(xué)習(xí)啦,看到程序跑起來能玩,感覺還是蠻有成就感的~哈哈掃雷應(yīng)該屬于一款大眾游戲,從我初中使用計算機開始,它就被集成到了windows系統(tǒng)中,雖然他是這么經(jīng)典,我還是要介紹一下他的玩法,然后再考慮在控制臺中怎么實現(xiàn)它。(掃雷界面如圖1)1游戲的主界面,是一個一個小方格,在小方格上單擊左鍵,可以翻開小方格看看后面

2、有什么。2在這些小方格的背后隱藏著雷,如果不幸點中了雷,那么就GameOver了。2如果點中的不是一個雷,那么就是一塊空地,這個時候會出現(xiàn)兩種情況:1)用鼠標點中的空地周圍八個點內(nèi)有雷,那么就顯示雷的個數(shù)分區(qū)游戲的第1頁2)用鼠標點中的空地周圍沒有雷,這個時候就將周圍的空地全部顯示出來,遇到該顯示數(shù)字的空地,就將數(shù)字顯示出來。(仔細觀察你會發(fā)現(xiàn),數(shù)字會將空地圍起來,這是一句廢話,但是也值得想一想這是為什么)3在小方格上,點擊鼠標的右鍵,可以將一個空地標記為雷,當(dāng)然這個功能只是為了方便你記憶你之前確定是雷

3、的地方。(還有左右鍵都點,和點擊右鍵出現(xiàn)?標記,這里就不談啦)4當(dāng)空地上剩余的格子數(shù)和雷的個數(shù)一樣多,那么這個時候就應(yīng)該算是勝利啦。OK~游戲流程說完了,這個時候該談?wù)勅绾螌崿F(xiàn)了。1首先需要一張地圖,一般情況下我們都可以用一個二維數(shù)組表示一個地圖,每一個元素代表著掃雷中的一個小方格。相應(yīng)元素存儲0,那么地圖上的這個位置就是空地,相應(yīng)元素存儲1,那么就代表這個位置就一顆雷。2在控制臺上依照二維數(shù)組長度和寬度,打印相應(yīng)的小方塊。3然后就用鼠標點擊那些小方塊,對于控制臺來講,在黑框框的區(qū)域中是有坐標的,可以使

4、用一些函數(shù)捕獲到你點擊了屏幕的哪一個坐標。4對于控制臺來說,打印一個字符,有的字符橫向占一個位置比如普通的字母數(shù)字,有的字符橫向占兩個位置比如一些圖形字符:①②③■◆等等,這點在控制臺編程的時候要注意。5當(dāng)點擊屏幕的時候,獲取到點擊的坐標后,去二維數(shù)組中查看相應(yīng)的位置是雷還是空地,從而做相應(yīng)的處理。1)假如點擊到了雷,那么就控制游戲結(jié)束2)假如點擊到了空地有兩種情況1)點擊的空地周圍有雷,那么就將雷的個數(shù)顯示出來2)假如點擊的空地周圍沒有雷,那么就使用遞歸的方法去探測周圍的點,探測出與其相連的所有周圍有

5、雷的點。這個是我實現(xiàn)的效果:分區(qū)游戲的第2頁下面就是代碼啦://saolei.cpp:定義控制臺應(yīng)用程序的入口點。//#include"stdafx.h"#include#include#include#defineBoom10inta[10][10]={0};COORDTempPos[100]={0};intnSign=0;/************************************函數(shù)名:WriteWchar函數(shù)作用:在控制臺相

6、應(yīng)的坐標上顯示一串字符返回值:void參數(shù):intx橫坐標參數(shù):inty縱坐標參數(shù):charszString[]要顯示的字符串說明:************************************/voidWriteWchar(intx,inty,charszString[]){HANDLEhOut=GetStdHandle(STD_OUTPUT_HANDLE);COORDpos={x*2,y};SetConsoleCursorPosition(hOut,pos);printf("%s",szS

7、tring);}/************************************函數(shù)名:DrawNumber函數(shù)作用:在相應(yīng)的坐標上,根據(jù)傳入的數(shù)字,打印相應(yīng)的數(shù)字字符返回值:void參數(shù):COORDpos要打印的位置參數(shù):intnNumber要打印的數(shù)字說明:************************************/voidDrawNumber(COORDpos,intnNumber){switch(nNumber){case1:WriteWchar(pos.X,pos.Y,

8、"①");break;case2:WriteWchar(pos.X,pos.Y,"②");分區(qū)游戲的第3頁WriteWchar(pos.X,pos.Y,"②");break;case3:WriteWchar(pos.X,pos.Y,"③");break;case4:WriteWchar(pos.X,pos.Y,"④");break;case5:WriteWchar(pos.X,pos.Y,"⑤");break;case6:WriteWcha

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

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

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