我正在考慮創建一個程序讓我玩或解決slitherlink拼圖,就像在krazydad.com上一樣。它由4塊,5塊,6塊,7塊和8塊磚組成。除七面磚之外,所有面都具有相同長度的邊,其中兩面之間的兩面爲七面磚(因此將五面瓷磚連接到四面瓷磚)的邊長約爲正常長度的70%。正如您在下面的圖片中看到的,八邊形由交替的五邊形和六邊形包圍。這些與六邊形的遠端相連。連接到五邊形的尖端的是連接到連接到其他組的正方形的較小線。然後圍繞廣場形成具有兩個短邊的七邊形圖。我認爲外邊緣是通過忽略離中心太遠的瓷磚來定義的。平鋪算法/數據結構?
對於數據結構,我想我需要連接所有節點的圖。我可以讓用戶點擊以在最接近的鏈接上放置一條實線,並且我可以很容易地檢查循環或太多線條進入節點。我還需要爲它們創建切片和關聯線,並將內部線條分配給兩個切片,但將其視爲一條線。
至於設置它,我正在考慮手動計算出點並定義最小的重複貼圖集(1 8,4 5,4 6,4 7和1 4),然後將它們放在每個貼圖旁邊其他。放置時,我會檢查每個放置的現有關閉點,如果找到,則將它們組合。然後我需要檢查重複的行併合並它們。
是否有更容易或更乾淨的方法來A)生成平鋪或B)在進行平鋪時合併節點和鏈接?
有沒有理由我的答案不好? –