经典俄罗斯方块块你能打到第几关啊

经典俄罗斯方块块5000是一款画面精媄的休闲小游戏相信大家都玩过经典俄罗斯方块块这款经典游戏,本作基本上延续经典的经典俄罗斯方块块的玩法加入了很多精美的褙景插画,游戏的界面也比较简洁清爽很适合在无聊的时候打发一下时间。

PP助手为您提供最新经典经典俄罗斯方块块下载经典经典俄罗斯方块块安卓手机版免费下载,PP助手让你尽享好玩的手机应用

本帖最后由 柠檬守护 于 14:14 编辑

用python把經典经典俄罗斯方块块实现了一遍找到了些儿时的乐趣。因此突发奇想打算用python写点经典又确实有趣的小程序形成系列。正统编程之余吔给自己找点儿乐趣换个角度写程序。

原计划是写篇完整的博文对程序算法和函数模块做个说明但是在整理程序的时候发现自己给程序加的注释已经相当详细,程序以外的文字显得很多余正所谓大道至简,直接将程序代码贴上来大家就着代码、伴着注解,相信对程序的理解应该很容易

配置文件 elsfk.cfg,定义了单一方向的原始方块形状组合具体的格式说明请参见getConf中的注解。

游戏注解中出现的术语解释:

舞台:整个游戏界面包括堆叠区、成绩等显示区,下个出现方块预告区

堆叠区:游戏方块和活动方块形状堆放区域,游戏中主要互动區

方块(基础方块):这里的方块是对基础的小四方形统称,每个方块就是一个正方形

方块形状:指一组以特定方式组合在一起的方塊,也就是大家常说的下落方块形状比如长条,方形L形等。

固实方块:特指堆叠区中不能再进行移动可被消除的基础方块集合。

变量值以sysInit函数中初始化后的结果为准

blocks=[]       #方块形状矩阵四维列表第一维为不同的方块形状,第二维为每个方块形状不同的方向(以0下标起始┅共四个方向),第三维为Y轴方块形状占用情况第四维为X轴方块形状占用情况。矩阵中0表示没有方块1表示有方块。

stage=[]        #舞台堆叠区矩阵二維列表第一维为Y轴方块占用情况,第二维为X轴方块占用情况矩阵中0表示没有方块,1表示有固实方块2表示有活动方块。

    每个方块以4*4矩陣表示形状配置文件每行代表一个方块,用分号分隔矩阵行用逗号分隔矩阵列,0表示没有方块1表示有方块。

    因为此程序只针对经典俄罗斯方块块的经典版所以方块矩阵大小以硬编码的形式写死为4*4。

    包括pygame环境初始化全局变量赋值,生成每个方块形状的四个方向矩阵

        #因为重新开始游戏时会调用sysinit对系统所有参数重新初始化,为了避免方向矩阵数据重新生成需要在此判断是否已经生成,如果已经生成則跳过

#transform,removeTopBlank,formatBlock这三个函数只为生成方块形状4个方向矩阵使用,在游戏其他环节无作用,在阅读程序时可以先跳过

    生成指定方块形状转换方向后嘚矩阵数据

    整理方块矩阵数据,使方块在矩阵中处于左上角的位置

    #将矩阵右转用于计算左侧X轴线空行,计算完成后再转回

    检查下落方块是否与舞台堆叠区中固实方块发生碰撞

    检测堆叠区是否有可消除的整行固实方块

    根据检测结果重新生成堆叠区矩阵数据,调用updateScore函数更新玩家積分等数据

        #因为固实方块在堆叠矩阵里以2表示,所以判断方块是否已经满一整行只要计算矩阵行数值合计是否等于堆叠区X轴最大方块数*2僦可以

    将下落方块坐标数据更新到堆叠区数据中。下落方块涉及的坐标在堆叠区中用数字1标识固实方块在堆叠区中用数字2标识。

    更新玩家游戏记录包括积分、关卡、消除方块行数,并且根据关卡数更新方块下落速度

    #绘制堆叠区内的所有方块,包括下落方块形状

    #绘制關卡、积分、当前关卡消除整行数

        #每次生成新的下落方块形状时检测碰撞如果新的方块形状一出现就发生碰撞,则显然玩家已经没有机會了

    对于下落方块形状操控以及移动,采用影子形状进行预判断如果没有碰撞则将变化应用到下落方块形状上,否则不变化

    第一部汾,将退出、暂停、重新开始以及形状变换的操作以敲击事件处理

    这样做的好处是只对敲击一次键盘做出处理,避免用户按住单一按键後程序反复处理影响操控特别是形状变换操作,敲击一次键盘换变一次方向玩家很容易控制。

        由于连续移动的速度太快不利于定位。所以在程序中采用了简单的输入减缓处理即通过keyBuff保存上一次操作按键,如果此次按键与上一次按键相同则跳过此轮按键处理。



0

参考资料

 

随机推荐