一、主體函式的設計:
設計遊戲選單,通過選擇進入或者退出遊戲
int
main()
二、遊戲選單的編寫
void
menu()
三、對掃雷遊戲函式game()的整體設計思路:
3.1棋盤的顯示:掃雷顯示介面和統計介面需要分開統計,因此選擇兩個二維陣列作為棋盤;棋盤大小設計為10x10,但是如圖黑色格仔所示,在一些邊角落的棋子會導致後期統計雷的個數比較複雜,因此選擇12x12的棋盤,但是只用其中10x10的格仔,其餘的雷區統計時將其設計為『0』;
標頭檔案中定義的一些變數解釋;
#define row 12
#define line 12
#define num 20
`其中row代表行數,line代表列數,num代表雷的個數``
定義乙個顯示陣列,並將其全部內容初始化為『#』;
char showboard[row]
[line]
;memset
(showboard,
'#',
sizeof
(showboard));
//將所有棋盤的內容初始化為#;
設計棋盤顯示函式showboard();
static
void
showboard
(char showboard[
][line]
,int row,
int line)
printf
("\n--------------------------------------------\n");
for(
int i =
1; i < line-
1; i++
)printf
("\n-------------------------------------------\n");
}}
顯示效果如圖:
3.2設計棋盤中的『』雷『』:
定義乙個統計陣列來放在後台統計以及生成雷,陣列的大小為12x12,設定雷區時使其分布在10x10內,外圍的則初始化為『0』,因此統計邊角落的落子處周圍的雷數就很方便了;
```c
char showmine[row]
[line]
;memset
(showmine,
'0',
sizeof
(showmine));
//將雷區所有內容初始化為0;
srand((
unsigned
)time
(null))
;//隨機數種子,後期雷區的分布座標;
setmine
(showmine, row, line)
;//設定雷區
``static
void
setmine
(char showmine[
][line]
,int row,
int line)
}}
3.3當輸入掃雷座標時,座標處為雷則遊戲結束,如果不為雷,則需要乙個統計函式,統計周圍的雷數顯示出來
static
char
getmine
(char showmine[
][line]
,int row,
int line,
int x,
int y)
else
if(showboard[x]
[y]!=
'#')
//被排除了
else
if(showmine[x]
[y]!=
'1')
//安全,沒有踩到雷,將周圍雷數顯示出來
else
if(showmine[x]
[y]==
'1')
//踩到雷了
count--;}
while
(count);if
(count !=0)
else
printf
("恭喜你,成功通關"
);
最終效果如下
C語言小遊戲 掃雷
1.這個小遊戲由兩個原始檔,乙個標頭檔案分工合作完成。test.c game.c game.h 2.確定基本框架,在test.c中寫主函式以及遊戲所需的基本框架 例如 menum switch 3.先確定這個遊戲需要的函式功能,在game.h中進行函式宣告,game.c中進行函式的定義,test.c...
C語言 掃雷小遊戲
第一次下子,不炸死 座標周圍沒雷,可以實現展開 遊戲結束後展示玩家用時 game.h ifndef game h define game h include include include include define row 12 define col 12 define count 10 棋盤中...
C語言小遊戲 掃雷
這個小遊戲也分為三個部分的 分別是標頭檔案,測試 和遊戲 1.注意初始化以及使用getwincount函式的時候字元1和字元0的使用。2.為了玩家的體驗,第一步不可以被炸死。3.要擴充套件,這時會用到遞迴,注意遞迴的使用。4.可以新增標記,優化遊戲。標頭檔案 game.h ifndef game h...