added first draft litris

This commit is contained in:
2023-07-21 15:09:02 +02:00
parent ff173fea80
commit 93832d8bfc

View File

@@ -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