Improve T-Spin detection
This commit is contained in:
parent
deba1a2daf
commit
e7f3146e9a
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from .consts import LINES, COLLUMNS, NEXT_PIECES
|
||||
from .utils import Movement, Rotation, Color, Coord
|
||||
from .utils import Movement, Spin, Color, Coord
|
||||
from .tetromino import (
|
||||
Mino,
|
||||
Tetromino,
|
||||
|
@ -1,5 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from .utils import Coord
|
||||
from .utils import Coord, T_Spin
|
||||
|
||||
|
||||
# Matrix
|
||||
@ -15,3 +15,13 @@ AUTOREPEAT_PERIOD = 0.010 # Official : 0.010 s
|
||||
|
||||
# Piece init coord
|
||||
MATRIX_PIECE_COORD = Coord(4, LINES)
|
||||
|
||||
# Scores
|
||||
LINES_CLEAR_NAME = "LINES_CLEAR_NAME"
|
||||
SCORES = (
|
||||
{LINES_CLEAR_NAME: "", T_Spin.NONE: 0, T_Spin.MINI: 1, T_Spin.T_SPIN: 4},
|
||||
{LINES_CLEAR_NAME: "SINGLE", T_Spin.NONE: 1, T_Spin.MINI: 2, T_Spin.T_SPIN: 8},
|
||||
{LINES_CLEAR_NAME: "DOUBLE", T_Spin.NONE: 3, T_Spin.T_SPIN: 12},
|
||||
{LINES_CLEAR_NAME: "TRIPLE", T_Spin.NONE: 5, T_Spin.T_SPIN: 16},
|
||||
{LINES_CLEAR_NAME: "TETRIS", T_Spin.NONE: 8},
|
||||
)
|
@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import random
|
||||
|
||||
from .utils import Coord, Rotation, Color
|
||||
from .utils import Coord, Spin, Color
|
||||
|
||||
|
||||
class Mino:
|
||||
@ -32,13 +32,13 @@ class TetrominoBase(list):
|
||||
|
||||
# Super rotation system
|
||||
SRS = {
|
||||
Rotation.CLOCKWISE: (
|
||||
Spin.CLOCKWISE: (
|
||||
(Coord(0, 0), Coord(-1, 0), Coord(-1, 1), Coord(0, -2), Coord(-1, -2)),
|
||||
(Coord(0, 0), Coord(1, 0), Coord(1, -1), Coord(0, 2), Coord(1, 2)),
|
||||
(Coord(0, 0), Coord(1, 0), Coord(1, 1), Coord(0, -2), Coord(1, -2)),
|
||||
(Coord(0, 0), Coord(-1, 0), Coord(-1, -1), Coord(0, -2), Coord(-1, 2)),
|
||||
),
|
||||
Rotation.COUNTER: (
|
||||
Spin.COUNTER: (
|
||||
(Coord(0, 0), Coord(1, 0), Coord(1, 1), Coord(0, -2), Coord(1, -2)),
|
||||
(Coord(0, 0), Coord(1, 0), Coord(1, -1), Coord(0, 2), Coord(1, 2)),
|
||||
(Coord(0, 0), Coord(-1, 0), Coord(-1, 1), Coord(0, -2), Coord(-1, -2)),
|
||||
@ -49,9 +49,9 @@ class TetrominoBase(list):
|
||||
def __init__(self):
|
||||
super().__init__(Mino(self.MINOES_COLOR, coord) for coord in self.MINOES_COORDS)
|
||||
self.orientation = 0
|
||||
self.last_rotation_point = None
|
||||
self.rotated_last = False
|
||||
self.rotation_point_5_used = False
|
||||
self.hold_enabled = True
|
||||
self.locked = False
|
||||
|
||||
def ghost(self):
|
||||
return type(self)()
|
||||
@ -60,8 +60,8 @@ class TetrominoBase(list):
|
||||
class O_Tetrimino(TetrominoBase, metaclass=MetaTetromino):
|
||||
|
||||
SRS = {
|
||||
Rotation.CLOCKWISE: (tuple(), tuple(), tuple(), tuple()),
|
||||
Rotation.COUNTER: (tuple(), tuple(), tuple(), tuple()),
|
||||
Spin.CLOCKWISE: (tuple(), tuple(), tuple(), tuple()),
|
||||
Spin.COUNTER: (tuple(), tuple(), tuple(), tuple()),
|
||||
}
|
||||
MINOES_COORDS = (Coord(0, 0), Coord(1, 0), Coord(0, 1), Coord(1, 1))
|
||||
MINOES_COLOR = Color.YELLOW
|
||||
@ -73,13 +73,13 @@ class O_Tetrimino(TetrominoBase, metaclass=MetaTetromino):
|
||||
class I_Tetrimino(TetrominoBase, metaclass=MetaTetromino):
|
||||
|
||||
SRS = {
|
||||
Rotation.CLOCKWISE: (
|
||||
Spin.CLOCKWISE: (
|
||||
(Coord(1, 0), Coord(-1, 0), Coord(2, 0), Coord(-1, -1), Coord(2, 2)),
|
||||
(Coord(0, -1), Coord(-1, -1), Coord(2, -1), Coord(-1, 1), Coord(2, -2)),
|
||||
(Coord(-1, 0), Coord(1, 0), Coord(-2, 0), Coord(1, 1), Coord(-2, -2)),
|
||||
(Coord(0, -1), Coord(1, 1), Coord(-2, 1), Coord(1, -1), Coord(-2, 2)),
|
||||
),
|
||||
Rotation.COUNTER: (
|
||||
Spin.COUNTER: (
|
||||
(Coord(0, -1), Coord(-1, -1), Coord(2, -1), Coord(-1, 1), Coord(2, -2)),
|
||||
(Coord(-1, 0), Coord(1, 0), Coord(-2, 0), Coord(1, 1), Coord(-2, -2)),
|
||||
(Coord(0, 1), Coord(1, 1), Coord(-2, 1), Coord(1, -1), Coord(-2, 2)),
|
||||
|
@ -15,7 +15,7 @@ class Movement:
|
||||
DOWN = Coord(0, -1)
|
||||
|
||||
|
||||
class Rotation:
|
||||
class Spin:
|
||||
|
||||
CLOCKWISE = 1
|
||||
COUNTER = -1
|
||||
@ -28,6 +28,14 @@ class T_Spin:
|
||||
T_SPIN = "T-SPIN"
|
||||
|
||||
|
||||
class T_Slot:
|
||||
|
||||
A = 0
|
||||
B = 1
|
||||
C = 3
|
||||
D = 2
|
||||
|
||||
|
||||
class Color:
|
||||
|
||||
BLUE = 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user