片#define _crt_secure_no_warnings
#include #include int menu()
#define max_row 9
#define max_col 9
#define mine_count 10
// shift + alt + r(va) 能夠對變數/函式重新命名
void init(char show_map[max_row][max_col],
char mine_map[max_row][max_col])
} // 2. 對於 mine_map, 需要隨機生成若干個地雷
// 使用 0 表示不是地雷, 使用 1 表示是地雷
for (int row = 0; row < max_row; ++row)
} int n = mine_count;
while (n > 0)
mine_map[row][col] = '1';
--n; }}
void printmap(char map[max_row][max_col])
printf("\n");
// 列印乙個分割線
for (int col = 0; col < max_col - 2; ++col)
printf("\n");
// 再列印其他行
for (int row = 0; row < max_row; ++row)
printf("\n"); }}
void updateshowmap(int row, int col,
char show_map[max_row][max_col],
char mine_map[max_row][max_col])
if (row - 1 >= 0 && col >= 0
&& row - 1 < max_row && col < max_col
&& mine_map[row - 1][col] == '1')
if (row - 1 >= 0 && col + 1 >= 0
&& row - 1 < max_row && col + 1 < max_col
&& mine_map[row - 1][col + 1] == '1')
if (row >= 0 && col - 1 >= 0
&& row < max_row && col - 1 < max_col
&& mine_map[row][col - 1] == '1')
if (row >= 0 && col + 1 >= 0
&& row < max_row && col + 1 < max_col
&& mine_map[row][col + 1] == '1')
if (row + 1 >= 0 && col - 1 >= 0
&& row + 1 < max_row && col - 1 < max_col
&& mine_map[row + 1][col - 1] == '1')
if (row + 1 >= 0 && col >= 0
&& row + 1 < max_row && col < max_col
&& mine_map[row + 1][col] == '1')
if (row + 1 >= 0 && col + 1 >= 0
&& row + 1 < max_row && col + 1 < max_col
&& mine_map[row + 1][col + 1] == '1')
// 得到了周圍 8 個格仔中地雷的個數
// 假設 count 為 2, 實際想看到的內容是 字元 2 '2' 也就是 ascii 中的 50
show_map[row][col] = '0' + count;
}void game()
if (show_map[row][col] != '*')
// 4. 判定是否是地雷
if (mine_map[row][col] == '1')
// 5. 判定遊戲是否勝利
// 判定所有的非地雷位置都被翻開了
++blank_count_already_show;
if (blank_count_already_show
== max_col * max_row - mine_count)
// 6. 統計當前位置周圍的雷的個數
updateshowmap(row, col, show_map, mine_map); }}
int main() else if (choice == 0) else
} system("pause");
return 0;
}
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...