掃雷的基本實現(簡易)

2021-10-21 02:44:45 字數 2888 閱讀 3746

三,初始化地圖

四,排雷

三,難點

第一步:列印選單,寫開始遊戲的程式;

第二步:建立兩個地圖,乙個埋雷,乙個用於顯示;

第三步:將兩個地圖初始化;

第四步:排雷;

第五步:判斷是否踩雷;

第六步:判斷是否排除所有雷;

void

muen()

intmain()

}while

(a);

return0;

}

先定義地圖的大小,我們要寫的地圖為9*9,說以要建立11行11列的地圖(為什麼要建立11行11列的,待會會說)

#define row 9

#define col 9

#define rows 11

#define cols 11

#define mine 10

void

game()

;//建立乙個row行,col列的二維陣列用於顯示掃雷區域

char mine[rows]

[cols]=;

//建立乙個row行,col列的二維陣列用於建立掃雷區域

intnshow

(show, rows, cols)

;//初始化展示棋盤,使其全部為*

intnmine

(mine, rows, cols)

;//初始化棋盤使其全部為0

setmine

(mine, row, col);do

}while

(a);

}

void

displayshow

(char show[rows]

[cols]

,int rows,

int cols)

printf

("\n");

}printf

("%d "

, i+1)

;//列印行數

for(j =

0; j < cols; j++

)printf

("\n");

}}

void

intnshow

(char show[rows]

[cols]

,int rows,

int cols)}}

void

intnmine

(char show[rows]

[cols]

,int rows,

int cols)

}}

void

setmine

(char mine[rows]

[cols]

,int row,

int col)

}}

這裡使用時間作為隨機數的種子

do

int

findmine

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int row,

int col,

int x,

int y)

else

return1;

}}else

}}

此處還有數雷的**

int

get_mine_cunt

(char mine[rows]

[cols]

,int x,

int y)

設定11行11列,只需要其中9行9列,這可以讓我們數類似與第一行第一列的**時更方便

void

findmines

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int row,

int col,

int x,

int y)

}

檢查是否排查完畢的**

int

chakwin

(char show[rows]

[col]

,int row,

int col)}if

(count ==

(mine+40)

)return0;

else

return1;

}

利用srand((unsigned)time(null));設定時間戳,利用rand函式隨機設定雷;學習srand函式時,不知道到要對時間進行無符號型別轉化,查閱資料後解決。

這裡設定11行11列的地圖,目的是能更方便的數1行1列位置的雷,在數第一行第一列的雷時,實際上是在數雷地圖上的第2行第2列的座標,這樣就可以使數雷的時候直接數2行2列周圍的8個格仔就行,用簡單**,完成數雷的操作。

放置雷時,由於全部初始化為『0』,所以放置時只需令其為』1』,數雷時只需將周圍8個位置的值相加(建立的型別是char,故相加值是其asc碼值),再減去8*『0『就可以得到該座標雷的數量,列印時要記得加上』0』,才是顯示該座標周圍雷的數量。

座標一定要對齊!!!

掃雷時,當該座標沒有雷,有一大片的空白時,需全部列印出來,奈何本人技術不足,難以實現,只能將周圍的8個座標顯示出來,歡迎各位大佬給我提供技術支援,這個bug我先記著了,日後學成歸來,定解決這個bug!!!

萌新學習,歡迎各位大佬指教!!!

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實現簡易版掃雷

用兩個盤實現該遊戲 乙個是雷盤,乙個是展示盤 就是玩遊戲的盤 該 可以實現以下幾個功能 1.列印雷盤和展示盤。隨機產生雷的位置 2.保證第一次掃雷不會被炸死。3.點一下可以展開一片。4.判斷是否贏。注意 要注意兩個盤的座標和下標。還有,呼叫函式和傳參。test.c include include i...

c語言實現簡易掃雷遊戲

掃雷遊戲很多人都玩過吧,今天就為大家介紹我用c語言製作的簡單掃雷程式。這個遊戲的主要功能就是game 函式的實現,用乙個型別為char 的show map二維陣列進行標記一定數量的地雷,不列印給玩家和另乙個同型別的名為mine map的二維陣列,用於記錄座標周圍的地雷數。玩遊戲的功能都是圍繞這兩個函...