太好玩了,我用Python写了个火影忍者版的连连看

在 Python 中使用 Turtle 绘制火影忍者 火影忍者是一个流行的动漫角色,它是最受欢迎的动漫之一,下面的代码将向您展示如何使用 python Turtle 绘制火影忍者。 阅读详情

暑假马上就要结束了,在暑假即将走向尾声的时候,小编特地为大家准备了一款小游戏——连连看。希望通过这一款小游戏为大家放松身心,迎接新学年的到来。

连连看想必大家都玩过,相同的图片,可以连在一起消掉,但前提是图片连接的路径要是直线,或者是“L”形(连接线有一个拐弯)或者是类似于“U”形(连接线有两个拐弯)。那么程序是如何实现的呢,先看一下整个的设计思路:

640?wx_fmt=png

01.

游戏的界面设计

1).首先是对于整体界面的设计,如下图所示:

640

大家运行程序后,会首先弹出选择框,是否从第一关开始,选择第一关后,点击游戏便可以开始游戏。我们设计了一个菜单,点击游戏/开始游戏即可!

02.

把火影忍者的人物放画布

接下来就是将游戏人物放到画布上去,这里我们选择了我最喜欢的火影忍者的头像,哈哈!


1).首先程序规定了每一个种类图片

图片所能出现的次数为4次,然后如果我们想实现一个8x8大小的图片地图,那么就一共有8x8/4=16种类型的图片可以出现。我们将每一种类型图片编码为一个数字,例如上图中鸣人的编号为0,小樱的编号为1。然后在对应到图片上去,所以就会得到16(种类)x4(每个种类的图片数量)=64个图片,如下图所示:

640

2).然后,我们将上述的图片打乱

按照画布上的位置分别放置图片,就得到了连连看的图片界面。

640

3).部分代码如下图所示

640?wx_fmt=png

该函数是对画布图片进行一个初始化:

  • 首先,是将每一个类别的小图片都添加self.num张,形成一个self.picsKind * self.num大小的一维数组;

  • 然后,将小图片的索引顺序进行打乱;

  • 最后,是将小图片的索引转化为一个二维数组,也就是呈现给大家的一个正方形的界面。

640?wx_fmt=png

这里是将我们存放到self.pics里面的图片,通过函数self. get_left_top_point函数来获得其对应的坐标,并按照此坐标将图片放置到画布的相应位置。

其中有一点应用的很是巧妙,就是利用索引来作为判断是否是一类图片的标志(后面有代码示例的),接下来就是进行图片的消除,如下图所示。

640

03.

核心算法解释

敲黑板划重点来了,只有符合上述三种情况的图片我们才能够消除,那么程序如何判断二者是否符合被消除的条件呢?

  • 我们以直线连接为例。上图中可以直线连接的两个佐助横纵坐标分别为(2,3)和(3,3),那么我们就判断他们x坐标(直线连接,横纵坐标肯定有一个相等,就不用判断相等的坐标了);

  • 如果他们中间没有其他的图片,那么他们就可以被连接然后消掉,否则就不可以;

例如(4,4)和(4,6)的小樱之间有一个其他人的存在,他们就不能被连接,其他的情况也是类似判断,部分代码如下图所示:


640?wx_fmt=png

上面的3中连接方法(直连,L型连接和U型连接)。当我们判断二者可以连接后,利用tkinter的画布中的delete函数,便可以将图片删掉。部分程序如下所示:


640?wx_fmt=png

当我们将所有的图片都消掉后,程序便会弹出提示框,祝贺我们闯关成功。下面,小编就为大家带来视频展示,看看小编的功力如何。

(连连看运行视频)


怎么样看完视频,是不是感觉还不错,唯一美中不足的就是没有加入声音。大家如果有兴趣的可以拿着完整的源码改改,看看能否优化和加入声音,这样效果更佳!


需要源码,后台输入:【连连看】

用python写一个火影忍者连连看 有没有喜欢看火影忍者的小伙伴,我个比较喜欢鸣人,小樱,佐助,雏田,鼬等一些人物。 这次就跟大家弄一个他们的连连看吧! 首先先定义这次我们需要的模块 import os, random import tkinter as tk import tkinter.messagebox from PIL import Image, ImageTk 定义游戏的尺寸 class MainWindow(): __gameTitle = "连连看游戏" __windowWidth = 700 __windowHeig 阅读详情

