User:Arcorann/Rotation: Difference between revisions
No edit summary |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 943: | Line 943: | ||
Note that when the I is vertical, Test 2 maps the piece onto itself and thus this is in fact the only kick possible. | Note that when the I is vertical, Test 2 maps the piece onto itself and thus this is in fact the only kick possible. | ||
==== Reduced tables ==== | |||
This is why official SRS is fundamentally incompatible with 180 degree rotations. | |||
{| border="1" cellspacing="0" | |||
|+'''J, L, S, T, Z Tetromino Wall Kick Data (reduced)''' | |||
|- align = center | |||
! width="45"| | |||
! bgcolor="#80A3F8" width="60"|Test 1 | |||
! bgcolor="#80A3F8" width="60"|Test 2 | |||
|- align = center | |||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>(-2, 0)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>(+2, 0)</tt> | |||
|} | |||
{| border="1" cellspacing="0" | |||
|+'''I Tetromino Wall Kick Data (reduced)''' | |||
|- align = center | |||
! width="45"| | |||
! bgcolor="#80A3F8" width="60"|Test 1 | |||
! bgcolor="#80A3F8" width="60"|Test 2 | |||
! bgcolor="#80A3F8" width="60"|Test 3 | |||
! bgcolor="#80A3F8" width="60"|Test 4 | |||
! bgcolor="#80A3F8" width="60"|Test 5 | |||
|- align = center | |||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(-3, 0)</tt>||<tt>(+3, 0)</tt>||<tt>(-3,+1)</tt>||<tt>(+3,+1)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt>||<tt>(+3, 0)</tt>||<tt>(-3, 0)</tt>||<tt>(+3,-1)</tt>||<tt>(-3,-1)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt> | |||
|} | |||
=== SRS-X === | === SRS-X === | ||
Compare the rotations in SRS-X from Heboris UE. Note that the code specifies down as positive; this has been adjusted for this table. | Compare the rotations in SRS-X from Heboris UE. Note that the code specifies down as positive; this has been adjusted for this table. Note also that the game numbers states as 0, 1, 2, 3 while in the table we have 0, R, 2, L (compare u, r, d, l above, or TTC's N, E, S, W). | ||
{| border="1" cellspacing="0" | {| border="1" cellspacing="0" | ||
Line 965: | Line 1,004: | ||
! bgcolor="#80A3F8" width="60"|Test 12 | ! bgcolor="#80A3F8" width="60"|Test 12 | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>(+1,-1)</tt>||<tt>(+2,-1)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(-1,-1)</tt>||<tt>(-2,-1)</tt>||<tt>( 0,+1)</tt>||<tt>( 3, 0)</tt>||<tt>(-3, 0)</tt> | | bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>(+1,-1)</tt>||<tt>(+2,-1)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(-1,-1)</tt>||<tt>(-2,-1)</tt>||<tt>( 0,+1)</tt>||<tt>(+3, 0)</tt>||<tt>(-3, 0)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(-1,+1)</tt>||<tt>(-2,+1)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>(+1,+1)</tt>||<tt>(+2,+1)</tt>||<tt>( 0,-1)</tt>||<tt>(-3, 0)</tt>||<tt>(+3, 0)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,-2)</tt>||<tt>(+1,-1)</tt>||<tt>(+1,-2)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>(+1,+1)</tt>||<tt>(+1,+2)</tt>||<tt>(-1, 0)</tt>||<tt>( 0,-3)</tt>||<tt>( 0,+3)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,-2)</tt>||<tt>(-1,-1)</tt>||<tt>(-1,-2)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>(-1,+1)</tt>||<tt>(-1,+2)</tt>||<tt>(+1, 0)</tt>||<tt>( 0,-3)</tt>||<tt>( 0,+3)</tt> | ||
|} | |} | ||
Line 985: | Line 1,024: | ||
! bgcolor="#80A3F8" width="60"|Test 6 | ! bgcolor="#80A3F8" width="60"|Test 6 | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>( 0, | | bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>( 0,-1)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>( 0,+1)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,-2)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>(+1, 0)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,-2)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>(-1, 0)</tt> | ||
|} | |} | ||
Line 1,012: | Line 1,051: | ||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(-1, 0)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,-2)</tt> | | bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(-1, 0)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,-2)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(+1, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,-2)</tt>||<tt>( 0,+2)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,-2)</tt>||<tt>(+1, 0)</tt>||<tt>(-1, 0)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,-2)</tt>||<tt>(-1, 0)</tt>||<tt>(+1, 0)</tt> | ||
|} | |} | ||
Line 1,031: | Line 1,070: | ||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt> | | bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+2, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-2, 0)</tt> | ||
|- align = center | |||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,-2)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>( 0,+1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,-2)</tt> | |||
|} | |||
=== Tetr.io === | |||
{| border="1" cellspacing="0" | |||
|+'''J, L, S, T, Z Tetromino Wall Kick Data''' | |||
|- align = center | |||
! width="45"| | |||
! bgcolor="#80A3F8" width="60"|Test 1 | |||
! bgcolor="#80A3F8" width="60"|Test 2 | |||
! bgcolor="#80A3F8" width="60"|Test 3 | |||
! bgcolor="#80A3F8" width="60"|Test 4 | |||
! bgcolor="#80A3F8" width="60"|Test 5 | |||
! bgcolor="#80A3F8" width="60"|Test 6 | |||
|- align = center | |||
| bgcolor="#80A3F8"|0->2||<tt>( 0, 0)</tt>||<tt>( 0,+1)</tt>||<tt>(+1,+1)</tt>||<tt>(-1,+1)</tt>||<tt>(+1, 0)</tt>||<tt>(-1, 0)</tt> | |||
|- align = center | |||
| bgcolor="#80A3F8"|2->0||<tt>( 0, 0)</tt>||<tt>( 0,-1)</tt>||<tt>(-1,-1)</tt>||<tt>(+1,-1)</tt>||<tt>(-1, 0)</tt>||<tt>(+1, 0)</tt> | |||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|L->R||<tt>( 0, 0)</tt>||<tt>(-1, 0)</tt>||<tt>(-1,+2)</tt>||<tt>(-1,+1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,+1)</tt> | ||
|- align = center | |- align = center | ||
| bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt> | | bgcolor="#80A3F8"|R->L||<tt>( 0, 0)</tt>||<tt>(+1, 0)</tt>||<tt>(+1,+2)</tt>||<tt>(+1,+1)</tt>||<tt>( 0,+2)</tt>||<tt>( 0,+1)</tt> | ||
|} | |} |
Latest revision as of 03:23, 1 October 2023
I
Rotation type | Notable usage | Diagram | |||||||
---|---|---|---|---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 | ||||||
2-state, upper-right | Original Rotation System, Sega Rotation | ||||||||
2-state, lower-right | Tetris (NES, Nintendo) | ||||||||
2-state, lower-left | Tetris (Game Boy) Tetris (Famicom) |
||||||||
2-state, upper-left | Magical Tetris Challenge | ||||||||
4-state | BPS, SRS |
J
Rotation type | Notable usage | Diagram | |||||||
---|---|---|---|---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 | ||||||
Centre | SRS and related systems | ||||||||
Bottom | Sega and related systems | ||||||||
Outside | Magical Tetris Challenge | ||||||||
2 by 2 |
L
Rotation type | Notable usage | Diagram | |||||||
---|---|---|---|---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 | ||||||
Centre | SRS/related |
O
Rotation type | Notable usage | Diagram | |||||||
---|---|---|---|---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 | ||||||
1-state | Almost everything | ||||||||
4-state, offset | Tetris 64 (with Rotation Center turned on) |
S
Rotation type | Notable usage | Diagram | |||
---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 |
T
Rotation type | Notable usage | Diagram | |||||||
---|---|---|---|---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 | ||||||
Centre | BPS, SRS | ||||||||
Bottom | Sega | ||||||||
Outside |
Z
Rotation type | Notable usage | Diagram | |||
---|---|---|---|---|---|
State 1 | State 2 | State 3 | State 4 |
Rotations by game
Game | Directions | I | J | L | O | S | T | Z | Kicks? | Code |
---|---|---|---|---|---|---|---|---|---|---|
Original Rotation System Tetris (ZX Spectrum, V.A. Baliasov) |
CCW | UR (h) | Centre (d) | Centre (d) | 1-state | LR (h) | Centre (d) | LR (h) | No | O-85 |
Tetris (ZX Spectrum, Andic Software) | CW | Centre (u) | Centre (r) | Centre (l) | 1-state | LR (v) | Centre (l) | LL (v) | ||
Tetris (Mirrorsoft)#ZX_Spectrum_Version | CCW | UL (h) | Centre (u) | Centre (u) | 1-state | UL (h) | Centre (u) | UL (h) | ||
Tetris (PC, Spectrum HoloByte) | CCW | UR (h) | Bottom (d) | Bottom (d) | 1-state | LR (h) | Centre (d) | LR (h) | No | H-88 |
Aint | CW | Propeller (l) | Centre (d) | Centre (d) | 1-state | Centre (l) | Centre (d) | Centre (l) | ||
EGAint | Both | Propeller (l) | Centre (d) | Centre (d) | 1-state | Centre (l) | Centre (d) | Centre (l) | ||
The Son of Tetris Project | CCW | UL (h) | UL (d) | UL (d) | 1-state | UL (h) | Centre (d) | UL (h) | ||
Sega Rotation | CCW | UR (h) | Bottom (d) | Bottom (d) | 1-state | LL (h) | Bottom (d) | LR (h) | No | S-88 |
Tetris (Atari) | CCW | TL (h) | UL (d) | UL (d) | 1-state | UL (h) | UL (d) | UL (h) | Yes | A-88 |
Vs. Tetris | Both | TL (h) | UL (d) | UL (d) | 1-state | UL (h) | UL (d) | UL (h) | Yes | A-88 |
Tetris (BPS) Tetris (Famicom) |
CCW | LL (*) | Centre (*) | Centre (*) | 1-state | LR (*) | Centre (*) | LR (*) | No | F-88 |
Tetris (NES, Tengen) | Both | TL (h) | UL (d) | UL (d) | 1-state | UL (h) | UL (d) | UL (h) | Yes | A-88 |
Tetris (Mega Drive) | Both | UR (h) | Bottom (d) | Bottom (d) | 1-state | LL (h) | Bottom (d) | LR (h) | No | S-88 |
Tetris (Game Boy) | Both | LL (h) | Centre (d) | Centre (d) | 1-state | LL (h) | Centre (d) | LL (h) | No | G-89 |
Tetris (NES, Nintendo) | Both | LR (h) | Centre (d) | Centre (d) | 1-state | LR (h) | Centre (d) | LR (h) | No | N-89 |
Tetris (Microsoft Entertainment Pack for Windows) | CCW | DownwardR (h) | Centre (d) | Centre (d) | 1-state | UR (h) | Centre (d) | UL (h) | W-90 | |
Super Tetris | CCW | UL (h) | Centre (d) | Centre (d) | 1-state | UL (h) | Centre (d) | UL (h) | M-91 | |
Tetris 2 + Bombliss | Both | Centre (u) | Centre (d) | Centre (d) | 1-state | Centre (d) | Centre (d) | Centre (d) | No | B-91 |
Tetris Classic | Both (buggy) | UR (h) | Bottom (d) | Bottom (d) | 1-state | LR (h) | Centre (d) | LR (h) | No | H-88 |
Tetris Battle Gaiden | Both | Centre-Rev (d) | Centre (u) | Centre (u) | 1-state | Centre (d) | Centre (u) | Centre (d) | No | B-93 |
Super Tetris 3 | Both | Centre (u) | Centre (u) | Centre (u) | 1-state | Centre (d) | Centre (u) | Centre (d) | No | B-94 |
Tetris X Tetris 4D |
Both | Centre-Rev (d) | Centre (u) | Centre (u) | 1-state | Centre (u) | Centre (u) | Centre (u) | No | |
Tetris DX | Both | Centre (u) | Centre (d) | Centre (d) | 1-state | Centre (u) | Centre (d) | Centre (u) | Yes | |
SuperLite 1500 Series: The Tetris | Both | Centre (d) | Centre (u) | Centre (u) | 1-state | Centre (u) | Centre (u) | Centre (u) | Yes | |
SRS | Both | Centre (u) | Centre (u) | Centre (u) | 1-state | Centre (u) | Centre (u) | Centre (u) | Yes | B-A1 |
Tetris 64 (Rotation Center on) | Both | Propeller (l) | Centre (d) | Centre (d) | Offset (ur) | Centre (u) | Centre (d) | Centre (d) | ||
The New Tetris | Both | LL (h) | UR (d) | UL (d) | 1-state | UR (h) | Centre (u) | UL (h) | ||
Magical Tetris Challenge | Both | UL (v) | Outside (l) | Outside (r) | 1-state | Centre (l) | Centre (d) | Centre (r) | ||
Pokémon Tetris | Both | Centre (u) | Centre (d) | Centre (d) | 1-state | Centre (d) | Centre (d) | Centre (d) | B*-81 | |
Face to Face | CCW | UR (h) | Centre (d) | Centre (d) | 1-state | UL (h) | Centre (d) | UL (h) | ||
Yet Another Tetris | Both | Centre (*) | Centre (*) | Centre (*) | 1-state | Centre (*) | Centre (*) | Centre (*) | ||
Zentris | Selectable | UL (v) | LR (l) | LR (r) | 1-state | LR (v) | LR (d) | LR (v) | No | |
Klotz | CCW | UR (h) | Centre | Centre | 1-state | LL (h) | Centre | UL (h) | ||
Emlith | Selectable | LL (v) | Centre (l) | Centre (r) | 1-state | LR (v) | Centre (r) | LR (v) | Yes | |
Wintris | CCW | Centre-Rev (*) | Outside (*) | Outside (*) | 1-state | LR (*) | Outside (*) | LR (*) | ||
Tetanus On Drugs (PC ver.) | Both | LL (h) | Centre (d) | Centre (d) | 1-state | LL (h) | Centre (u) | LR (h) | ||
Futilitris | Both | UL (2) | 2 by 2 (right) | 2 by 2 (right) | 1-state | UL (2) | Centre (up) | LR (2) | ||
Craptris | Both | |||||||||
Shirase Rotation System | Both | ... |
Pentomino rotations by game
Reserved.
Shirase Rotation System
A joke rotation system made by Makiki99. Take the wallkick system from SRS, then apply offsets to each of the rotation states. Luckily for us, the offsets are consistent:
State | Offset |
---|---|
Up | 1 left |
Right | 1 up |
Down | 1 right |
Left | 1 down |
ARS kick diagrams
Rotation | Counterclockwise | Clockwise | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Right | Left | Right | Left | |||||||
S, h -> v | ||||||||||
S, v -> h | ||||||||||
Z, h -> v | ||||||||||
Z, v -> h | ||||||||||
L, d | Impossible
|
* |
* |
Impossible
| ||||||
L, l | ||||||||||
L, u | * |
Impossible
|
Impossible
|
Impossible
| ||||||
L, r | ||||||||||
J, d | Impossible
|
* |
Impossible
| |||||||
J, l | ||||||||||
J, u | Impossible
|
Impossible
|
Impossible
|
*
| ||||||
J, r | ||||||||||
T, d | Impossible
|
Impossible
|
Impossible
|
Impossible
| ||||||
T, l | Impossible
|
|||||||||
T, u | *
|
Impossible
|
Impossible
|
*
| ||||||
T, r | Impossible
|
The centre column rule is ignored if the piece kicks off a block in a row above the appropriate centre column block, but not below (presumably due to block precedence.
180 degree rotations in SRS
Official SRS
Due to how the rotations in SRS are constructed, 180 degree rotations are well defined in SRS, though no official game implements them.
(Recall that values are given as x shift then y shift, with right and up positive.)
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | |
---|---|---|---|---|---|
0->2 | ( 0, 0) | ( 0, 0) | ( 0, 0) | ( 0, 0) | ( 0, 0) |
2->0 | ( 0, 0) | ( 0, 0) | ( 0, 0) | ( 0, 0) | ( 0, 0) |
L->R | ( 0, 0) | (-2, 0) | (-2, 0) | ( 0, 0) | (-2, 0) |
R->L | ( 0, 0) | (+2, 0) | (+2, 0) | ( 0, 0) | (+2, 0) |
Due to the symmetric locations of the rotation points, there are no kicks in states 0 or 2, and only one in states L or R.
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | |
---|---|---|---|---|---|
0->2 | ( 0, 0) | (-3, 0) | (+3, 0) | (-3,+1) | (+3,+1) |
2->0 | ( 0, 0) | (+3, 0) | (-3, 0) | (+3,-1) | (-3,-1) |
L->R | ( 0, 0) | (-1, 0) | (-1, 0) | (-1,-3) | (-1,+3) |
R->L | ( 0, 0) | (+1, 0) | (+1, 0) | (+1,+3) | (+1,-3) |
Note that when the I is vertical, Test 2 maps the piece onto itself and thus this is in fact the only kick possible.
Reduced tables
This is why official SRS is fundamentally incompatible with 180 degree rotations.
Test 1 | Test 2 | |
---|---|---|
0->2 | ( 0, 0) | |
2->0 | ( 0, 0) | |
L->R | ( 0, 0) | (-2, 0) |
R->L | ( 0, 0) | (+2, 0) |
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | |
---|---|---|---|---|---|
0->2 | ( 0, 0) | (-3, 0) | (+3, 0) | (-3,+1) | (+3,+1) |
2->0 | ( 0, 0) | (+3, 0) | (-3, 0) | (+3,-1) | (-3,-1) |
L->R | ( 0, 0) | (-1, 0) | |||
R->L | ( 0, 0) | (+1, 0) |
SRS-X
Compare the rotations in SRS-X from Heboris UE. Note that the code specifies down as positive; this has been adjusted for this table. Note also that the game numbers states as 0, 1, 2, 3 while in the table we have 0, R, 2, L (compare u, r, d, l above, or TTC's N, E, S, W).
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | Test 6 | Test 7 | Test 8 | Test 9 | Test 10 | Test 11 | Test 12 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0->2 | ( 0, 0) | (+1, 0) | (+2, 0) | (+1,-1) | (+2,-1) | (-1, 0) | (-2, 0) | (-1,-1) | (-2,-1) | ( 0,+1) | (+3, 0) | (-3, 0) |
2->0 | ( 0, 0) | (-1, 0) | (-2, 0) | (-1,+1) | (-2,+1) | (+1, 0) | (+2, 0) | (+1,+1) | (+2,+1) | ( 0,-1) | (-3, 0) | (+3, 0) |
L->R | ( 0, 0) | ( 0,-1) | ( 0,-2) | (+1,-1) | (+1,-2) | ( 0,+1) | ( 0,+2) | (+1,+1) | (+1,+2) | (-1, 0) | ( 0,-3) | ( 0,+3) |
R->L | ( 0, 0) | ( 0,-1) | ( 0,-2) | (-1,-1) | (-1,-2) | ( 0,+1) | ( 0,+2) | (-1,+1) | (-1,+2) | (+1, 0) | ( 0,-3) | ( 0,+3) |
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | Test 6 | |
---|---|---|---|---|---|---|
0->2 | ( 0, 0) | (-1, 0) | (-2, 0) | (+1, 0) | (+2, 0) | ( 0,-1) |
2->0 | ( 0, 0) | (+1, 0) | (+2, 0) | (-1, 0) | (-2, 0) | ( 0,+1) |
L->R | ( 0, 0) | ( 0,-1) | ( 0,-2) | ( 0,+1) | ( 0,+2) | (+1, 0) |
R->L | ( 0, 0) | ( 0,-1) | ( 0,-2) | ( 0,+1) | ( 0,+2) | (-1, 0) |
NullpoMino Mild180
Also, NullpoMino's Mild180. Note that the code in NullpoMino also specifies down as positive.
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | Test 6 | Test 7 | |
---|---|---|---|---|---|---|---|
0->2 | ( 0, 0) | (+1, 0) | (-1, 0) | ( 0,+1) | ( 0,-1) | ( 0,+2) | ( 0,-2) |
2->0 | ( 0, 0) | (-1, 0) | (+1, 0) | ( 0,-1) | ( 0,+1) | ( 0,-2) | ( 0,+2) |
L->R | ( 0, 0) | ( 0,-1) | ( 0,+1) | ( 0,+2) | ( 0,-2) | (+1, 0) | (-1, 0) |
R->L | ( 0, 0) | ( 0,-1) | ( 0,+1) | ( 0,+2) | ( 0,-2) | (-1, 0) | (+1, 0) |
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | |
---|---|---|---|---|---|
0->2 | ( 0, 0) | (-1, 0) | (-2, 0) | (+1, 0) | (+2, 0) |
2->0 | ( 0, 0) | (+1, 0) | (+2, 0) | (-1, 0) | (-2, 0) |
L->R | ( 0, 0) | ( 0,-1) | ( 0,+1) | ( 0,+2) | ( 0,-2) |
R->L | ( 0, 0) | ( 0,-1) | ( 0,+1) | ( 0,+2) | ( 0,-2) |
Tetr.io
Test 1 | Test 2 | Test 3 | Test 4 | Test 5 | Test 6 | |
---|---|---|---|---|---|---|
0->2 | ( 0, 0) | ( 0,+1) | (+1,+1) | (-1,+1) | (+1, 0) | (-1, 0) |
2->0 | ( 0, 0) | ( 0,-1) | (-1,-1) | (+1,-1) | (-1, 0) | (+1, 0) |
L->R | ( 0, 0) | (-1, 0) | (-1,+2) | (-1,+1) | ( 0,+2) | ( 0,+1) |
R->L | ( 0, 0) | (+1, 0) | (+1,+2) | (+1,+1) | ( 0,+2) | ( 0,+1) |