C語言小遊戲 掃雷

2021-09-14 05:30:06 字數 2404 閱讀 4180

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