C語言實現掃雷小遊戲

2021-08-29 14:06:45 字數 2805 閱讀 4218

本文將從一行行**中詳解掃雷小遊戲,對每乙個模組都使用詳細的注釋,使這個掃雷小遊戲簡單易懂。

首先,簡單分析掃雷的玩法,掃雷就是在乙個棋盤中布置適當數量的雷數玩家通過對雷陣的排查,來找出雷的位置。如果玩家選擇的座標周圍無雷將自動展開這片區域,若有雷會顯示雷數。

1.定義兩個適當大小的雷陣,乙個用來埋雷,判斷玩家選擇座標處是否有雷。另乙個向使用者展示;

(定義的雷陣需比展示的雷陣大一圈,以便於執行展開)

2.對雷陣進行埋雷;

(埋雷的區域應和展示的雷陣大小相同)

3.由玩家選擇座標,判斷座標合法後在第乙個雷陣中進行判斷,並執行操作,對應展示出第二的雷陣;

4.若玩家所選座標無雷,則展開周圍座標,知道遇到雷,顯示雷數;

5.若第二個雷陣中剩餘未排查的座標和雷數相符,則玩家勝利。若玩家所選座標有雷則失敗.

分析結束,我們就一起來對應著**及注釋深入了解掃雷小遊戲的實現過程。

首先時標頭檔案部分

ifndef __game2_h__

#define __game2_h__

#include#include#include//定義雷陣的大小

#define row 9

#define col 9

#define rows row+2

#define cols col+2

//定義不同難度雷的個數

#define easy 10

#define medi 20

#define diff 30

//初始化雷陣函式

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

//列印雷陣函式

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

//埋雷函式

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

//尋雷函式

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

//統計雷數函式

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

//展開函式

void unfold(char mine[rows][cols], char show[rows][rows], int x, int y);

//獲勝函式

int iswin(char sow[rows][cols], int row, int col);

#endif __game2_h__

接下來就是測試部分

#include"game2.h"

//選單

void menu1()

void menu2()

//遊戲

void game()

; char show[rows][cols] = ;

int input = 0;

int n = 0;

//選擇難度

menu2();

flag: printf("請選擇:");

scanf("%d",&input);

switch(input)

//實現功能

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

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

showboard(show,rows,cols);

setmine(mine,rows,cols,n);

showboard(mine,rows,cols);

findmine(mine,show,rows,cols,n);

}int main() }

while(input);

return 0;

}

剩下最後一部分就是對遊戲功能的逐步實現

#include"game2.h"

//初始化雷陣函式

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

} }}//尋雷函式

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

else

}else

}while(iswin(show,row,col) - n != 0);

//若剩餘*的數量等於雷數則獲勝

if(iswin(show,row,col) - n == 0) }

//統計座標周圍八個方位的雷數

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

//展開函式

void unfold(char mine[rows][cols], char show[rows][rows], int row, int col, int x, int y)}}

}} }

else

showboard(show,row,col);

}//獲勝函式

int iswin(char show[rows][cols], int row, int col)

} }//返回*的數量

return count;

}

C語言實現掃雷小遊戲

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

用C語言實現掃雷小遊戲

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

利用C語言實現掃雷小遊戲

1.展現乙個9 9的遊戲棋盤,未掃過雷的地方用 代替。2.玩家輸入棋盤座標進行排雷。3.如果玩家輸入座標為雷所在位置,則遊戲結束。4.如果玩家輸入座標為非雷所在位置,則在該座標位置顯示周圍一圈8個位置雷的數量。5.直到玩家把所有非雷的位置找出來,則遊戲結束。標頭檔案game.h define crt...