Pytris (Python, dan63047, 2021)

来自俄罗斯方块中文维基
Pytris
开发 dan63047
游戏平台 Python(Pygame)
发行时间 2021年5月23日
最新版本 第五轮提交(2022年1月20日)
游戏信息
预览块数 1(经典)
4(现代)
场地大小 10 × 20 +20
暂存(现代)
硬降(现代)
旋转系统 右手 NRS·仿(经典)
SRS(现代)
Pytris (Python, dan63047, 2022) title.png
Pytris (Python, dan63047, 2022) ingame.png

Pytris 是一个 Python 四连方块游戏。
该游戏模拟经典 NES 和现代 SRS 方块的规则,提供四个模式。

玩法

规则二选一(经典 NES、现代 SRS),模式四选一。
模式一:无尽生存(0–30 级)。
模式二:限时游戏(2/3/5/10/30/60/1440 分钟)。
模式三:消足行数(40/80/120/150/300/500/1000 行)。
模式四:人机对战(第五版本 AI 已做但未启用)。
模式五:人机比分(第五版本尚未启用)。

死亡判定:新方块入场时,有砖格紧贴任一方格的右侧。[注 1]

经典

软降每格 1 分。
底分:消一 40 分,消二 100 分,消三 300 分,消四 1200 分。
消行得分 = 底分 × (等级 + 1),括号内的翻倍数最大取到 30。
开局 0 级,重力和升级情况都和 Tetris (NES, Nintendo) 一样。
经典模式专门显示消四相关行数在总消行数中的构成比。

现代

1 2 3 4 T0 T1 T2 T3
 底分  100 300 500 800 400 800  1200  1600
攻击 0 1 2 4 0 2 4 6
 1 全清  2 全清   3 全清   4 全清   Mini T0   Mini T1   Mini T2  B2B[注 2]
底分 800 1200 1800 2000 100 200 400  ×1.5[注 3]
攻击 10 11 12 14 0 0 1 +1
连击底分 = N × 50,连击攻击 = int(N / 3) + 1,软降每格 1 分,硬降每格 2 分

开局 1 级,每消十行升一级,消行得分 = 底分 × 等级。
重力 G = 0.016666 / (0.8 - ((等级 - 1) × 0.007))(等级 - 1)(最大取到 20)。
现代模式专门显示 PPS

操作

左右键横移,Z 逆时针旋转,X 或上键顺时针旋转,下键软降,空格键硬降,C 暂存。
横移和软降可以叠加长按,可跨块,中间可插入其他单点操作。
经典规则参数:DAS = 0.267 秒,ARR = 0.1 秒。
现代规则参数:DAS = 0.167 秒,ARR = 0.033 秒。
锁定延迟参数:前二十级 = 30 帧,后十级 = (90 - 等级 × 3) 帧。
P 暂停,R 重开。[注 4]
主界面操作:上下左右、回车键。

方块环境配置

经典:仿右手 NRS[注 5] + 无踢墙 + 无硬降 + 不重置锁定延迟 + 1 Next + 近 43 亿序列种子[注 6]
现代:SRS + 配套踢墙 + 标准入场位置[注 7] + 硬降 + 15 次运动重置锁定延迟 + 4 Next + 7-Bag + 暂存块 + 阴影块

方块全是 SRS 配色,其中阴影块使用 Tetris (Game Boy) 的 J/S 块风格。
T-Spin 使用三角判定法,Mini 多两个判定条件:角空和尖格相邻,踢墙偏移值不是第五项。

注释

  1. 例一:方块入场时,各行仅最左格和方块堆重叠,不会死。
    例二:c4w 的方块堆占据 (8,21) 这一格后,I 入场瞬间死亡。
  2. 不消行,就没有加成
  3. 唯一例外:B2B4 全清是 ×1.6
  4. 这两个键也可长按
  5. 和右手 NRS 有两点区别:OJLTSZ 碰撞箱入场位置偏高两行、偏左一列,SZ 横状态在碰撞箱内高一格。
  6. seed = random.randint(-2147483648, 2147483647)
  7. 第 21、22 行最中间的 4×2 区域

外链