#define _crt_secure_no_warnings
#include
#include
#include
//■//定義兩個陣列,乙個是顯示的使用者介面;乙個是系統隨機生成好的,用來進行比較的。
int arr[11]
[11]=
;int arr0[9]
[9]=
;//給arr0展示陣列賦初值
void
setarr0()
}}//顯示使用者介面
void
setshow
(int sign)
int num =10;
if(sign ==0)
//使用者找到十個地雷,那麼就將自動翻開所有區域,若仍有地雷,則失敗
if(num ==0)
}break;}
if(bomb ==0)
else
exit(0
);}printf
("\t\t\t%d\n"
, num)
;for
(int i =
0; i <
9; i++
)printf
("\n");
}}//用來生成座標
intsetxy()
//用隨機數生成乙個9*9含有10個地雷的系統陣列
void
setmap()
}/*for (int i = 0; i < 11; i++)
}}*/
}//在系統給定的陣列中標記數字,即每個格仔周圍的一圈有多少個地雷
void
setsign()
}}arr[i]
[j]= n;}}
}//展示系統陣列
/* for (int i = 0; i < 11; i++)
}}*/
}//本程式中,最難的地方在於,若使用者選到空白的地方,如何展示一片相連的區域,在查閱過資料之後,得到可以使用遞迴函式來解決
//解決方法來自於csdn上jether大佬的一篇部落格——掃雷遊戲設計原理
void
accept
(int x,
int y)
if(arr[x]
[y]==0)
}}else
if(x ==
9&& y ==9)
}}if(x ==
1&& y ==9)
}}else
if(x ==
9&& y ==1)
}}else
if(x ==1)
}}else
if(y ==1)
}}else
if(y ==9)
}}elseif(
11}}
else}}
//由於才疏學淺,不會使用游標,所以就只能讓使用者輸入陣列來進行遊玩
void
input()
else
elseif(
(arr[x]
[y]!=10)
&&(arr[x]
[y]!=0)
)else}}
}int
main()
此**還不完全,沒能實現真正的掃雷,主要問題就是:
沒有實現第一次踩到的不是地雷;
使用者選擇乙個點之後,不能完全展開不是地雷的相連區域,只能展開 3 * 3 的區域,後續我會繼續改進,等我學到的知識足夠了,一定能解決這個問題。
發表於 2020-10-30 22:03
小遊戲 掃雷
c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...
小遊戲 掃雷
實現乙個掃雷遊戲 1.設定兩個陣列 mine row col 表示布雷,show row col 顯示掃雷情況 顯示周圍有幾個雷 因為統計四周,邊緣位置不好實現,所以把二維陣列的行和列都加二,這樣無論是否在邊緣都可以當做一種情況來實現。2.初始化mine和show,show mine 0 3.set...
掃雷小遊戲
game.h 標頭檔案 ifndef game h define game h include include include include define row 12 define col 12 define count 10 棋盤中雷的總數 extern char show mine row ...