c語言實現掃雷小遊戲(優化後)

2021-09-20 03:21:01 字數 3544 閱讀 2266

遊戲開啟介面為選單,選擇『1』開始遊戲,列印出乙個9*9棋盤,系統隨機設定10個雷,之後玩家輸入座標進行遊戲,第一次不會踩到雷,如果走的棋盤格周圍的8個格仔都沒有雷,直接展開空格,繼續掃瞄這8個格仔各自周圍的8個格仔是否有雷,如果有雷則顯示雷的個數,沒有雷就繼續展開,如果踩到雷,遊戲結束,列印存放雷的資訊的棋盤。

我們需要兩個棋盤,乙個是程式設計者棋盤,乙個為顯示給玩家的棋盤

1.初始化棋盤,給兩個棋盤分別賦值,乙個賦為『0』,乙個賦為『*』.

void initboard(char board[rows][cols], int rows, int cols, char set)

}}

2.列印棋盤

void displayboard(char board[rows][cols], int row, int col)

printf("\n");

for (i = 1; i <=col; i++)

printf("\n");

}}

3.布置雷

void setmine(char mine[rows][cols], int row, int col)

}}

4.展開一片

void openmine(char mine[rows][cols], char show[rows][cols], int row, int col,int x,int y)//展開一片

else

}

5.保證第乙個不踩雷

void first_safemine(char mine[rows][cols], char show[rows][cols], int row, int col)//確保第乙個不踩雷

ret--;

} }openmine(mine, show, row, col, x, y);

displayboard(show, row, col);

}

6.排雷:設定乙個變數win,如果win小於棋盤除了雷所佔的格仔外的格仔數量,繼續排雷,直到win與剩下的格仔數相等則排雷成功。

void findmine(char mine[rows][cols], char show[rows][cols], int row, int col)

else

} else

printf("座標非法!");

} if (win == row*col - easy_count)

}

7.設定乙個函式,獲取這個座標周圍的雷的數量

int getminecount(char mine[rows][cols], int x, int y)

三個檔案:

game.**件

# define _crt_secure_no_warnings 1

# include # include # include # define row 9

# define col 9

# define rows row+2

# define cols col+2

# define easy_count 10

void initboard(char board[rows][cols], int rows, int cols, char set);

void displayboard(char board[rows][cols], int row, int col);

void setmine(char mine[rows][cols], int row, int col);

int getminecount(char mine[rows][cols], int x, int y);

void first_safemine(char mine[rows][cols], char show[rows][cols], int row, int col);

void findmine(char mine[rows][cols], char show[rows][cols], int row, int col);

game.c檔案

#include "game.h"

void initboard(char board[rows][cols], int rows, int cols, char set) }}

void displayboard(char board[rows][cols], int row, int col)

printf("\n");

for (i = 1; i <= col; ++i)

printf("\n"); }}

void setmine(char mine[rows][cols], int row, int col)//設定雷 }}

int getminecount(char mine[rows][cols], int x, int y)//獲取座標周圍的雷的數量

void openmine(char mine[rows][cols], char show[rows][cols], int row, int col, int x, int y)//展開一片

else

show[x][y] = getminecount(mine, x, y) + '0';

}void first_safemine(char mine[rows][cols], char show[rows][cols], int row, int col)//保證第乙個不踩雷

ret--;

} }openmine(mine, show, row, col, x, y);

displayboard(show, row, col);

}void findmine(char mine[rows][cols], char show[rows][cols], int row, int col)//排雷

else

}else

printf("座標非法!\n");

} if (win == row*col - easy_count) }

void menu()

void game()

; char show[rows][cols] = ;

initboard(mine, rows, cols, '0');

initboard(show, rows, cols, '*');

displayboard(show, row, col);

setmine(mine, row, col);

first_safemine(mine, show, row, col);

findmine(mine, show, row, col);

}void testfunc()

} while (input);

}

test.c檔案

#include "game.h"

int main()

C語言實現掃雷小遊戲

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

C語言實現掃雷小遊戲

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

用C語言實現掃雷小遊戲

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