C語言實現掃雷。可以標記。

2021-08-18 01:22:29 字數 1993 閱讀 1322

做這個遊戲的思路是,因為要顯示未掃出的座標*,又要顯示掃出的座標,還要儲存雷的座標,顯然乙個陣列實現起來有困難。不妨設定兩個陣列,乙個存雷的座標,另乙個用來使用者進行操作。

此**實現了掃雷時候進行擴充套件,近似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,其他地方...