From 93832d8bfc1ef8bc4b48dd10c12c195c331904d0 Mon Sep 17 00:00:00 2001 From: Thaloria Date: Fri, 21 Jul 2023 15:09:02 +0200 Subject: [PATCH] added first draft litris --- litris.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/litris.py b/litris.py index b7776aa..3e363f5 100644 --- a/litris.py +++ b/litris.py @@ -65,6 +65,12 @@ DDDOT_COL = 9 Z1_FULL = [[0, 0, 0, 0], [0, 0, 1, 1], [0, 1, 1, 0], [0, 0, 0, 0]] Z1_COL = 9 +Z2_FULL = [[0, 0, 0, 0], [0, 1, 1, 0], [0, 0, 1, 1], [0, 0, 0, 0]] +Z2_COL = 9 + +T1_FULL = [[0, 0, 0, 0], [0, 1, 1, 1], [0, 0, 1, 0], [0, 0, 0, 0]] +T1_COL = 9 + class Litris(GameBase): def __init__(self, overlay): @@ -258,7 +264,7 @@ class Litris(GameBase): elif e < 19 and current_board[e + 1][i] == 1 and current_board[e + 1][i + 1]: return i - DDOT_COL elif np.array_equal(stone, DDDOT_FULL) : - # DDot + # DDDot for e in range(19, 18, - 1): for i in range(0, 17, 1): if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0: @@ -267,7 +273,24 @@ class Litris(GameBase): elif e < 19 and current_board[e + 1][i] == 1 and current_board[e + 1][i + 1] == 1 and current_board[e + 1][i + 2]: return i - DDDOT_COL return i - DDDOT_COL - + elif np.array_equal(stone, Z1_FULL): + # Z1 + for e in range(19, 17, - 1): + for i in range(0, 17, 1): + if current_board[e][i] == 1 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0 and current_board[e - 1][i] == 0 and current_board[e - 1][i + 1] == 0: + return i - Z1_COL + elif np.array_equal(stone, Z2_FULL): + # Z2 + for e in range(19, 17, - 1): + for i in range(0, 17, 1): + if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 1 and current_board[e - 1][i + 1] == 0 and current_board[e - 1][i + 2] == 0: + return i - Z2_COL + elif np.array_equal(stone, T1_FULL): + # L1 + for e in range(19, 17, - 1): + for i in range(0, 17, 1): + if current_board[e][i] == 1 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 1 and current_board[e - 1][i] == 0 and current_board[e - 1][i + 1] == 0 and current_board[e - 1][i + 2] == 0: + return i - L1_COL def move_stone(self, col_movement): if col_movement is None: return