【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

发布了14 篇原创文章 · 获赞 2 · 访问量 1013

猜你喜欢

转载自blog.csdn.net/python1639er/article/details/104309913