本項目效果如圖
動畫過程已投稿b站:https://www.bilibili.com/video/av88671119
目錄
一、思路分析
二、手動拼圖
三、自動拼圖
四、動畫展示
======================= 大爽歌作,made by big shuang =======================
一、思路分析
0、項目介紹
如最上面的圖所示,本項目實際上就是通過俄羅斯方塊拼出一個愛心的形狀
具體拆分成三步
- 1 - 畫出個愛心的形狀
- 2 - 用俄羅斯方塊拼起來
- 3 - 展示過程動畫
1、畫出個愛心的形狀
這一步主要是手動實現的,即手動去做出能夠表示一個愛心的二維列表(矩陣)
一個由方格塊組成的愛心形狀如圖
其中輕灰色的方格用0表示,粉紅色的方格用1表示
則迷宮文本如下,建議將文本保存到一個txt裏面
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
ps1:我的項目裏面保存的名字是love3.txt,你也可以起別的名字,不過後面記得調用的時候要替換
ps2:愛心中的粉紅色的方格的數量必須是4的倍數,原因見下文
2 - 用俄羅斯方塊拼起來
要用如下其中俄羅斯方塊把這個愛心拼起來
圖中7種俄羅斯方塊的方格數都是4的倍數,
所以要讓他們能夠拼出一個愛心的話,
愛心的方格數量也必須是4的倍數
這裏可以看成一個方格拼圖問題
解決這個問題有兩種方法
一種是通過算法去實現 - 本人使用的是回溯法
一種是手動實現 - 自己試出拼法
這裏比較下兩種方法
通過算法去實現
優點: 省事,對所有符合要去的愛心文本都可以找到
缺點: 不能自主選擇,很容易出現老是用單一種的俄羅斯方塊拼慢很多區域的情況,以及有的種類的俄羅斯方塊則沒有被用到,容易顯得單調不豐富
補充: 但是由於本人使用的是回溯法,執行算法特別耗時間(執行出結果大概花了半個小時)
手動去實現
單純手動的去實現非常麻煩
這裏我做一個gui輔助手動去實現
優點: 可以自己選擇
缺點: 費時間,換一種愛心文本就要再去手動找一次
補充: 但是由於本人使用的是回溯法,執行算法特別耗時間
3、做個gui去動態展示
TODO