沒想到竟然有人不會玩掃雷!
一,認識棋盤已經棋盤中數字的意義
我們點擊棋盤上任意一個方塊,將會獲得一片已知區域
棋盤上的數字是指以該數字為中心每 3×3 區域內所存在的雷。以下綠圈代表中心,紅框代表綠圈中數字所代表的範圍,以後都將紅框稱為該數字的覆蓋範圍簡稱覆蓋範圍。
這個 3×3 區域存在三種情況:
㈠完整 3×3 區域
㈡中心位於除四個角落外的邊界上 3×2 或 2×3 區域
㈢中心位於四個角落 2×2 區域
如何通過數字去判斷雷所在的位置
我們用下圖作為參照
開局(點擊第一個未知區域)後不難發現棋盤變成了兩部分,不妨將黑灰色區域稱為已知區域(Known regions),白色區域稱為未知區域(unKnown regions)。
觀察後不難發現任一數字的覆蓋範圍內所存在我未知區域是不同的且至少存在一個未知區域最多存在 8 個未知區域。
接下來我們要通過數字的覆蓋範圍和未知區域之間的聯繫去判斷雷的具體位置。
如圖,以綠圈中的 1 作為中心的覆蓋範圍內只有一個未知區域,那麼這個未知區域必然是雷的位置
接下來更換中心
由於綠圈 2 位於棋盤邊界它的覆蓋範圍為 3×2,其範圍內有 2 個未知區域,因為 2 代表的是覆蓋範圍內雷的數量,所以其覆蓋範圍內的未知區域必然是雷的位置。
再看
綠圈 3 的覆蓋範圍內有 3 個未知區域,那麼同理這 3 個未知區域也必然是雷的位置。
我們可以得出結論:如果一個數字的覆蓋範圍內存在的未知區域數量與該數字相同,則該數字範圍內的未知區域皆為雷。
這樣我們通過一個數字就定位到了雷的位置。
如果是以下情況該如何判斷呢?
我們發現未知區域被紅框和綠框分隔成了兩個區域
接下來我們要在這兩個區域內找出一個雷去滿足兩個覆蓋範圍的條件,不難發現這個雷只能位於橫向的位置區域內,所以大膽點開豎向位置區域去查看信息
這樣通過多個覆蓋範圍的交集就確定了雷的位置。
好了,你已經學會了掃雷最基本的方法了,接下來你去發現更簡單快捷的算法吧