c語言實現簡易掃雷遊戲

2021-09-19 06:04:35 字數 3804 閱讀 9988

掃雷遊戲很多人都玩過吧,今天就為大家介紹我用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...