class Game: def __init__(self): # current player step self.curPlayer = 'X' self.isPause = False self.isDraw = False self.winner = None self.msg = '' self.board = Board() def draw(self, sc): sc.fill(BG) self.board.draw(sc) pygame.draw.rect(sc, BORDER_COLOR, (0, 0, W, H), 10) if self.msg: self.showMessage(sc, self.msg, True) elif self.isPause: self.showMessage(sc, 'Paused'.upper(), True) elif self.isDraw: self.showMessage(sc, 'Draw'.upper(), True) elif self.winner: self.showMessage(sc, 'Winner {}'.format(self.winner), True) @staticmethod def showMessage(sc, msg, fill=False): if fill: sc.fill(BG) font = pygame.font.SysFont('Arial', 40) fontSurf = font.render(msg, 1, TEXT_COLOR) fontRect = fontSurf.get_rect(center=(W // 2, H // 2)) sc.blit(fontSurf, fontRect) def pause(self): self.isPause = True def run(self): self.isPause = False def toggleStatus(self): if self.isPause: self.run() else: self.pause() def quit(self): pass def update(self, *args): pass
board.player2.changeDir(False) if (event.key == K_ESCAPE): board.unpause() def onKeyUp(event): if (event.key in [K_DOWN, K_UP]): board.player1.stop() if (event.key in [K_w, K_s]): board.player2.stop() while (1): board.draw(sc) pygame.display.update() pygame.display.set_caption("You play {} seconds".format( round(time.time() - initializeTime))) events = pygame.event.get() for event in events: if (event.type == QUIT): pygame.quit() sys.exit() if (event.type == KEYDOWN): onKeyDown(event)