C語言掃雷小遊戲

2021-09-28 17:58:05 字數 4018 閱讀 4256

主要思想是構建兩個二維陣列,但是構建出來的二維陣列要比列印出來的大一圈,因為這樣才會在後續統計雷數的時候更加方便。

然後兩個二維陣列,其中乙個二維陣列是我用來布置雷的,而另乙個是展示給玩家看的。

在我的棋盤布置雷之後,讓玩家在他的雷盤進行選擇。

如果選擇的座標在我的棋盤是雷,則炸。

如果不是雷,則統計周圍的雷數

1.統計周圍雷數,如果周圍一顆雷都沒有,則展開繼續統計。

2.如果周圍有雷,則顯示周圍的雷數。

3.玩家進行一步一步的掃雷過程中,如果遇到雷,那邊炸掉,重新遊戲

如果沒遇到雷,最後統計玩家沒掀開的格仔數量,如果數量是等於雷的數量,那遊戲玩家獲勝。

以上就是大體 的思路,下面是**展示:

標頭檔案game.h

#include

#include

#include

#include

#define row 9

#define col 9

#define rows row +2

#define cols col +2

#define mine 9

void

initboard

(char board[rows]

[cols]

,int row,

int col,

char set)

;void

display

(char board[rows]

[cols]

,int row,

int col)

;void

putmine

(char board[rows]

[cols]

,int row,

int col)

;void

saolei

(char mineboard[rows]

[cols]

,int showboard[rows]

[cols]

,int rol,

int col)

;int

nearmine

(char mine[cols]

[rows]

,int x,

int y)

;void

nomine

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int x,

int y)

;int

countblank

(char show[rows]

[cols]

,int row,

int col)

;

初始化

void

initboard

(char mineboard[rows]

[cols]

,int row,

int col,

char set)

//初始化棋盤

}}

列印棋盤

void

display

(char board[rows]

[cols]

,int row,

int col)

//列印棋盤

printf

("\n");

for(i =

1; i <= row; i++)}

printf

("\n");

printf

(" ");

for(j =

1; j <= col; j++)}

}printf

("\n");}}}

放隨機雷

void

putmine

(char board[rows]

[cols]

,int row,

int col)

//布置雷

}}

統計周圍雷個數

int

nearmine

(char mine[cols]

[rows]

,int x,

int y)

用遞迴,實現展開

void

nomine

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int x,

int y)

else

}

統計玩家沒掀開的格仔個數

int

countblank

(char show[rows]

[cols]

,int row,

int col)

}return count;

}

玩家掃雷

void

saolei

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int row,

int col)}if

(mine[x]

[y]==

'1'&& show[x]

[y]==

'*')

}else}}

while

(flag)

;}

改裝公升級:第一次碰雷不炸開:設定count,每次輸入座標count便加1,在count=1時碰雷遊戲繼續,**如下

void

saolei

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int row,

int col)}if

(mine[x]

[y]==

'1'&& show[x]

[y]==

'*'&& count ==1)

if(mine[x]

[y]==

'1'&& show[x]

[y]==

'*'&& count !=1)

}else}}

while

(flag)

;}

主函式text.c

#define _crt_secure_no_warnings

#include

"game.h"

void

menu()

void

game()

;char showboard[rows]

[cols]=;

initboard

(mineboard, rows,cols,

'0')

;putmine

(mineboard, row, col)

;display

(mineboard, row, col)

;initboard

(showboard, rows, cols,

'*')

;display

(showboard, row,col)

;saolei

(mineboard, showboard, row, col);}

intmain()

}while

(input)

;return0;

}

實現

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