三,初始化地圖
四,排雷
三,難點
第一步:列印選單,寫開始遊戲的程式;
第二步:建立兩個地圖,乙個埋雷,乙個用於顯示;
第三步:將兩個地圖初始化;
第四步:排雷;
第五步:判斷是否踩雷;
第六步:判斷是否排除所有雷;
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的二維陣列,用於記錄座標周圍的地雷數。玩遊戲的功能都是圍繞這兩個函...