mirror of
https://github.com/kristoferssolo/2048.git
synced 2025-10-21 15:20:35 +00:00
refactor(game): merge
This commit is contained in:
parent
f5d990b1fd
commit
7372b25479
@ -65,21 +65,20 @@ class Game2048:
|
|||||||
if not np.array_equal(self.board, tmp_board):
|
if not np.array_equal(self.board, tmp_board):
|
||||||
self.add_random_tile()
|
self.add_random_tile()
|
||||||
|
|
||||||
def merge(self, row: np.ndarray) -> np.ndarray:
|
def merge(self, row: np.ndarray) -> bool:
|
||||||
row = row[row != 0]
|
done = False
|
||||||
merged_row = np.zeros_like(row)
|
for row in range(self.size):
|
||||||
j = 0
|
for col in range(self.size - 1, 0, -1):
|
||||||
for i, _ in enumerate(row):
|
if (
|
||||||
if i < len(row) - 1 and row[1] == row[i + 1]:
|
self.board[row, col] == self.board[row, col - 1]
|
||||||
merged_row[j] = 2 * row[i]
|
and self.board[row, col] != 0
|
||||||
j += 1
|
):
|
||||||
elif row[i] != 0:
|
self.board[row, col] *= 2
|
||||||
merged_row[j] = row[i]
|
self.score += self.board[row, col]
|
||||||
j += 1
|
self.board[row, col - 1] = 0
|
||||||
|
done = True
|
||||||
|
|
||||||
return np.concatenate(
|
return done
|
||||||
(merged_row, np.zeros(self.size - len(merged_row))), axis=0
|
|
||||||
)[: self.size]
|
|
||||||
|
|
||||||
def display(self) -> None:
|
def display(self) -> None:
|
||||||
for row in self.board:
|
for row in self.board:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user