相关推荐

使用Python写一个火影忍者连连看

有没有喜欢看火影忍者的小伙伴,我个比较喜欢鸣人,小樱,佐助,雏田,鼬等一些人物。这次就跟大家弄一个他们的连连看吧!

weixin_72934044的博客 1405

80行代码!用Python做一个哆来A梦分身

对于分身术,大家想必都或多或少的从《火影忍者》的动漫上看到过,炫酷的影分身场面,每每看到都觉得非常过瘾。今天,小编其实是蓝胖子的铁粉,满满的童年回忆啊!今天Python来实现一个简单的哆...

cainiao_python的博客 1092

「趣味连连看经典版」童年经典火影忍者连连看,无需下载,在线可玩~

前言 关注我,一起玩游戏吧! 《趣味连连看经典版》还原童年经典连连看小游戏 任何年龄段都能玩的小游戏,休闲解压必备!如果你学Python学累了,玩一下这个游戏放松下吧! 一、效果展示 完整的项目源码素材等滴滴我即可免费啦~ 开始界面—— 点击游戏——新游戏开始: 消一消: 二、游戏的步骤 1)游戏规则 相同的人物即可消除很简单,有????手就行,消除是2个相同即可,一段距离是可以连接消除的。 2)素材 3)导入模块 import os, random..

xy258009的博客 3121

python tkinter实现连连看游戏

需要自己添加图片素材呦 运行效果: 完整代码 ​ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-10-02 15:19:24 # @Author : Salamander (1906747819@qq.com) # @Link : http://51lucy.com import os, random import tkinter as tk ...

marraybug的博客 435

Python连连看实战:DFS路径判定与Tkinter游戏开发

连连看游戏的核心在于‘两点间连通性判定’这一经典二维网格路径搜索问题,其本质是带约束的图遍历——需在空格组成的隐式图中,寻找最多含两次转向的合法路径。这涉及深度优先搜索(DFS)或广度优先搜索(BFS)的剪枝优化、转向计数状态管理、以及与GUI事件循环的协同调度。技术价值体现在算法可靠性(如严格实现‘≤2次转弯’)、工程鲁棒性(防抖、状态锁、资源加载容错)和可维护架构(Board与PathFinder职责分离)。典型应用场景包括教学项目验证、轻量级桌面游戏原型、算法可视化教具等。本文提供一个基于Python

weixin_29048309的博客 265

基于Python+OpenCV图像识别的连连看辅助工具(深度学习+机器视觉)含全部工程源码及视频演示

1.项目基于 pywin32 获取游戏图像信息,通过 OpenCV 进行识别处理,实现相同图形的连通。 2.项目运行环境:Python 3.6 及以上配置,安装第三方库:pywin32、matplotlib、numpy、OpenCV、Pillow。 3.项目包括 4 个模块:获取句柄、图像划分、建立矩阵,矩阵求解。QQ 游戏连连看的游戏区图像水平方向有 19 列,竖直方向有 11 行。确定连连看图像的坐标进行划分建立矩阵,通过获取游戏窗口句柄来实现。获得游戏图像坐标,可准确地捕捉图像信息,将游戏图像进行区分处理。注意对游戏图像信息处理完毕后转化为数字矩阵,相同的图案转化成相同的数字,来帮助计算机进行运算执行。 4.准确率评估:经测试,经过处理后,能100%对齐所有的图像,且能在游戏运行过程中自动操作。含操作视频。

Just for fun——用Python的Tkinter写个连连看

UI 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-10-02 15:19:24 # @Author : Salamander (*********@qq.com) # @Link : http://51lucy.com import...

weixin_34357887的博客 263

基于python中的pygame库实现的火影忍者小游戏.zip

项目已获导师指导并通过的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

太好玩了,我用Python写了个火影忍者版的连连看 !

暑假马上就要结束了,在暑假即将走向尾声的时候,小编特地为大家准备了一款小游戏——连连看。希望通过这一款小游戏为大家放松身心,迎接新学年的到来。 连连看想必大家都玩过,相同的图片,可以连在一起消掉,但前提是图片连接的路径要是直线,或者是“L”形(连接线有一个拐弯)或者是类似于“U”形(连接线有两个拐弯)。那么程序是如何实现的呢,先看一下整个的设计思路: Pyt...

Pythoncxy的博客 2719

ss524v100 调试cvbs输出

