偏移旋转系统

来自俄罗斯方块中文维基
主条目:Techmino

偏移旋转系统(Bias Rotation System,简称 BiRS,又译偏心旋转系统)是 Techmino 的原创旋转系统,基于 Tetris-ex 的 XRS 与 SRS 设计。

该旋转系统的设计思路是“指哪打哪”,当玩家按下左移/右移/软降,且在对应方向顶住了墙时,会在旋转时先朝对应方向偏移一格(左移/右移和软降可以叠加),再应用基础踢墙表。

踢墙表

BiRS 只有三个基础踢墙表,分别命名为 R、L、F,如下所示(数字与字母代表踢墙检测顺序,0 代表原位旋转,a、b、c、d 分别代表 10、11、12、13):

R
Tet.pngYaTet.png9Tet.pngYbTet.pngTet.png
Tet.png4Tet.png7Tet.png8Tet.pngTet.png
YcTet.png1Tet.png0Tet.png6Tet.pngYdTet.png
Tet.png2Tet.png3Tet.png5Tet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.png
L
Tet.pngYbTet.png9Tet.pngYaTet.pngTet.png
Tet.png8Tet.png7Tet.png4Tet.pngTet.png
YdTet.png6Tet.png0Tet.png1Tet.pngYcTet.png
Tet.png5Tet.png3Tet.png2Tet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.png
F
Tet.pngTet.png3Tet.pngTet.pngTet.png
Tet.pngTet.png2Tet.pngTet.pngTet.png
Tet.pngTet.png0Tet.pngTet.pngTet.png
Tet.pngTet.png1Tet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.png

所有方块使用的踢墙表如下表所示:

顺时针踢墙表
方块 0->R R->2 2->L L->0
Z R R R R
S R R R R
J R R R R
L R R R R
T R R R R
O L L L L
I R R R R
Z5 R R R R
S5 R R R R
P R R R R
Q R R R R
F R R R R
E R R R R
T5 R R R R
U R R R R
V R R R R
W L L L R
X L L L L
J5 R R R R
L5 R R R R
R R R R R
Y R R R R
N R R R R
H R R R R
I5 R R R R
I3 R R R R
C R R R R
I2 R R R R
O1 R R R R
逆时针踢墙表
方块 0->L L->2 2->R R->0
Z L L L L
S L L L L
J L L L L
L L L L L
T L L L L
O R R R R
I L L L L
Z5 L L L L
S5 L L L L
P L L L L
Q L L L L
F L L L L
E L L L L
T5 L L L L
U L L L L
V L L L L
W L R R R
X R R R R
J5 L L L L
L5 L L L L
R L L L L
Y L L L L
N L L L L
H L L L L
I5 L L L L
I3 L L L L
C L L L L
I2 L L L L
O1 L L L L
180° 踢墙表
方块 0->2 2->0 1->3 3->1
Z L R R L
S R L R L
J L R L R
L R L L R
T F F L R
O F F F F
I F F R L
Z5 L L R R
S5 R R L L
P L R L R
Q R L L R
F R L R L
E L R R L
T5 F F L R
U F F L R
V R L L R
W R L R L
X F F F F
J5 L R L R
L5 R L L R
R L R L R
Y R L L R
N L R R L
H R L R L
I5 F F F F
I3 F F F F
C R L L R
I2 F F R L
O1 F F F F

旋转规则

BiRS 依以下规则选择踢墙:

  1. 根据方块的朝向和旋转方向,依上表选择基础踢墙表。方块会先按照按键对应的方向偏移,再应用位移值。
  2. 按以下规则从踢墙表内选择位移值:
    1. 额外偏移值和最终位移值的水平分量不得相反;
    2. 位移值的欧氏距离不得超过根号 5。
  3. 如果踢墙失败,则取消水平方向的偏移重试,若仍失败,再取消向下的偏移重试。

概括一下,就是方块会尽量朝着玩家按下的方向键的方向踢墙,且不会踢到过远的位置。

示例

Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngGGTTet.pngTet.pngTet.pngTet.pngTet.png
GGGTTTTet.pngTet.pngTet.pngTet.png
GGGTet.pngGGGGGG
GGGTet.pngTet.pngGGGGG
GGGTet.pngGGGGGG

T3 地形

Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngGGTTTet.pngTet.pngTet.pngTet.png
GGGTet.pngTTet.pngTet.pngTet.pngTet.pngTet.png
GGGTet.pngGGGGGG
GGGTet.pngTet.pngGGGGG
GGGTet.pngGGGGGG

直接旋转会弹出

Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngGGTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
GGGTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
GGGTGGGGGG
GGGTTGGGGG
GGGTGGGGGG

按住软降才能旋入

原理:

没有按着软降的时候,不应用偏移,此处为T 0->R,取 R 表,R 表显然没有 T3 踢墙,方块向上弹出。
按着软降时,T 块则在旋转时先向下位移了一格。此时 R 表的 2 号踢墙(-1,-1),与软降的偏移叠加,就变成(-1,-2),旋转成功。


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.pngTet.pngTGGGGG
Tet.pngTet.pngTet.pngTTTGGGG
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTTGGGGG
Tet.pngTet.pngTet.pngTTet.pngTet.pngGGGG

按着右移顺时针
旋转,弹出

原理:

由于按着右移,会应用向右的偏移,由于最终位移的水平方向不能和偏移值相反,无论如何都是踢墙失败。
取消水平偏移后,按照正常的 R 表查找踢墙,最终弹出。


Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngOOGTet.pngTet.pngTet.png
GGGGOOTet.pngGGG
GGGGGTet.pngTet.pngGGG
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngGTet.pngTet.pngTet.png
GGGGTet.pngOOGGG
GGGGGOOGGG

按着右移任意
旋转,均可旋入

原理:

按着右移,应用向右的偏移( 1, 0),不论哪个基础表都会先取到( 0,-1),最终位移值为( 1,-1) ,旋转成功。
按着右移和软降也可以,此时位移叠加变成( 1,-1),“原位”旋转即旋转成功。


Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngOOTet.pngTet.pngTet.pngTet.png
GGGGOOGGGG
GGGGGTet.pngTet.pngGGG
GGGGGTet.pngTet.pngGGG
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
Tet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.pngTet.png
GGGGTet.pngTet.pngGGGG
GGGGGOOGGG
GGGGGOOGGG

按着软降
顺时针旋转旋入

原理:

软降产生( 0,-1)的偏移值,和 R 表的( 1,-1)叠加变成( 1,-2),旋转成功。
也可以使用 180°旋转,但必须同时按着右移和软降。

参见

外链