From 2e718315a9ad3d797ec808065010a8132c75caf4 Mon Sep 17 00:00:00 2001 From: kirbylife Date: Thu, 7 Nov 2019 21:59:22 -0600 Subject: [PATCH] added to show the next piece --- afutc/game.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/afutc/game.py b/afutc/game.py index 68f04d8..bb7fc94 100644 --- a/afutc/game.py +++ b/afutc/game.py @@ -34,6 +34,7 @@ class Afutc: self.ghost = np.zeros(shape=(HEIGHT, WIDTH)) self.board_center = WIDTH // 2 self.current_piece = None + self.next_piece = None self.score = 0 self.char = "▣" self.debug = "" @@ -66,7 +67,25 @@ class Afutc: row_str += self.char else: row_str += " " - print(f"║{row_str}║") + + row_str = f"║{row_str}║" + + piece = self.next_piece + piece_height, piece_width = piece.shape + + if i == 0: + row_str += " " + " NEXT".center(piece_width + 4) + if i == 1: + row_str += f" ╔{'═' * (piece_width + 2)}╗" + if i >= 2 and (i - 2) < piece_height: + row = "".join(self.char if value else " " + for value in piece[i - 2]) + row_str += f" ║ {row} ║" + if i == (piece_height + 2): + row_str += f" ╚{'═' * (piece_width + 2)}╝" + + print(row_str) + row = "═" * (self.board.shape[1]) print(f"╚{row}╝") # print(str(self.pivot) + "\t" + self.debug) @@ -99,9 +118,17 @@ class Afutc: new_row = np.zeros(shape=(1, WIDTH)) self.board = np.concatenate((new_row, upper, down)) self.score += (10 * count) + (5 if count > 3 else 0) + # Generate a new piece self.current_move.fill(0.) - new_piece = np.array(choice(PIECES)) + if not isinstance(self.current_piece, np.ndarray): + self.current_piece = np.array(choice(PIECES)) + else: + self.current_piece = self.next_piece.copy() + new_piece = self.current_piece.copy() + + self.next_piece = np.array(choice(PIECES)) + self.current_piece = new_piece.copy() position = self.board_center - (new_piece.shape[1] // 2) for i, row in enumerate(new_piece):