做這個遊戲的思路是,因為要顯示未掃出的座標*,又要顯示掃出的座標,還要儲存雷的座標,顯然乙個陣列實現起來有困難。不妨設定兩個陣列,乙個存雷的座標,另乙個用來使用者進行操作。
此**實現了掃雷時候進行擴充套件,近似win系統裡的掃雷。
還可以進行標記雷的位置,防止掃錯。
**如下:
#include #include #include #define row 11
#define col 11
#define rows 9
#define cols 9
#define mine_no 10
void init(char mine[row][col],char show[row][col],int row,int col);
void print(char arr[row][col],int rows,int cols);
void arrmine(char mine[row][col],int rows,int cols);
void selecoor(char mine[row][col],char show[row][col],int rows,int cols);
int countmine(char mine[row][col],int x,int y);
void launchtl(char mine[row][col],char show[row][col],int rows,int cols);
void launchdr(char mine[row][col],char show[row][col],int rows,int cols);
#include "game.h"
void game()
; char show[row][col] = ;
init(mine,show,row,col); //初始化雷陣行列
arrmine(mine,rows,cols); //布置雷陣
print(mine,rows,cols); //列印雷陣
printf("***********************************\n");
print(show,rows,cols);
selecoor(mine,show,rows,cols); //玩家選擇雷座標
}void menu()
else if(n == 0)
else
}}int main()
#include "game.h"
void init(char mine[row][col],char show[row][col],int row,int col)
}void launchdr(char mine[row][col],char show[row][col],int rows,int cols,int x,int y)
}void selecoor(char mine[row][col],char show[row][col],int rows,int cols)
}} count1 = 1;
if(show[x][y] == 'x')
printf("是否需要標記地雷?(1是/2否)\n");
scanf("%d",&s);
if(s == 1)
if(show[x][y] != '*')
if(mine[x][y] == '1')
show[x][y] = countmine(mine,x,y)+'0'; //計算周圍雷數
launchtl(mine,show,rows,cols,x,y);
launchdr(mine,show,rows,cols,x,y);//展開無雷區
print(show,rows,cols);
for(i=1 ;i<=rows ;i++)
}} if(count2 == mine_no)
}}
C語言實現掃雷
思路,建立兩個二維陣列,乙個作為雷區,乙個作為顯示區,雷區只在程式結束時顯示。每次使用者操作後重新整理顯示區的陣列成員。建立雷區二維陣列12 12,顯示區二維陣列10 10,用 0 代表安全區,1 代表雷區。雷區的陣列長度設定比顯示區的陣列長度多2,方便邊框區域計算周圍地雷數量。標頭檔案宣告 inc...
C語言實現掃雷
首先來講一講掃雷的規則 隨便點乙個格仔,會有一塊,上面的數字就代表數字周圍八個格仔會有幾個雷,是1他周圍就只有1個雷,2就有兩個雷 寫 的時候要注意構思 的框架,每個函式實現的意義在 中都有體現,首先看一下頭檔案game.h define row 9 define col 9 include inc...
c語言實現掃雷
void menu 樸實無華的選單 因為我們這裡要有乙個陣列來存放雷,乙個陣列給玩家看,所以在這裡我們用兩個陣列,給我們設定雷的我們暫且稱為my board,給玩家看的稱為y board,如下 示例 char ret 0 在這裡建立兩個陣列自己看的叫my board,將要放置雷的地方置為1,其他地方...