def draw(self): self.stdscr.erase() self.gamewin.border() if self.paused: self.gamewin.addstr(1, 1, "Paused.") self.gamewin.addstr(2, 1, "Press p.") else: i = 0 for piece in self.pieces: squares = piece.getsquares() CHAR = piece.CHAR if len(self.pieces) > 1: if i == 0: CHAR = ">" else: CHAR = "<" for y in squares: for x in squares[y]: self.gamewin.addstr( piece.y + y + 1, (piece.x + x) * 2 + 1, CHAR + CHAR, curses.color_pair(piece.COLOR) ) i = i + 1 for y in self.grid: for x in self.grid[y]: if self.grid[y][x]: (CHAR, color) = self.grid[y][x] self.gamewin.addstr(y + 1, x * 2 + 1, CHAR + CHAR, curses.color_pair(color)) self.stdscr.addstr(0, self.width * 2 + 2, "Next:") i = 1 for piece in self.nextpieces: squares = piece.getsquares() for y in squares: for x in squares[y]: self.stdscr.addstr( i + y, self.width * 2 + 2 + x * 2, piece.CHAR + piece.CHAR, curses.color_pair(piece.COLOR) ) i = i + y + 1 self.stdscr.addstr(i, self.width * 2 + 2, "Lines: " + str(self.numlines)) self.stdscr.addstr(i + 1, self.width * 2 + 2, "Level: " + str(self.level)) self.stdscr.addstr(i + 2, self.width * 2 + 2, "Score: " + str(self.score)) self.gamewin.refresh()
def savepiece(self, piece): rand = random.Random() self.score = self.score + rand.randint(0, self.level * 100) squares = piece.getsquares() for y in squares: for x in squares[y]: self.grid[piece.y + y][piece.x + x] = (piece.CHAR, piece.COLOR) self.checklines()