c語言掃雷小遊戲設計思路

2021-10-10 05:44:41 字數 2514 閱讀 4482

一、主體函式的設計:

設計遊戲選單,通過選擇進入或者退出遊戲

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...