启用视频层3 dev2 对应 layer3在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序。

2116

lvds接口_LVDS,接口,时序讲解,非常好的文章

欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群1.1.1 LVDS接口分类1.1.1.1 单路6bit LVDS这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。1.1.1.2 双路6bit LVDS这种接口电...

weixin_39639286的博客 1902

python连连看_太好玩了,我用Python写了个火影忍者版的连连看

暑假马上就要结束了,在暑假即将走向尾声的时候,小编特地为大家准备了一款小游戏——连连看。希望通过这一款小游戏为大家放松身心,迎接新学年的到来。连连看想必大家都玩过,相同的图片,可以连在一起消掉,但前提是图片连接的路径要是直线,或者是“L”形(连接线有一个拐弯)或者是类似于“U”形(连接线有两个拐弯)。那么程序是如何实现的呢,先看一下整个的设计思路:游戏的界面设计1).首先是对于整体界面的设计,如下...

weixin_39524439的博客 160

uniapp - [微信小程序 | 安卓苹果app] 详细实现接入天地图完整流程,提供显示地图、IP 属地定位 / 用户定位的城市名称、用户定位的经纬度超多功能(复制运行示例代码,详细注释及常见问题)

uni-app,微信小程序,安卓app,苹果app,App端,支付宝小程序,nvue,天地图,国家天地图api,接入使用天地图,uniApp小程序端接入天地图,uniapp安卓苹果app端接入天地图,微信小程序平台如何引入天地图,天地图Api使用教程,如何在uniapp里集成天地图,使用天地图获取当前定位,天地图api教程,天地图官方文档,天地图详细使用教程,Uniapp项目如何使用天地图,项目引入天地图配置及使用教程,使用天地图获取用户定位,天地图获取用户当前位置信息(经纬度),如何通过天地图拿到用户定位

🏆 前端领域优质创作者 1万+

python连连看_太好玩了,我用Python写了个火影忍者版的连连看 !

暑假马上就要结束了,在暑假即将走向尾声的时候,小编特地为大家准备了一款小游戏——连连看。希望通过这一款小游戏为大家放松身心,迎接新学年的到来。连连看想必大家都玩过,相同的图片,可以连在一起消掉,但前提是图片连接的路径要是直线,或者是“L”形(连接线有一个拐弯)或者是类似于“U”形(连接线有两个拐弯)。那么程序是如何实现的呢,先看一下整个的设计思路:Python资源共享群:62601712301.游...

weixin_39689622的博客 299

【即插即用模块】Transformer篇 | ICCV 2025 | MALA :注意力分布神似Softmax,告别线性注意力性能短板!

MALA(Magnitude-Aware Linear Attention)是一种改进的线性注意力机制,通过引入缩放因子和偏移项,解决了传统线性注意力忽视查询幅度的问题,使其分布更接近Softmax Attention。该模块具有线性复杂度(O(n)),结合RoPE和LEPE编码实现全局-局部位置信息混合,通过z值调制平衡信息权重。实验表明MALA在轻量级视觉任务中能有效平衡效率与精度,注意力可视化显示其分布与Softmax Attention高度相似。代码提供完整的RoPE位置编码和线性注意力

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1107

观测器选择与工程实践建议

摘要:永磁同步电机(PMSM)无传感器控制中,观测器选型需综合考虑应用场景、性能需求与成本。消费级(家电、工具)推荐滑模观测器(SMO),成本低、鲁棒性强;工业级(伺服、泵阀)适用扩展卡尔曼滤波器(EKF),精度高但计算复杂;车规级(EPS、主驱动)需混合观测器(SMO+EKF),兼顾全速域性能与可靠性。低速时需高频注入法,IPMSM更适用。SMO易实现但存在抖振,EKF调试复杂。未来趋势是混合架构与AI增强,提升适应性与性能。选型需权衡速度范围、电机类型、处理器能力及成本。

汽车软件开发 146

用python画写轮眼代码,写轮眼c语言代码

z=0&tn=baiduimagedetail&word=%BF%A8%BF%A8%CE%F7%D0%B4%C2%D6%D1%DB&in=11883&cl=2&cm=1&sc=0&lm=-1&pn=6&rn=1&di=1825117740&ln=2000&fr=&ic=0&s=0&se=1我新注册的账号传不了图,只得如此原理和之前的三勾玉一样宇智波斑的比较简单,不解释佐助的嘛……这种写轮眼和普通写轮眼的形状有所区别,一般的写轮眼是三个分开的勾玉,而万花筒写轮眼则有各种不同的形态,且可以使用特别的招式。

