
Python连连看
文章平均质量分 68
棉猴
这个作者很懒,什么都没留下…
展开
-
Python实现连连看12
如果返回值是NONE_LINK,则说明选中的两张图片没有处于连通状态,此时将第一次点击的标志设置为True,然后删除第一张图片的红框标识,让玩家重新选择。其中,第1行代码显示了delLinkedPic()函数的四个参数,前两个参数表示第一张图片所在行号和列号,后两个参数表示第二张图片所在的行号和列号;如果两次选中的不是同一张图片,则调用“4.2.5 获取图片连接方式”中提到的getLinkType()判断两张图片的连通状态,代码如下所示。之后,根据linktype的值进行后续处理,代码如下所示。原创 2024-06-17 16:23:04 · 420 阅读 · 0 评论 -
Python实现连连看11
第1行中的else与之前的if配对,如果两张图片在地图内部时(图15红绿色图片),如果这两张图片是双拐点连通,必须满足的条件是(1)第一次选中的图片与第一个拐点是直接连通(2)第二次选中的图片与第二个拐点是直接连通(3)两个拐点间是直接连通(4)第一张图片与第一个拐点间没有图片遮挡(5)第二张图片与第二个拐点间没有图片遮挡。与判断单拐点连通类似,两张图片是双拐点连通的条件是,这两个拐点分别与两张图片是直接连通,并且这两个拐点之间也是直接连通即可,如图15和图16所示。图15 判断双拐点的方式(1)原创 2024-06-17 15:45:22 · 463 阅读 · 0 评论 -
Python实现连连看10
第2行的if语句判断本次点击图片的行号与列号是否与第一次点击的图片相同,如果相同,则通过canvas调用delete()方法删除调用之前绘制的红框,delete()方法的参数为之前绘制红框的标签,即“(3)实现图片标识”代码中create_rectangle()方法的tags参数;当玩家第二次点击图片时,如果与第一次点击的图片不同,接下来就要判断两次选择的图片是否连通,如果连通,表示玩家选择是对的,在图片地图中删除这两张图片;如果没有连通,表示玩家选择错误,删除第一张图片的标识,并且在标识第二张图片。原创 2024-06-17 15:40:37 · 800 阅读 · 1 评论 -
Python实现连连看9
第6行代码通过canvas调用create_rectangle()方法画矩形,该方法的前四个参数分别标识所画矩形左上角和右下角的横纵坐标,outline参数指定了矩形的颜色,width参数指定了画线的粗细程度,tags参数指定了该矩形的标签,此标签在消除用户选中的图片时会用到。在“3.2 显示图片”中提到,游戏进行中,如果图片被玩家消除掉,则该图片在图片地图中对应位置的值就设置为MAP_EMPTY,如果该图片已经被消除,则无需将其标识出来。通过自定函数drawRect()实现图片标识,代码如下所示。原创 2024-06-07 11:48:06 · 544 阅读 · 0 评论 -
Python实现连连看8
当玩家在游戏界面中点击了鼠标左键,游戏就会调用自定义函数clickCanvas()。如果玩家是第一次点击鼠标,则用红框将选中的图片标识出来;如果玩家是第二次点击鼠标,则判断两次点击的图片能否消除。原创 2024-06-07 11:42:10 · 584 阅读 · 0 评论 -
Python实现连连看7
第9行中的MAP_EMPTY是自定义的变量,在游戏进行中,如果图片被玩家消除掉,则该图片在图片地图中对应位置的值就设置为MAP_EMPTY,当发现图片地图中的元素是MAP_EMPTY时,表示该图片已经被消除掉,因此可以不用显示该图片;tags参数指定了显示的每个图片的标签,以“imXY”的格式表示,其中X和Y表示图片所在的行数和列数,图片的标签在消除图片时会用到。在清理了画布中的内容之后,通过两个for循环遍历图片地图中的元素,根据元素显示图片,代码如下所示。图8 要显示图片的位置。原创 2024-06-06 11:27:01 · 786 阅读 · 0 评论 -
Python实现连连看6
其中,变量j即为从map_temp中随机取出的元素下标值,因为每取一次,map_temp中的元素就会少1个,因此第i次取元素时,map_temp中的元素个数为ROW_PIC*COL_PIC-i个,因此j的范围是0-ROW_PIC*COL_PIC-i-1。map_1D中保存的就是随机打散的100个元素。图2所示的界面实际上可以看成是一个10×10的二维数组,数组中的每个国旗图片对应一个0-24中的一个值,所以每个值应该有10×10÷(1+24)=4个,也就是该100个国旗中有25种国旗,每种国旗有4个。原创 2024-06-04 17:29:29 · 664 阅读 · 0 评论 -
Python实现连连看5
PIL是Python Imaging Library即Python图像库的简称,是一个强大的图像处理库,提供了丰富的图像处理功能。它支持图像的打开、保存、缩放、旋转、裁剪、滤镜等功能。PIL库提供了Image模块和ImageTK模块,通过Image模块导入图像文件,之后再通过ImageTK模块将导入的图像转换为tkinter中可用的PhotoImage对象,从而可以在tkinter窗口中显示和操作图像。原创 2024-06-04 17:25:33 · 482 阅读 · 0 评论 -
Python实现连连看4
其中,music_menu即为创建的子菜单,通过add_command()方法将“音乐开”和“音乐关”两项添加到子菜单中,当玩家点击了“音乐开”时,会调用自定义函数music_on;复合菜单项即为图4和图5所示的“新游戏”项和“音乐”项,包含了子菜单,当点击该项时,会弹出响应的子菜单。添加复合菜单项时,首先创建该复合菜单的子菜单,接下来将该子菜单与工具栏菜单关联。关联子菜单与工具栏菜单的详细描述请参考《以创建图5所示的“音乐”项为例,该项的子菜单包含了“音乐开”和“音乐关”两项,其代码如下所示。原创 2024-06-04 11:44:09 · 711 阅读 · 0 评论 -
Python实现连连看3
其中,menubar即为“2.1 工具栏菜单的创建”中创建的工具栏菜单。当点击了添加的菜单项后,会调用自定义函数hint(),该函数的作用是在游戏中给出提示,后续会描述该函数的代码。其中菜单项“新游戏”和“音乐”为复合菜单,即包含了子菜单,如图5和图6所示。其中,menubar是创建好的工具栏菜单。设置工具栏菜单的步骤为首先创建工具栏菜单,之后添加工具栏菜单项。为工具栏菜单添加菜单项,可分为添加单一菜单项和复合菜单项两种。单一菜单项中不包含子菜单,如图4中的“提示”项,代码如下所示。图5 “新游戏”菜单。原创 2024-06-04 11:35:35 · 393 阅读 · 0 评论 -
Python实现连连看2
其中,'res/start.png'是图片的路径。在在窗口上铺设画布的详细描述请参考。其中,root是创建的游戏窗口。在画布中显示图片的详细描述请参考。在画布中显示图片的详细描述请参考。通过以下代码在画布上显示图片。通过以下代码在画布中显示文字。通过以下代码在窗口上铺设画布。1.3.4 在窗口上铺设画布。以上提到的完整代码如下所示。铺设画布的详细描述请参考。通过以下代码创建画布。原创 2024-06-03 09:27:42 · 255 阅读 · 0 评论 -
Python实现连连看1
通过使用Python的tkinter实现连连看,其启动界面如图1所示。图1 连连看启动界面游戏开始的界面如图2所示。图2 游戏界面。原创 2024-06-03 09:21:50 · 775 阅读 · 1 评论