Example #1
0
    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()
Example #2
0
    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()