def test_negamax(self): board = Board(""" 1 W ..k.. ..... ..... ..... ..Q.. ...K. """) player = NegamaxPlayer() best_value, best_move = player.negamax(board, 1) self.assertEqual(Move.from_string("c2-c6"), best_move) random.seed(0) board = Board(""" 1 W kp... .p... ..... ..... .Q... ...K. """) player = NegamaxPlayer() best_value, best_move = player.negamax(board, 3) self.assertEqual(Move.from_string("b2-b4"), best_move)
def test_negamax(self): board = Board(""" 1 W ..k.. ..... ..... ..... ..Q.. ...K. """) player = NegamaxPlayer() best_value, best_move = player.negamax(board, 1) self.assertEqual(Move.from_string("c2-c6"), best_move) random.seed(0) board = Board(""" 1 W kp... .p... ..... ..... .Q... ...K. """) player = NegamaxPlayer() best_value, best_move = player.negamax(board, 3) self.assertEqual(Move.from_string("b2-b4"), best_move)
def runmegamax(): player = NegamaxPlayer() best_move = player.negamax(board, 6)
def runmegamax(): player = NegamaxPlayer() best_move = player.negamax(board, 6)
parser = argparse.ArgumentParser(description='Play a game of chess!') parser.add_argument('playertypes', nargs=2, choices=['h', 'r', 'g', 'n', 'np', 'id', 'skirmish'], help='playertype of white and black') args = parser.parse_args() # create players players = {} for i, color in enumerate(('white', 'black')): if args.playertypes[i] == 'h': players[color] = HumanPlayer() elif args.playertypes[i] == 'r': players[color] = RandomPlayer() elif args.playertypes[i] == 'g': players[color] = GreedyPlayer() elif args.playertypes[i] == 'n': players[color] = NegamaxPlayer() elif args.playertypes[i] == 'skirmish': players[color] = SkirmishPlayer() elif args.playertypes[i] == 'np': players[color] = NegamaxPruningPlayer() elif args.playertypes[i] == 'id': players[color] = IterativeDeepeningPlayer() game = Board() fancy = FancyDisplay() move = Move.from_string("a1-a1") # dummy start move for fancy printing while True: print(game)