added first draft litris

This commit is contained in:
2023-07-21 14:31:07 +02:00
parent 403db80292
commit d0f4937507

View File

@@ -204,12 +204,15 @@ class Litris(GameBase):
for e in range(19, 17, - 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 e == 19:
return i - BLOCK_COL
elif e < 19 and current_board[e + 1][i] == 1 and current_board[e + 1][i + 1] == 1:
return i - BLOCK_COL
if np.array_equal(stone, BL3_FULL):
# block
for e in range(19, 17, - 1):
for i in range(0, 19, 1):
if 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
elif np.array_equal(stone, L1_FULL):
# L1
@@ -223,7 +226,7 @@ class Litris(GameBase):
for e in range(19, 17, - 1):
for i in range(0, 19, 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 \
current_board[e][i + 2] == 0:
current_board[e][i + 2] == 0 and current_board[e][i] == 1 and current_board[e][i + 1] == 1:
return i - L2_COL
elif np.array_equal(stone, LINE_FULL):
# Line
@@ -231,24 +234,38 @@ class Litris(GameBase):
for i in range(0, 19, 1):
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:
if e == 19:
return i - LINE_COL
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] and current_board[e + 1][i + 3]:
return i - LINE_COL
elif np.array_equal(stone, DOT_FULL):
# Dot
for e in range(19, 18, - 1):
for i in range(0, 19, 1):
if current_board[e][i] == 0:
if e == 19:
return i - DOT_COL
elif e < 19 and current_board[e + 1][i] == 1:
return i - DOT_COL
elif np.array_equal(stone, DDOT_FULL) :
# DDot
for e in range(19, 18, - 1):
for i in range(0, 19, 1):
if current_board[e][i] == 0 and current_board[e][i + 1] == 0:
if e == 19:
return i - DDOT_COL
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
for e in range(19, 18, - 1):
for i in range(0, 19, 1):
if current_board[e][i] == 0 and current_board[e][i + 1] == 0 and current_board[e][i + 2] == 0:
if e == 19:
return i - DDDOT_COL
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
def move_stone(self, col_movement):