added first draft litris

This commit is contained in:
2023-07-21 15:18:57 +02:00
parent 93832d8bfc
commit 2906cb10e4

View File

@@ -208,7 +208,7 @@ class Litris(GameBase):
if np.array_equal(stone, BLOCK_FULL): if np.array_equal(stone, BLOCK_FULL):
# block # block
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 18, 1): for i in range(0, 19, 1):
if current_board[e][i] == 0 and current_board[e - 1][i] == 0 and current_board[e][i + 1] == 0 and current_board[e - 1][i + 1] == 0: if current_board[e][i] == 0 and current_board[e - 1][i] == 0 and current_board[e][i + 1] == 0 and current_board[e - 1][i + 1] == 0:
if e == 19: if e == 19:
return i - BLOCK_COL return i - BLOCK_COL
@@ -217,27 +217,27 @@ class Litris(GameBase):
if np.array_equal(stone, BL3_FULL): if np.array_equal(stone, BL3_FULL):
# block # block
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 18, 1): for i in range(0, 19, 1):
if current_board[e][i] == 1 and current_board[e - 1][i] == 0 and current_board[e][i + 1] == 0 and current_board[e - 1][i + 1] == 0: if current_board[e][i] == 1 and current_board[e - 1][i] == 0 and current_board[e][i + 1] == 0 and current_board[e - 1][i + 1] == 0:
return i - Bl3_COL return i - Bl3_COL
elif np.array_equal(stone, L1_FULL): elif np.array_equal(stone, L1_FULL):
# L1 # L1
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 17, 1): for i in range(0, 18, 1):
if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0 and \ if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0 and \
current_board[e - 1][i + 2] == 0: current_board[e - 1][i + 2] == 0:
return i - L1_COL return i - L1_COL
elif np.array_equal(stone, L2_FULL): elif np.array_equal(stone, L2_FULL):
# L1 # L1
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 17, 1): for i in range(0, 18, 1):
if current_board[e - 1][i] == 0 and current_board[e - 1][i + 1] == 0 and current_board[e - 1][i + 2] == 0 and \ if current_board[e - 1][i] == 0 and current_board[e - 1][i + 1] == 0 and current_board[e - 1][i + 2] == 0 and \
current_board[e][i + 2] == 0 and current_board[e][i] == 1 and current_board[e][i + 1] == 1: current_board[e][i + 2] == 0 and current_board[e][i] == 1 and current_board[e][i + 1] == 1:
return i - L2_COL return i - L2_COL
elif np.array_equal(stone, LINE_FULL): elif np.array_equal(stone, LINE_FULL):
# Line # Line
for e in range(19, 18, - 1): for e in range(19, 18, - 1):
for i in range(0, 16, 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 and \ if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0 and \
current_board[e][i + 3] == 0: current_board[e][i + 3] == 0:
if e == 19: if e == 19:
@@ -247,7 +247,7 @@ class Litris(GameBase):
elif np.array_equal(stone, DOT_FULL): elif np.array_equal(stone, DOT_FULL):
# Dot # Dot
for e in range(19, 18, - 1): for e in range(19, 18, - 1):
for i in range(0, 19, 1): for i in range(0, 20, 1):
if current_board[e][i] == 0: if current_board[e][i] == 0:
if e == 19: if e == 19:
return i - DOT_COL return i - DOT_COL
@@ -257,7 +257,7 @@ class Litris(GameBase):
elif np.array_equal(stone, DDOT_FULL) : elif np.array_equal(stone, DDOT_FULL) :
# DDot # DDot
for e in range(19, 18, - 1): for e in range(19, 18, - 1):
for i in range(0, 18, 1): for i in range(0, 19, 1):
if current_board[e][i] == 0 and current_board[e][i + 1] == 0: if current_board[e][i] == 0 and current_board[e][i + 1] == 0:
if e == 19: if e == 19:
return i - DDOT_COL return i - DDOT_COL
@@ -266,7 +266,7 @@ class Litris(GameBase):
elif np.array_equal(stone, DDDOT_FULL) : elif np.array_equal(stone, DDDOT_FULL) :
# DDDot # DDDot
for e in range(19, 18, - 1): for e in range(19, 18, - 1):
for i in range(0, 17, 1): for i in range(0, 18, 1):
if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0: if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0:
if e == 19: if e == 19:
return i - DDDOT_COL return i - DDDOT_COL
@@ -276,21 +276,21 @@ class Litris(GameBase):
elif np.array_equal(stone, Z1_FULL): elif np.array_equal(stone, Z1_FULL):
# Z1 # Z1
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 17, 1): for i in range(0, 18, 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: 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 return i - Z1_COL
elif np.array_equal(stone, Z2_FULL): elif np.array_equal(stone, Z2_FULL):
# Z2 # Z2
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 17, 1): for i in range(0, 18, 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: 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 return i - Z2_COL
elif np.array_equal(stone, T1_FULL): elif np.array_equal(stone, T1_FULL):
# L1 # L1
for e in range(19, 17, - 1): for e in range(19, 17, - 1):
for i in range(0, 17, 1): for i in range(0, 18, 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: 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 return i - T1_COL
def move_stone(self, col_movement): def move_stone(self, col_movement):
if col_movement is None: if col_movement is None:
return return