該遊戲我們也是利用陣列完成,設定倆個陣列乙個mine陣列,乙個show陣列。
mine陣列存放雷,show陣列顯示棋盤並且顯示該位置是否有雷或者顯示該位置周圍有幾個雷。
陣列大小有講究,我們巨集定義變數 row col 為9 定義rows cols為11,我們顯示的是9x9的棋盤,也是將雷設定在9x9的位置內,但是我們設定陣列是設定11x11,因為這樣方便我們遍歷9x9棋盤四邊位置上某位置四周雷的數目,不然的話會發生越界錯誤。
對於雷的符號,我們設定空位置為 0,有雷的位置為1,這樣易於我們統計某一位置周圍有多少雷的數目。
重點在於掃雷函式,玩家輸入x y位置,我們判斷該位置是否有雷,否的話判斷該位置周圍有多少雷並在存於show陣列display給玩家。並且我們輸入乙個位置當該位置不是雷的時候,計數器count++;若果該計數器count==col*row-eaxy_count;我們就判斷玩家贏。
#include
#include
#include
#define row 9
#define col 9
#define rows row+2
#define cols col+2
#define easy_count 10
//函式宣告
void
chushiboard
(char board[rows]
[cols]
,int rows,
int cols,
char set)
;void
dayinboard
(char board[rows]
[cols]
,int row,
int col)
;void
buzhiboard
(char mine[rows]
[cols]
,int row,
int col)
;void
caoleiboard
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
;void
menu()
void
game()
void
test()
}while
(input);}
intmain()
void
chushiboard
(char board[rows]
[cols]
,int rows,
int cols,
char set)}}
void
dayinboard
(char board[rows]
[cols]
,int row,
int col)
printf
("\n");
for(i =
1; i <= row; i++
)printf
("\n");
}printf
("------------------------------\n");
}void
buzhiboard
(char mine[rows]
[cols]
,int row,
int col)}}
static
intgetminecount
(char mine[rows]
[cols]
,int x,
int y)
void
caoleiboard
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
else
}else}if
(win == row*col - easy_count)
}
執行結果:
C語言 掃雷遊戲
標頭檔案 ifndef mine h define mine h define line 10 define list 10 define rows 6 define cows 6 int game char userboard line 2 list 2 char playerboard line...
C語言 掃雷遊戲
要求 1 第一下輸入座標,不炸死。2 座標周圍沒有雷,可以實現展開。思想 一 用乙個測試函式test 完成使用者的整個遊戲體驗,放在主函式中。二 test 函式中應該完成的內容 選單選擇和遊戲部分。選單選擇即menu 函式 遊戲部分即game 函式 因為是遊戲,所以以使用者體驗為先,先讓使用者玩一把...
掃雷遊戲C語言
掃雷遊戲c語言 include include include define max row 9 define max col 9 define max mine count 10 char mine map max row max col 雷的位置 char show map max row ma...