主要功能有:
1.第一次下子不被炸死;
2.下子後顯示周圍布雷數;
首先可以將掃雷的遊戲介面看做乙個二維陣列;然後有限的雷隨機排布在這個二維陣列中,玩家通過輸入座標來確定該座標對應的二維陣列座標是否是雷,若不是則顯示周圍布雷數,這時考慮座標如果在陣列的中間則少顯示周圍8個座標布雷情況,而在陣列邊緣則小於8。因此我在建立陣列時建立乙個比所需數大2行2列。將所需陣列視為中間陣列即可;如圖:
建立test.c,game.c和game.h三個檔案
**如下:
int main()
} while (input);
system("pause");
return 0;
}
**如下;
void muen()
void init_mine()//初始化兩個棋盤
}}void print_player()//列印玩家棋盤
}}int sweep_mine()//掃雷函式,踩到雷返回1,沒有踩到雷返回0
}else if (real_mine[x][y] == '1')//踩到雷
}else
return 0;//沒踩到雷
}
**如下:
void safe_mine()//避免第一次炸死
}break;//跳出此函式
}if (real_mine[x][y] == '0')
}else//座標錯誤}}
int count_mine(int x, int y)//檢測周圍8個區域雷的個數
void open_mine(int x, int y)//座標周圍展開函式
if (real_mine[x - 1][y] == '0')
if (real_mine[x - 1][y + 1] == '0')
if (real_mine[x][y - 1] == '0')
if (real_mine[x][y + 1] == '0')
if (real_mine[x + 1][y - 1] == '0')
if (real_mine[x + 1][y] == '0')
if (real_mine[x + 1][y + 1] == '0')
}
**如下;
int count_show_mine()//判斷剩餘未知區域的個數,個數為雷數時玩家贏}}
return count;
}
檢視第一是否可以炸死(根據布雷圖,輸入有雷座標未被炸死):
第二步輸入有雷座標:
判斷玩家贏;
while (1)//迴圈掃雷
if (ret)//判斷是否踩到雷
print_player();//列印玩家棋盤
}}int main()
} while (input);//迴圈玩遊戲
system("pause");
return 0;
}
#define _crt_secure_no_warnings 1
#define _crt_secure_no_warnings 1
#include"game.h"
char show_mine[row][col] = ;
char real_mine[row][col] = ;
void muen()
void init_mine()//初始化兩個棋盤
}}void print_player()//列印玩家棋盤
}else if (real_mine[x][y] == '1')//踩到雷
}else
return 0;//沒踩到雷
}void safe_mine()//避免第一次炸死
}break;//跳出此函式
}if (real_mine[x][y] == '0')
}else//座標錯誤
}}int count_mine(int x, int y)//檢測周圍8個區域雷的個數
void open_mine(int x, int y)//座標周圍展開函式
if (real_mine[x - 1][y] == '0')
if (real_mine[x - 1][y + 1] == '0')
if (real_mine[x][y - 1] == '0')
if (real_mine[x][y + 1] == '0')
if (real_mine[x + 1][y - 1] == '0')
if (real_mine[x + 1][y] == '0')
if (real_mine[x + 1][y + 1] == '0')
}int count_show_mine()//判斷剩餘未知區域的個數,個數為雷數時玩家贏}}
return count;
}
#include#include#include#include#define row 12
#define col 12
#define count 10//棋盤中雷的總數
extern char real_mine[row][col];//布雷陣列
void muen(); //選單函式
void init_mine(); //初始化陣列函式
void print_player(); //列印玩家棋盤
void print_mine(); //列印設計者棋盤
void set_mine(); //布雷函式
int count_mine(); //統計周圍雷的個數
void safe_mine(); //避免第一次被雷炸死的函式
int sweep_mine(); //掃雷函式
void open_mine(int x, int y);//展開函式
int count_show_mine(); //判斷玩家棋盤剩餘未知區域的個數
掃雷遊戲的實現 C語言
掃雷遊戲 define crt secure no warnings define max row 9 define max col 9 define max mine count 10 include include include intmenu printf n你的輸入有誤 請重新輸入 n c...
C語言實現掃雷
思路,建立兩個二維陣列,乙個作為雷區,乙個作為顯示區,雷區只在程式結束時顯示。每次使用者操作後重新整理顯示區的陣列成員。建立雷區二維陣列12 12,顯示區二維陣列10 10,用 0 代表安全區,1 代表雷區。雷區的陣列長度設定比顯示區的陣列長度多2,方便邊框區域計算周圍地雷數量。標頭檔案宣告 inc...
C語言實現掃雷
首先來講一講掃雷的規則 隨便點乙個格仔,會有一塊,上面的數字就代表數字周圍八個格仔會有幾個雷,是1他周圍就只有1個雷,2就有兩個雷 寫 的時候要注意構思 的框架,每個函式實現的意義在 中都有體現,首先看一下頭檔案game.h define row 9 define col 9 include inc...