一千萬個為什麽

搜索

我如何創建Fillomino拼圖?

我已享受 Fillomino 一兩年了。這是一個位於網格上的填充拼圖的區域。每個框中的數字表示它所屬的多邊形的大小,並且相同大小的多邊形不能接觸(除了對角線)。示例拼圖:

sample

樣本信用: Nikoli

然而,嘗試用創建它們並不是很好。我可以輕松地為一個不合理的小網格創建一些東西,但這並不好玩或具有挑戰性。例如,

2..      (completed) 221
..2                  332
31.                  312

是一個簡單的3x3拼圖,有一個獨特的答案。問題在於,當我嘗試擴展到更大的網格時,可能性是壓倒性的。我很容易忘記為什麽我把什麽放在哪裏以及已經考慮了什麽。

我的第一直覺是從一個“已完成”的網格開始並刪除數字,直到它看起來很難看似困難,但我很快發現決定刪除哪些是偶然的。

環顧網絡,有幾個來源解釋如何解決這些類型的謎題,但基本上沒有創建它們。

我的手機上有一個應用程序,其中包含成千上萬的謎題(難度和大小各不相同),所以我傾向於相信它們可以輕松地由計算機生成,但我沒有看到算法的輪廓(手動或代碼)。

最佳答案

對於計算機來說,一遍又一遍地重新解決電網問題根本就沒有問題,這就是基本上這些類型遊戲的大多數發生器是如何工作的。他們要麽從一個空白的網格開始,添加線索,要麽從一個填充的網格開始,並刪除線索,在每一步重新解決網格問題,以確保其正常工作。 (這些不是唯一的方法,但我認為它們是最常見的。)

像這樣的遊戲通常是NP完全的(Fillomino是: http://www6.in .tum.de/Main/Publications/Ruepp2010a.pdf )這意味著這對於非常大的網格來說並不是很實用,但是由於無論如何沒有人播放非常大的網格,所以它不會出現。即使這樣,如果你每天或每周只需要一個謎題需要花費一個小時來產生一個新的謎題,或者如果你可以等待幾天來收集一個大的收藏品(不是通常需要那麽長時間),那也不是問題。

為了手工制作謎題,過程類似,但人類(有實踐)可以采取大量的捷徑,並根據更多的審美價值做出很多決定。例如,您可能會選擇一組構成一個漂亮模式的給定,並查看使您獲得解決方案的接近程度,然後根據先前嘗試的效果而不是偶然性來添加或刪除給定。如果你知道一個角落裏存在很多歧義,你可以猜測你需要在那附近添加另外兩個或兩個。你可能甚至不必解決整個網格就知道它的一部分不起作用。大多數計算機程序不會采用這種快捷方式。

我不能從經驗中說出,但我確信通過練習,你可以學習很多小技巧,這將使制作新的謎題變得更容易。 (數獨足夠流行,以至於人們編寫了有關制作數獨謎題的文章,其中一些建議肯定會轉化為其他類型的謎題。)

轉載註明原文: 我如何創建Fillomino拼圖?