神器榜 3473

你知道几种数字地与模拟地连接方式及优缺点?

频率选择性:磁珠的阻抗特性随频率变化,只对某个频点的噪声有显著抑制作用,对于频率不确定或无法预知的情况,可能不是最佳选择。在实际应用中,选择合适的连接方式需要根据具体的电路频率、信号类型、设计要求等因素综合考虑,以达到最佳的电磁兼容效果.高频信号干扰:在高频电路中,单点接地可能导致信号回流路径过长,增加地线电感,从而引入高频噪声。限制噪声电流:0欧姆电阻相当于一个非常窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。抑制高频信号:电感对高频信号有较大的阻碍作用,可以有效抑制高频噪声。

linkking27的博客 801

连连看写好了

花了好几天,终于把连连看写好了,也是我学MFC以来做的第一个游戏,从算法到程序,都想了好长时间,呵呵.该有的功能都有了,Eagle还要做个连连看的外挂,但是我游戏里已经有指南针的功能了,呵呵,会不会多此一举啊?不过学习过后,写网游的外挂倒是8错~为了突出个性,一共做了3个版本:柯南,海贼王,火影忍者,都是些熟悉的角色,玩起来也满有意思的.因为不是很好就不拿出来了,呵呵.      今天又更

Karl的专栏 1326

YOLO26改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块

本文记录的是。YOLO26主要用于轻量化应用部署,相关轻量化改进与其整体架构非常适配。StarNet设计简洁,没有复杂的设计和精细调整的超参数,仅是一个 4 阶段的分层架构。并且其中能够在低维空间计算的同时考虑极高维的特征这一特性,进而提高模型精度。本文在替换骨干网络中配置了原论文中的starnet_s1starnet_s2starnet_s3和starnet_s4七种模型,以满足不同的需求。

Limiiiing的博客 1091

静态时序分析—伪路径(set_false_path)

set_false_path应用场景

m0_61544122的博客 2万+

用python画万花筒写轮眼_万花筒写轮眼画法教程

很多喜欢动漫的朋友看过火影忍者,绘画吧觉得火影忍者里的写轮眼很酷,那么万花筒写轮眼怎么画?绘画吧学画画网给大家带来万花筒写轮眼画法教程,有兴趣的一起来学习今天的漫画教程吧。说起火影忍者中的眼睛那么强大的万花筒写轮眼应该是最酷炫的了。绘画吧中二病的时候都希望自己能有一双这样强大神奇的眼睛。虽然我们不能真的拥有写轮眼,但是我们可以用画画的方式来画一双写轮眼,下面一起来看万花筒写轮眼的画法。画万花筒写轮...

weixin_35426022的博客 7577

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

隔离太无聊!不如用Python实现愤怒的小鸟,看看能否通关!

大家好,我是菜鸟哥!最近上海的疫情还是很猛,每天新增1万多,很多同事,同学都是居家办公,居家隔离。这波疫情时间已经有一段时间了,大家都窝在家里也不好受。房子就那么大,不能出去,蔬菜也不多,亲戚在上海,每天凌晨5点多抢菜,真心不易。为了打发时间,只能煲煲剧,或者打打游戏。说到打游戏,菜鸟哥以前写过好几个Python玩游戏的文章:牛逼,两百行Python代码带你打造一款《天天...

cainiao_python的博客 6783

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

万花筒写轮眼画法_万花筒写轮眼怎么画?

大神是永远都存在的,相信大家一定都有看过热血的日漫火影忍者!那么其中各位忍者的写轮眼也是受到了很多的人的关注,有一部分的漫迷们都想要知道万花筒写轮眼是怎样画的,绘画吧今天就为大家搜罗了一位大神!来看看大神是怎样画万花筒写轮眼的吧!漫画《火影忍者》中的一种瞳术,六道仙人长子因陀罗的后裔宇智波一族的血继限界, [1]可以通过强烈情绪刺激开眼并不断进化,在经历亲近之人去世之后可进化为万花筒写轮眼。亲兄弟...

weixin_39839410的博客 1094

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 没在路边改过代码的程序员,不足以谈人生
下一篇: Python 中的高级斗技,让函数返回结果的技巧
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值