1. 程式人生 > >“C”實現掃雷遊戲(優化版)

“C”實現掃雷遊戲(優化版)

指點 com C4D 根據 位置 菜單 sig https shadow

完成掃雷程序,並進行以下優化:
①第一次下子,不炸死。(如果第一次掃到雷區,則將其置為無雷區,為保證雷的數目不變,再次隨機布一顆雷)?
②坐標周圍沒雷,可以實現展開。
思路:
1、設置遊戲區域(10x10,考慮到邊界問題,為統一操作,故設為12x12)
雷區面板和玩家操作面板(為方便操作,兩面板保持一致)
附註:memset()函數介紹
void memset(void s, int ch, size_t n);
函數解釋:將s中當前位置後面的n個字節 (typedef unsigned int size_t )用ch 替換並返回s。
memset:作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法。
memset()函數原型是extern void memset(void buffer, int c, int count)
其中,buffer:為指針或是數組;c:是賦給buffer的值;count:是buffer的長度.
2、打印遊戲菜單
3、在雷區面板布雷
附註:srand函數和rand函數介紹
srand函數是隨機數發生器的初始化函數。
原型:void srand(unsigned int seed);srand和rand()配合使用產生偽隨機數序列。
rand函數在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次調用rand函數生成的偽隨機數序列都是一樣的。srand(unsigned seed)通過參數seed改變系統提供的種子值,從而可以使得每次調用rand函數生成的偽隨機數序列不同,從而實現真正意義上的“隨機”。通常可以利用系統時間來改變系統的種子值,即srand(time(NULL)),可以為rand函數提供不同的種子值,進而產生不同的隨機數序列
4、定義遊戲
(1)獲取周邊雷的數目
(2)第一次掃雷不被炸死
(3)打印遊戲面板(反饋周邊雷的數目,然後顯示周邊無雷區)
玩家玩遊戲操作
(有待改進的地方希望道友們給予指點,嘻嘻)
算法如下:
技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

“C”實現掃雷遊戲(優化版)