這次是寫乙個掃雷的小遊戲,可實現周圍沒雷時展開和第一次排雷不被炸死(防止歐皇直接暴斃!)。
首先我們先梳理**思路:
1、既然要展示和布雷,所以我們需要2個二維陣列,乙個用來展示給觀眾,乙個顯示雷利於我們程式設計,我們將雷陣列初始化為 0 ,將展示的陣列初始化為 * ,保持神秘~
2、我們需要將雷布置到雷陣列中去,當然是隨機布置;
3、我們還需要乙個安全函式,就是當第一次排雷的時候不被炸死;(就是如果第一次排的是雷,就將此位置的雷轉移)
4、排雷的過程,包括了如何展開,還有表明旁邊有幾顆雷;
1、初始化陣列(mine和show),而且為了邊上的座標也能排雷,所以需要建的陣列要比棋盤多兩行兩列。然後就是初始化陣列(mine初始化為字元0,show初始化為 *)
void
initboard
(char board[rows]
[cols]
,int rows,
int cols,
char set)
}}
2、列印陣列,當然要都列印出來以便我們測試(為了排雷方便,我們給陣列加上了序號)void
displayboard
(char board[rows]
[cols]
,int row,
int col)
printf
("\n");
for(i =
1; i <= row; i++
)printf
("\n");
}printf
("----------------------------------\n");
}
3、將雷布置到 mine陣列中去,這裡我們需要用到隨機數,我們用的是rand()這個函式來產生隨機數,當然範圍要控制在陣列範圍中void
setmine
(char mine[rows]
[cols]
,int row,
int col)
}}
4、安全函式,這個函式的作用是保證我們第一次排雷不被炸死…void
safemine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
ret--;}
}openmine
(mine, show, row, col,x,y)
;displayboard
(show, row, col)
;}
void
findmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
else}}
else}if
(mywin
(show, row, col)
== easy_count)
}void
openmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col,
int x,
int y)
else
}
6、其中有乙個getmine函式是用來統計周圍有多少雷,這個函式寫的很巧妙,這也是我們為什麼非要設計0和1作為雷陣列int
getmine
(char mine[rows]
[cols]
,int x,
int y)
總結:這個遊戲總體來說不是很難,難點就在於展開的那裡,是用遞迴來進行完成的,總體設計和三子棋的介面一樣,我們需要注意的就是雷的布置和雷的統計還有雷的展開。 C語言版掃雷
用c語言實現掃雷,首先應該有基本的思路,建立兩個相同大小的陣列,乙個用於布雷 初始化為全0,布雷時將雷置為1 另乙個給使用者展示 初始化為星號,使用者輸入座標後統計周圍雷的分布並列印雷的個數 由於需要統計每個座標周圍類的個數,所以將陣列建立大一圈,以方便統計。若輸了,列印出雷陣告訴玩家雷的分布。具體...
掃雷遊戲初級版(C語言)
主要思路 先開始設定兩個陣列,乙個放置雷的資訊,乙個是玩家玩遊戲時顯示的棋盤 對兩個陣列進行初始化 布置雷的資訊,將雷的資訊布置在第乙個陣列中 列印棋盤,此時只需要列印玩家玩遊戲的棋盤就可以 在列印出來的棋盤輸入座標資訊掃雷,輸入的座標周圍有雷的話,會顯示相應的數字 1 主函式 define crt...
C語言版簡單掃雷遊戲
我們在設計的時候,首先將其分為三個部分,分別為標頭檔案game.h遊戲介面及主要實現的功能函式部分test.c,還有就是最重要的遊戲實現部分game.c。我們通過game.h將所有用到的標頭檔案引用進去,目的是更加直觀的讓讀者看懂我們的結構,另外我們思路也會通暢一些。include include ...