Pygame实现记忆拼图游戏8

《Pygame实现记忆拼图游戏7》中,实现了游戏启动后,显示70个图案背面的功能。游戏启动后,会为玩家分组显示70个图案,玩家要在很短的时间内尽量多地记住相同图案的位置,因为之后显示的图案又会遮住,如图1所示。

图1 游戏启动界面

在startGameAnimation()函数中实现上述功能。

1 将70个图案进行随机分组

从图1中可以看出,游戏启动后,每次显示8个图案,最后一次显示剩下的6个图案。因此,首先对70个图案进行随机分组,分成9个组,其中前八个组每组8个图案,最后一组6个图案。将70个图案进行随机分组主要分为两个步骤:第一步是先将图案进行随机排列,第二步是对随机排列的图案进行分组。

1.1 将70个图案随机排列

每个图案用其所在的列数和行数表示,行数和列数组成一个元组,每个元组代码一个图案。在startGameAnimation()函数中,将70个图案随机排列的代码如图2所示。

图2 将70个图案随机排列的代码

其中,第50行代码定义了一个空列表boxes,该列表中将包含随机排列后的图案行列数;第51-53行代码通过两个for循环创建了70个图案的行列数,并将其添加到boxes中;最后第54行代码通过random.shuffle()使boxes中图案随机排列。使用调试代码可以看到随机后的boxes值,如图3所示。

图3 随机后的boxes值

其中,boxes中由70个元组组成,每个元组的第一个元素表示图案的列数,第二个元素表示图案的行数。此时的boxes已经进行了随机化。

1.2 对随机排列的图案进行分组

在得到了70个随机排列的图案行列数之后,对其进行分组,通过自定义函数splitIntoGroupsOf()实现。该函数的代码如图4所示。

图4 splitIntoGroupsOf()函数的代码

其中,splitIntoGroupsOf()的第一个参数表示每组包含的图案数,第二个参数表示要分组的图案列表;第57行代码定义的空列表result用于保存分组之后的图案行列数;第58-59行代码通过for循环对列表进行分组,并把每一组的图案都添加到result中。

在startGameAnimation()函数中调用splitIntoGroupsOf()的代码如图5所示。

图5 调用splitIntoGroupsOf()的代码

其中,8表示每组8个图案,boxes是图2中生成的图案列表,变量boxGroups保存了分组之后的图案,通过调试代码可以显示boxGroups的值,如图6所示。

图6 boxGroups的值

其中,boxGroups被分成了9个组,每一行为一个组中包含的图案,一共8个,最后一组包含6个图案。对比图3可以看出,图6中显示的值就是图3中值的分组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值