Pytris (Python, Matt Berk, 2018)
{{#html:MathJax}}
Pytris | |
---|---|
开发 | Matt Berk |
游戏平台 | Python(Pygame、enum) |
发行时间 | 2018年7月6日 |
游戏信息 | |
预览块数 | 1 |
场地大小 | 10 × 20 +1 |
暂存块 | 无 |
硬降 | 无 |
旋转系统 | ARS(无“JLT 卡中”) |
| |
| |
|
Pytris 是一款 Python 四连方块游戏。
该游戏在 Python 环境下模拟了 TGM1,通称 Pytris TGM。
该游戏没有模拟出段位,但游戏核心流程的多数细节都模拟成功了。
该游戏最大的模拟欠缺在于锁定延迟在后期无法恢复,后期很难。
玩法
TGM1。
有分数和进度,没有段位和计时。
操作
左右键横移,下键软降和锁定,Z 和 C 逆时针旋转,X 顺时针旋转。
横移和软降可以叠加长按,旋转键只能单点,有伪[注 1] IRS。
DAS 14 帧,ARR 1 帧,ARE 30 帧。
锁定延迟 30 帧,消行延迟 41 帧。
锁定延迟机制:
一、方块自然接地后,先把重力对应的自动降落间隔帧数跑完一次。
二、如果这个帧数跑完时方块仍然接地,导致下移失败,锁定延迟开始计时。
三、锁定延迟的 30 帧跑完后,方块自然锁定。
亦即,在后期的巨大重力环境下,每个方块只有 31 帧得不到恢复的锁定延迟。
另外,在方块接地时按下键,方块会直接变成“已锁定”状态。
方块环境配置
七种方块使用 ARS 配色。
旋转状态相关信息可参照 Arika 旋转系统条目第二章。
Pytris (Python, Matt Berk, 2018) 有一格的左右踢墙。
其他说明
安装和运行
第一步:在 Git 下载并安装 Git
第二步:在命令行执行指令 git clone https://github.com/mpberk/pytris_tgm.git 完成克隆[注 2]
第三步:执行指令 cd ./pytris_tgm 跳转至克隆好的 pytris_tgm 目录
第四步:执行指令 pip install -e . 完成仓库安装
第五步:至此,再运行 pytris_tgm_display_pygame.py,游戏就会成功运行(需要 Pygame 模块)
成功模拟的细节
一、TGM1 随机器:历史 = 4,开局 = ZZZZ,第一块移除 S、Z、O。
二、进度:每块 +1,消 n 行 +n,小节进度到达 99 时必须消行突破。
三、Level 0–500 的重力变化情况:
gravityLevels = [0,30,35,40,50,60,70,80,90,100,120,140,160,170,200,220,230,233,236,239,243,247,251,300,330,360,400,420,450,500] gravityInteral = [4,6,8,10,12,16,32,48,64,80,96,112,128,144,4,32,64,96,128,160,192,224,256,512,768,1024,1280,1024,768,5120]
四、踢墙顺序:先原位,再右一,最后左一,三者都不成,则旋转失败。
五、连击计数公式和得分公式:
$$self.combo += 2 * linesCleared - 2$$
$$self.score += (ceil((self.level + linesCleared)/4) + self.soft) * linesCleared * self.combo * bravo$$
模拟欠缺之处
一、最后的卡 99 是 999 而不是 998。
二、踢墙特性也赋予给了 I 块,而 TGM 原作的 I 没有踢墙。
|
|
左图的 J 顺时针旋转会得到右图,而在 TGM 原作中这个 J 是转不动的。 |
三、没有模拟出 JLT 的“卡中”特性(见上图)。
四、锁定延迟在后期无法恢复。
五、提前长按横移并不能使新入场方块提前跑完 14 帧的 DAS 积蓄阶段(这进一步加大了后期的难度)。
六、该游戏的场地内绘有网格线,而 TGM 系列则没有。