colored game over

This commit is contained in:
adrienmalin 2019-02-15 20:18:32 +01:00
parent 8068e0f34f
commit 4987c9d17b

View File

@ -303,7 +303,7 @@ class Matrix(Window):
begin_y += (game.HEIGHT - self.HEIGHT) // 2 begin_y += (game.HEIGHT - self.HEIGHT) // 2
self.game = game self.game = game
self.cells = [ self.cells = [
[None for x in range(self.NB_COLS)] [Color.BLACK for x in range(self.NB_COLS)]
for y in range(self.NB_LINES) for y in range(self.NB_LINES)
] ]
Window.__init__(self, self.WIDTH, self.HEIGHT, begin_x, begin_y) Window.__init__(self, self.WIDTH, self.HEIGHT, begin_x, begin_y)
@ -336,7 +336,7 @@ class Matrix(Window):
for y, line in enumerate(self.cells): for y, line in enumerate(self.cells):
if all(mino for mino in line): if all(mino for mino in line):
self.cells.pop(y) self.cells.pop(y)
self.cells.insert(0, [None for x in range(self.NB_COLS)]) self.cells.insert(0, [Color.BLACK for x in range(self.NB_COLS)])
nb_lines_cleared += 1 nb_lines_cleared += 1
self.game.stats.piece_locked(nb_lines_cleared, t_spin) self.game.stats.piece_locked(nb_lines_cleared, t_spin)
self.game.new_piece() self.game.new_piece()
@ -551,7 +551,7 @@ class ControlsParser(configparser.SafeConfigParser):
except FileNotFoundError: except FileNotFoundError:
subprocess.call(["notepad.exe", self.FILE_PATH]) subprocess.call(["notepad.exe", self.FILE_PATH])
else: else:
subprocess.call(["${EDITOR:-vi}", self.FILE_PATH]) os.system("${EDITOR:-vi}"+" "+self.FILE_PATH)
class ControlsWindow(Window, ControlsParser): class ControlsWindow(Window, ControlsParser):
@ -591,23 +591,23 @@ class Game:
if curses.COLORS >= 16: if curses.COLORS >= 16:
if curses.can_change_color(): if curses.can_change_color():
curses.init_color(curses.COLOR_YELLOW, 1000, 500, 0) curses.init_color(curses.COLOR_YELLOW, 1000, 500, 0)
curses.init_pair(Color.ORANGE, curses.COLOR_YELLOW, curses.COLOR_YELLOW) curses.init_pair(Color.ORANGE, curses.COLOR_YELLOW, curses.COLOR_BLACK)
curses.init_pair(Color.RED, curses.COLOR_RED+8, curses.COLOR_RED+8) curses.init_pair(Color.RED, curses.COLOR_RED+8, curses.COLOR_BLACK)
curses.init_pair(Color.GREEN, curses.COLOR_GREEN+8, curses.COLOR_GREEN+8) curses.init_pair(Color.GREEN, curses.COLOR_GREEN+8, curses.COLOR_BLACK)
curses.init_pair(Color.YELLOW, curses.COLOR_YELLOW+8, curses.COLOR_YELLOW+8) curses.init_pair(Color.YELLOW, curses.COLOR_YELLOW+8, curses.COLOR_BLACK)
curses.init_pair(Color.BLUE, curses.COLOR_BLUE+8, curses.COLOR_BLUE+8) curses.init_pair(Color.BLUE, curses.COLOR_BLUE+8, curses.COLOR_BLACK)
curses.init_pair(Color.MAGENTA, curses.COLOR_MAGENTA+8, curses.COLOR_MAGENTA+8) curses.init_pair(Color.MAGENTA, curses.COLOR_MAGENTA+8, curses.COLOR_BLACK)
curses.init_pair(Color.CYAN, curses.COLOR_CYAN+8, curses.COLOR_CYAN+8) curses.init_pair(Color.CYAN, curses.COLOR_CYAN+8, curses.COLOR_BLACK)
curses.init_pair(Color.WHITE, curses.COLOR_WHITE+8, curses.COLOR_WHITE+8) curses.init_pair(Color.WHITE, curses.COLOR_WHITE+8, curses.COLOR_BLACK)
else: else:
curses.init_pair(Color.ORANGE, curses.COLOR_YELLOW, curses.COLOR_YELLOW) curses.init_pair(Color.ORANGE, curses.COLOR_YELLOW, curses.COLOR_BLACK)
curses.init_pair(Color.RED, curses.COLOR_RED, curses.COLOR_RED) curses.init_pair(Color.RED, curses.COLOR_RED, curses.COLOR_BLACK)
curses.init_pair(Color.GREEN, curses.COLOR_GREEN, curses.COLOR_GREEN) curses.init_pair(Color.GREEN, curses.COLOR_GREEN, curses.COLOR_BLACK)
curses.init_pair(Color.YELLOW, curses.COLOR_WHITE, curses.COLOR_WHITE) curses.init_pair(Color.YELLOW, curses.COLOR_WHITE, curses.COLOR_BLACK)
curses.init_pair(Color.BLUE, curses.COLOR_BLUE, curses.COLOR_BLUE) curses.init_pair(Color.BLUE, curses.COLOR_BLUE, curses.COLOR_BLACK)
curses.init_pair(Color.MAGENTA, curses.COLOR_MAGENTA, curses.COLOR_MAGENTA) curses.init_pair(Color.MAGENTA, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
curses.init_pair(Color.CYAN, curses.COLOR_CYAN, curses.COLOR_CYAN) curses.init_pair(Color.CYAN, curses.COLOR_CYAN, curses.COLOR_BLACK)
curses.init_pair(Color.WHITE, curses.COLOR_WHITE, curses.COLOR_WHITE) curses.init_pair(Color.WHITE, curses.COLOR_WHITE, curses.COLOR_BLACK)
try: try:
curses.curs_set(0) curses.curs_set(0)
@ -619,9 +619,9 @@ class Game:
left_x = (curses.COLS-self.WIDTH) // 2 left_x = (curses.COLS-self.WIDTH) // 2
top_y = (curses.LINES-self.HEIGHT) // 2 top_y = (curses.LINES-self.HEIGHT) // 2
side_width = (self.WIDTH - Matrix.WIDTH) // 2 side_width = (self.WIDTH - Matrix.WIDTH) // 2 - 1
side_height = self.HEIGHT - Hold.HEIGHT side_height = self.HEIGHT - Hold.HEIGHT
right_x = left_x + Matrix.WIDTH + side_width right_x = left_x + Matrix.WIDTH + side_width + 2
bottom_y = top_y + Hold.HEIGHT bottom_y = top_y + Hold.HEIGHT
self.matrix = Matrix(self, left_x, top_y) self.matrix = Matrix(self, left_x, top_y)
@ -720,8 +720,11 @@ class Game:
def over(self): def over(self):
self.matrix.refresh() self.matrix.refresh()
self.matrix.window.addstr(10, 9, "GAME", curses.A_BOLD) for y, word in enumerate((("GA", "ME") ,("OV", "ER")), start=Matrix.NB_LINES//2):
self.matrix.window.addstr(11, 9, "OVER", curses.A_BOLD) for x, char in enumerate(word, start=Matrix.NB_COLS//2-1):
color = self.matrix.cells[y][x]
color = curses.color_pair(color)|curses.A_REVERSE if color else curses.color_pair(Color.BLACK)
self.matrix.window.addstr(y, x*2+1, char, color)
self.matrix.window.refresh() self.matrix.window.refresh()
self.scr.timeout(-1) self.scr.timeout(-1)
while self.scr.getkey() != self.controls["QUIT"]: while self.scr.getkey() != self.controls["QUIT"]: