def EvaluationTests(tests): players = ['X','O'] for num, test in enumerate(tests): sim = simulation.Connect4Simulation(players, x=5, y=5, z=4) moves = test[0] expected = test[1] for move in moves: player = move[0] action = move[1] sim.addBlock(player, action) result = agents.betterEvaluationFunction(sim) if result != expected: print "EvaluationTests", str(num)," failed: Expected:", expected, " got:", result
def simulate(game, agent_list, simulation=False): moves = [] numMoves = 0 while not game.isOver: for agent in agent_list: if not game.getLegalActions(): print "DRAW" game.displayBoard() return (moves, "Draw") action = None action = agent.getAction(game) numMoves += 1 # print ("Action: ", action) game.addBlock(agent.id, action) # print "Eval", agents.betterEvaluationFunction(game) moves.append((agent.id, action, agents.betterEvaluationFunction(game), numMoves)) if game.display: game.displayBoard() winner = game.returnWinner() if winner is not None: print "Player %s won!" % winner game.isOver = True if not simulation: game.displayBoard() return (moves, winner)