掃雷遊戲很多人都玩過吧,今天就為大家介紹我用c語言製作的簡單掃雷程式。
這個遊戲的主要功能就是game()函式的實現,用乙個型別為char 的show_map二維陣列進行標記一定數量的地雷,不列印給玩家和另乙個同型別的名為mine_map的二維陣列,用於記錄座標周圍的地雷數。玩遊戲的功能都是圍繞這兩個函式操作開展的。
game()函式思路:
首先對兩個陣列定義並初始化,
然後再植入地雷,
再輸入座標並判斷該座標下是否觸雷,若觸雷, 則直接遊戲結束。否則繼續
統計該座標周圍的地雷數,並將該座標元素改為該座標周圍的地雷數,
列印所有格仔(翻開的座標,列印該座標周圍的地雷數)
當排除所有地雷時,並且未觸雷,遊戲成功!
接下來看一下**:
#include
#include
#include
#define max_row 9
#define max_col 9
#define max_count 10
intmenu()
;//列印選單並返回選擇函式
void
init
(char show_map[
][max_col]
,char mine_map[
][max_col]);
//初始化陣列,將show_map全部初始化為*,mine_map全部初始化為0
void
proland
(char mine_map[
][max_col]
,int r ,
int c)
;//初始化地雷函式,在mine_map上隨機產生max_count個地雷,並將產生地雷的地方修改為1
void
print
(char show_map[
][max_col]);
//列印函式,將傳入的陣列按格式列印出來
intminenum
(const
char mine_map[
][max_col]
,int row,
int col)
;//返回mine_map[row][col]周圍的地雷數
intleapmine
(char show_map[
][max_col]);
//返回未排掉的格仔數(包括未排出的地雷)
void
game()
;//遊戲函式
void
printover
(char mine_map[
][max_col]);
//踩雷後列印所有雷的位置
#include
"game.h"
intmenu()
void
init
(char show_map[
][max_col]
,char mine_map[
][max_col])}
}void
proland
(char mine_map[
][max_col]
,int r,
int c)
//在mine_map上隨機產生max_count個地雷,並將產生地雷的地方修改為1}}
void
print
(char show_map[
][max_col]
)//列印
printf
("\n----------------------");
for(row =
0; row < max_row;
++row)
}printf
("\n");
}void
printover
(char mine_map[
][max_col]
)printf
("\n------------------------------");
for(i =
0; i < max_row;
++i)
else
}printf
("\n");
}}intminenum
(const
char mine_map[
][max_col]
,int row,
int col)
//返回mine_map[row][col]周圍的地雷數if(
(row -
1>=0)
&&(mine_map[row -1]
[col]
=='1'))
//座標正上方if(
(row -
1>=0)
&&(col +
1<= max_col)
&&(mine_map[row -1]
[col +1]
=='1'))
//座標右上方if(
(col -
1>=0)
&&(mine_map[row]
[col -1]
=='1'))
//座標左邊if(
(col +
1<= max_col)
&&(mine_map[row]
[col +1]
=='1'))
//座標右邊if(
(row +
1<=max_row)
&&(col -
1>=0)
&&(mine_map[row +1]
[col -1]
=='1'))
//座標左下if(
(row +
1<= max_row)
&&(mine_map[row +1]
[col]
=='1'))
//座標正下if(
(row +
1<= max_row)
&&(col +
1<= max_col)
&&(mine_map[row +1]
[col +1]
=='1'))
//座標右下
return count;
}int
leapmine
(char show_map[
][max_col]
)//返回未排掉的格仔數(包括未排出的地雷)}}
return count;
}void
game()
else
}proland
(mine_map,row,col)
; show_map[row]
[col]
=minenum
(mine_map, row, col)
+'0'
;while(1
)else
if(show_map[row]
[col]
!='*'
)else}if
(mine_map[row]
[col]
=='1'
)elseif(
leapmine
(show_map)
== max_count)}}
intmain()
else
if(choice ==0)
else
}system
("pause");
return0;
}
這裡需要注意的幾點: C語言實現簡易掃雷小遊戲
我們經常在電腦上面玩的掃雷遊戲,很考驗我們的判斷能力,但是實現乙個掃雷遊戲並不是很困難,只要多注意一些細節就好,就可以將乙個簡單的掃雷遊戲寫出來!接下來先介紹掃雷遊戲要實現的功能 首先,要對雷陣進行初始化,在初始化的時候要注意要定義兩個陣列,乙個是讓我們掃雷的陣,另外乙個就是顯示某乙個地方的周圍的雷...
C語言實現簡易掃雷
define crt secure no warnings 1 include include include include define row 9 顯示棋盤的大小 define col 9 define rows row 2 整個棋盤的大小 define cols col 2 define c...
C語言實現掃雷遊戲
game.h define crt secure no warnings 1 include include include include define sum 10 define row 11 define col 11 void print void init char mine row co...