用C語言實現掃雷小遊戲

2022-09-25 01:21:07 字數 2910 閱讀 1544

隨便點乙個格仔,會有一塊,上面的數字就代表數字周圍八個格仔會有幾個雷,是1他周圍就只有1個雷,2就有兩個雷;

最終任務就是點開所有沒有雷的格仔,則取得更好的分數,如果點開的格仔是雷,則遊戲結束。

2.1 編寫選擇介面

同上個小遊戲一樣,首先編寫選擇介面,輸入1為開始遊戲,輸入2則退出遊戲。

void menu()

2.2 編寫執行程式

執行程式需要檢測點開的格仔(這裡輸入的方式為輸入座標)周圍的八個格仔有多少個雷,並在該格仔上顯示雷的個數。

int getmines(char mine[col], int row, int col, int x, int y)

2.3 編寫設定雷的個數

巨集定義雷的個數為nums(nums 20);然後隨機排布雷的位置。

void setmines(char mine_board[col], int row, int col)

}}2.4 遊戲介面的設定

以二維陣列的方式設定遊戲介面,這裡實際設定的介面為12x12的格仔介面,在前面巨集定義行為12(row 12)列為12(col 12);但是顯示為10x10的介面,為方便使用者輸入座標,在行和列的前面分布標上數字。

static void showline(int nums)

printf("\n");

}void showboard(char show_board[col], int row, int col)

printf("\n");

showline(2 * col + col + 4);//這裡傳入的引數是由於『-'佔位原因,可以根據自己實際介面調整;

for (int i = 1; i < row - 1; i++)

printf("\n");

showline(2 * col + col + 4);

}}2.5 遊戲邏輯的編寫

在編寫遊戲邏輯的時候,首先傳入我們設定的遊戲棋盤;由於棋盤以二維陣列方式設定,所以在使用前需要初始化,所以我們用memset來快速設定。

將展示前的棋盤空位都設定為 *,然後將遊戲使用的棋盤空位設定為 0;

生成隨機雷的個數,將其傳入棋盤,設定雷;剩餘空格的個數用count來表示;

開始遊戲邏輯,輸入棋盤,傳入使用者輸入的座標,然後檢測使用者輸入的座標是否越界;越界則提示使用者輸入越界,需要重新輸入;如果沒越界則遊戲繼續進行,檢測使用者輸入的座標是否已經點開,如果點開則提示使用者重新輸入;然後判斷點開的是不是雷,如果是遊戲結束,如果不是遊戲繼續,直到所有空格都點開count=0結束迴圈;

如果剩餘空格count不為0遊戲結束,則說明踩到雷;否則說明雷全被排完,然後向使用者展示所有雷的分布範圍。

void game()

if (show_board[x][y] != '*')

if (mine_board[x][y] == '1')

int num = getmines(mine_board, row, col, x, y);

show_board[x][y] = num + '0';

count--;

} while (count > 0);

if (count > 0)

else

printf("你輸了,下面是雷區的分布\n");

showboard(mine_board, row, col);

printf("play again? \n");

}2.6 設定遊戲開始or退出

這裡設定如果使用者輸入的為1,則開始遊戲;輸入2 則直接退出,如果輸入其他數字則提公升使用者輸入錯誤。

int main()

} system("pause");

return 0;

}然後將上述**整合起來,彙總如下:

#include

#include

#include

#include

#pragma warning(disable:4996)

#define row 12

#define col 12

#define nums 20

void menu()

void setmines(char mine_board[col], int row, int col) }}

int getmines(char mine[col], int row, int col, int x, int y)

static void showline(int nums)

printf("\n");

}void showboard(char show_board[col], int row, int col)

printf("\n");

showline(2 * col + col + 4);

for (int i = 1; i < row - 1; i++)

printf("\n");

showline(2 * col + col + 4); }}

void game()

if (show_board[x][y] != '*')

if (mine_board[x][y] == '1')

int num = getmines(mine_board, row, col, x, y);

show_board[x][y] = num + '0';

count--;

} while (count > 0);

if (count > 0)

else

printf("你輸了,下面是雷區的分布\n");

showboard(mine_board, row, col);

printf("play again? \n");

}int main()

} system("pause");

return 0;

}本文標題: 用c語言實現掃雷小遊戲

本文位址:

用C語言實現掃雷小遊戲

多檔案實現掃雷遊戲,並滿足 第一次不被炸死 當座標周圍沒雷,可以實現展開 建立兩個12 12的陣列,乙個實現埋雷等操作mine 12 12 另乙個則是使用者所見的介面board 12 12 在mine.h中進行一些檔案引入和定義及宣告 mine.h ifndef mine h define mine...

C語言實現掃雷小遊戲

我們首先說一下基本思路 首先我們需要兩個面板,乙個顯示面板,乙個雷面板,這兩個面板需要用二維陣列來實現。其次,要在雷面板中布置雷,然後需要輸入座標,排查雷,繼而判斷是否踩到雷,如果踩到雷,那麼玩家死翹翹,遊戲結束,如果沒有踩到雷,需要判斷此座標周圍雷的個數。如果最後設定雷的總個數全部被排查出來,那麼...

C語言實現掃雷小遊戲

本文將從一行行 中詳解掃雷小遊戲,對每乙個模組都使用詳細的注釋,使這個掃雷小遊戲簡單易懂。首先,簡單分析掃雷的玩法,掃雷就是在乙個棋盤中布置適當數量的雷數玩家通過對雷陣的排查,來找出雷的位置。如果玩家選擇的座標周圍無雷將自動展開這片區域,若有雷會顯示雷數。1.定義兩個適當大小的雷陣,乙個用來埋雷,判...