def main(): run = True clock = pygame.time.Clock() game = Game(WIN) DEPTH = 3 while run: clock.tick(FPS) if game.turn == BLACK: start = time.time() value, new_board = minimax(game.board.get_board(), DEPTH, True, game) game.ai_move(new_board) print("TIME: ", time.time() - start) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if event.type == pygame.MOUSEBUTTONDOWN: pos = pygame.mouse.get_pos() row, col = get_row_col_from_mouse(pos) if col <= 7: game.select((8 * row + col)) keys = pygame.key.get_pressed() if keys[pygame.K_r]: game.reset() game.update() pygame.quit()
class GameFlow: def __init__(self, skill_level): self.window = pygame.display.set_mode( (WIDTH + 2 * BOARD_EDGE, HEIGHT + 2 * BOARD_EDGE)) pygame.display.set_caption("Chess") self.clock = pygame.time.Clock() self.game = Game(self.window, skill_level) self.game_over = False def update_display(self): self.game.update() def make_player_move(self, position): self.game.select(position) def make_engine_move(self): self.game.make_engine_move() def play(self): while not self.game_over: self.clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: self.game_over = True if self.game.turn == WHITE: if event.type == pygame.MOUSEBUTTONDOWN: pos = pygame.mouse.get_pos() self.game.select(pos) else: self.game.make_engine_move() self.update_display() result = self.game.get_winner() if result: print(result) self.game.board.print_board_to_console() self.game.reset() # self.game_over = True pygame.display.flip() pygame.quit()