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