【python+情人節】玩個俄羅斯方塊都是愛你的形狀——一、思路分析

本項目效果如圖
動畫過程已投稿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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章