From bada0fc18ed262296ad8bb2503b44e3c8968a086 Mon Sep 17 00:00:00 2001 From: kirbylife Date: Sat, 9 Nov 2019 22:03:22 -0600 Subject: [PATCH] added colors to the pieces --- afutc/game.py | 26 +++++++++++++++++--------- afutc/pieces.py | 9 +++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/afutc/game.py b/afutc/game.py index bb7fc94..0d7a977 100644 --- a/afutc/game.py +++ b/afutc/game.py @@ -27,7 +27,8 @@ class Afutc: def __init__(self, stdscr): self.stdscr = stdscr - self.print = stdscr.addstr + self.print = lambda x, color=0: stdscr.addstr(x, + curses.color_pair(color)) self.input = stdscr.getkey self.board = np.zeros(shape=(HEIGHT, WIDTH)) self.current_move = np.zeros(shape=(HEIGHT, WIDTH)) @@ -41,7 +42,7 @@ class Afutc: def is_valid(self, board): for field in (board + self.board).flat: - if field == 2: + if field != 0 and field % 2 == 0: return False return True @@ -52,23 +53,26 @@ class Afutc: _, height = self.get_size() height_start = (height // 2) - (WIDTH // 2) try: - print = lambda x: self.print((" " * height_start) + x + "\n") + print = lambda x, color=0, end="\n": self.print(( + " " * height_start) + x + end, color) + iprint = lambda x, color=0: self.print(x, color) row = str(self.score) row = f"╣ {row} ╠" row = row.center(self.board.shape[1], "═") - print("ANOTHER F TETRIS CLONE") + print("A F U TETRIS CLONE") print(f"╔{row}╗") for i, row in enumerate(self.board + self.current_move): row_str = "" + print("║", end="") for j, field in enumerate(row): if self.ghost[i, j]: - row_str += "▢" + iprint("▢", 0) elif field: - row_str += self.char + iprint(self.char, int(field)) else: - row_str += " " + iprint(" ") - row_str = f"║{row_str}║" + row_str += f"║" piece = self.next_piece piece_height, piece_width = piece.shape @@ -84,7 +88,7 @@ class Afutc: if i == (piece_height + 2): row_str += f" ╚{'═' * (piece_width + 2)}╝" - print(row_str) + iprint(row_str + "\n") row = "═" * (self.board.shape[1]) print(f"╚{row}╝") @@ -256,6 +260,10 @@ class Afutc: def start(): stdscr = curses.initscr() curses.noecho() + curses.start_color() + curses.use_default_colors() + for i in range(0, curses.COLORS): + curses.init_pair(i + 1, i, -1) curses.curs_set(False) try: game = Afutc(stdscr) diff --git a/afutc/pieces.py b/afutc/pieces.py index d234eb6..61cf805 100644 --- a/afutc/pieces.py +++ b/afutc/pieces.py @@ -1,3 +1,12 @@ +import numpy as np + PIECES = [[[0, 1], [0, 1], [1, 1]], [[0, 1, 0], [1, 1, 1]], [[1, 1], [1, 1]], [[1, 1, 0], [0, 1, 1]], [[0, 1, 1], [1, 1, 0]], [[1], [1], [1], [1]], [[0, 1, 0], [0, 1, 0], [1, 1, 1]]] + +__colors = [5, 7, 9, 11, 13, 15, 35, 41, 123, 205, 219] + +for n, piece in enumerate(PIECES): + piece = np.array(piece) + piece *= __colors[n] + PIECES[n] = piece.copy()