設計思路
定義乙個結構體,裡面存放每乙個格仔是否被翻開,已經地雷和格仔周圍地雷數量。用結構體定義乙個二維陣列,隨機放入特定數量的地雷。玩家輸入要翻開的格仔的行數和列數。用乙個函式來翻開目標格仔,如果是地雷遊戲失敗,否則用乙個函式統計目標格仔周圍的地雷數。如果周圍沒有地雷,則遞迴使用乙個函式將附近周圍沒有地雷的格仔全部開啟,最後判斷是否遊戲勝利,沒有就繼續讓玩家輸入行數和列數。
**實現
1 #include2 #include3 #include4執行結果5#define height 10 //
定義地圖高度
6#define widht 10 //
定義地圖寬度
7#define boon_num 10 //
定義地雷數量89
struct
square10;
14 square map[height][widht]; //
定義地圖
1516
//地圖初始化
17void
csh()
1827
28//
隨機地雷
29srand(time(null));
30 p = &map[rand() % height][rand() %widht].groundboon;
31 *p = -1;32
for(int i=0;i1;i++)
3338 *p = -1;39
}4041}
4243
//輸出地圖
44void
sc()
4565 printf("\n"
);66
}
67 printf("
\n總共%d個地雷\n
",boon_num);68}
69//
大面積翻開周圍沒有雷的方塊
70void bigopen(int openh, int
openw)
7184
if (openh - 1 >= 0 && map[openh - 1][openw].isopen == false)85
90if (openh - 1 >= 0 && openw + 1
< widht && map[openh - 1][openw + 1].isopen == false)91
96if (openw - 1 >= 0 && map[openh][openw - 1].isopen == false)97
102if (openw + 1
< widht && map[openh][openw + 1].isopen == false
)103
108if (openh + 1
< height && openw - 1 >= 0 && map[openh + 1][openw - 1].isopen == false
)109
114if (openh + 1
< height && map[openh + 1][openw].isopen == false
)115
120if (openh + 1
< height && openw + 1
< widht && map[openh + 1][openw + 1].isopen == false
)121
126}
127//
查詢周圍地雷數量
128int ground(int openh, int
openw)
129152
//翻開指定方塊
153bool open(int openh,int
openw)
154164
//遊戲結束畫面
165void
end()
166173
//判斷是否勝利
174bool
win()
175182
void
main()
183199 printf("
請輸入要開啟的格仔列數:");
200 scanf_s("
%d", &openw);
201while (openw<0 || openw>height) //
如果輸入數字不正確則迴圈重新輸入
202206 isend=open(openh,openw);
207 iswin =win();
208 system("
cls"
);209
}210
end();
211if
(iswin)
212 printf("
恭喜你,掃雷成功!!!\n");
213else
214 printf("
可惜,掃雷失敗!\n");
215 printf("
輸入1重開遊戲,輸入其他任意數字退出遊戲:");
216 scanf_s("
%d",&isagain);
217if (isagain == 1
)218
222 }
掃雷遊戲 C實現
相信掃雷遊戲對於這一代的我們來說並不陌生,小學中學階段在沒有網路的學校機房可沒少玩吧?以前,我們是以乙個使用者的角度來接觸它的,那麼,作為即將成為程式猿的我們來說,何不妨試試以開發者的角度來接觸它呢?先來分析一下掃雷程式的大體思路及框架 1 要實現掃雷程式,需要有乙個在每一局中固定的埋雷陣列,表示雷...
C實現掃雷小遊戲
直接上傳 這是乙個 game.h 標頭檔案 ifndef game h define game h include include define row 9 define col 9 define count 10 define rows 11 define cols 11 void initboa...
c 實現掃雷遊戲 初學
全域性變數定義地圖和一些判斷資訊 建立三個地圖 分別表示 源地圖 顯示的效果地圖 和乙個用來判斷點位是否被選中的地圖 玩家輸入要翻開的格仔的行數和列數。用乙個函式來翻開目標格仔,如果是地雷遊戲失敗,可以選擇是否重新遊戲並且重新整理乙個新的隨機地圖,否則用乙個函式統計目標格仔周圍的地雷數。如果周圍沒有...