首先來講一講掃雷的規則:隨便點乙個格仔,會有一塊,上面的數字就代表數字周圍八個格仔會有幾個雷,是1他周圍就只有1個雷,2就有兩個雷······
寫**的時候要注意構思**的框架,每個函式實現的意義在**中都有體現,首先看一下頭檔案game.h
第二個就是實現每乙個函式game.c#define row 9
#define col 9
#include
#include
#include
//防止查雷時越界,多開兩行兩列
#define rows row+2
#define cols col+2
enum difficulty
;void
initboard
(char arr[rows]
[cols]
,int row,
int col,
char val)
;void
showboard
(char arr[rows]
[cols]
,int row,
int col)
;//生成雷
void
generatemine
(char arr[rows]
[cols]
,int row,
int col,
int difficulty)
;//獲取[i][j]位置周圍的雷
intgetmine
(char mine[rows]
[cols]
,int i,
int j)
;//遇到周圍沒有雷時,對周圍進行展開搜尋
void
searchmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int i,
int j)
;
其次建立test.c進行測試#include
"game.h"
void
initboard
(char arr[rows]
[cols]
,int row,
int col,
char val)}}
void
showboard
(char arr[rows]
[cols]
,int row,
int col)
printf
("\n");
for(
int i =
1; i <= row;
++i)
else
}printf
("\n");
}printf
("\n");
}void
generatemine
(char arr[rows]
[cols]
,int row,
int col,
int difficulty)}}
intgetmine
(char mine[rows]
[cols]
,int i,
int j)
void
searchmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int i,
int j)
show[i]
[j]=
' ';
int posarr[8]
[2]=
,,,,
,,,}
;//8個方向空格進行搜尋
for(
int k =
0; k <8;
++k)
//1、如果此方向一圈有雷,則顯示雷數量,不再往下搜尋
//2、如果此方向一圈沒有雷,則遞迴繼續往它周邊搜尋
int minenum =0;
minenum =
getmine
(mine, row, col);if
(minenum >0)
else
}}
#include
"game.h"
#include
"windows.h"
void
game()
if(mine[i]
[j]==
'1')
else
else}}
}int
main()
C語言實現掃雷
思路,建立兩個二維陣列,乙個作為雷區,乙個作為顯示區,雷區只在程式結束時顯示。每次使用者操作後重新整理顯示區的陣列成員。建立雷區二維陣列12 12,顯示區二維陣列10 10,用 0 代表安全區,1 代表雷區。雷區的陣列長度設定比顯示區的陣列長度多2,方便邊框區域計算周圍地雷數量。標頭檔案宣告 inc...
c語言實現掃雷
void menu 樸實無華的選單 因為我們這裡要有乙個陣列來存放雷,乙個陣列給玩家看,所以在這裡我們用兩個陣列,給我們設定雷的我們暫且稱為my board,給玩家看的稱為y board,如下 示例 char ret 0 在這裡建立兩個陣列自己看的叫my board,將要放置雷的地方置為1,其他地方...
C語言實現掃雷遊戲
game.h define crt secure no warnings 1 include include include include define sum 10 define row 11 define col 11 void print void init char mine row co...