掃雷游戲可以經由過程已掀開格子所提醒的四周地雷數,實現判定未掀開格子里是否有地雷,此刻給出一個n行m列的雷區分布圖,每個格子四周有八個:上、下、左、右、左上、左下、右上和右下,要求輸出每個非地雷格子四周的地雷數。
如何用C++實現這一算法呢?小編與大師分享編程經驗。
輸入數據時,第一行為地雷分布圖的行數和列數,劃定雷區的行列數小于100。接下來是雷區分布圖各格的地雷分布,“*”暗示是地雷,“?”暗示格子中無地地雷,每個字符之間無任何分隔符。
輸出數據時,輸出雷區的每個格子,若是格子中是地雷,則用“*”暗示,若是格子中無地雷則用四周的地雷數暗示,每個字符之間無任何分隔符。
起首,界說一個常量,用來節制數組的巨細。
接著,界說各整型變量,實現法式的運算。
界說兩個整型數組,保留雷區分布圖和響應雷區的描述。
然后,界說兩個整型一維數組,保留四周八個格子的相對坐標。
輸入雷區的行數和列數,保留在變量n和m中。
輸入雷區分布圖,保留在二維數組mine中。
一一讀取雷區分布圖中的各格數據,用來運算雷區的描述。
若是讀取的格子為地雷,則暗示對應格子的描述值設置為“*”,保留在變量s中。
若是雷區格子中沒有地雷,則一一計較四周的地雷數。
用if語句判定計較出的四周格子是否在雷區中,若是前提當作立且四周格子中是地雷,則計數值count累加1。
然后,將計較出的四周地雷數轉化為字符,保留在字符數組s中。
最后,輸出二維數組s中的值,即輸出整個雷區的描述圖。
運行法式,輸入雷區的行數和列數,以及整個雷區分布圖,電腦就管帳算出響應雷區的描述圖。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!