Pytris (Python, Matt Berk, 2018)

来自俄罗斯方块中文维基

{{#html:MathJax}}

Pytris
开发 Matt Berk
游戏平台 Python(Pygame、enum)
发行时间 2018年7月6日
游戏信息
预览块数 1
场地大小 10 × 20 +1
暂存块
硬降
旋转系统 ARS(无“JLT 卡中”)
[[文件:|125px]]
Pytris (Python, Matt Berk, 2018) ingame.png

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 没有踢墙。

Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngAJAJAJTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngGAJTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngAJTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngAJTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngAJAJGTet.pngTet.pngTet.pngTet.pngTet.png
左图的 J 顺时针旋转会得到右图,而在 TGM 原作中这个 J 是转不动的。

三、没有模拟出 JLT 的“卡中”特性(见上图)。
四、锁定延迟在后期无法恢复。
五、提前长按横移并不能使新入场方块提前跑完 14 帧的 DAS 积蓄阶段(这进一步加大了后期的难度)。
六、该游戏的场地内绘有网格线,而 TGM 系列则没有。

注释

  1. 方块是先入场再旋转,而不是以旋转后的朝向入场
  2. 包含了仓库信息,必须用 Git 克隆,单纯下载无效

外链