def runExperiment(aiTypes, n): j = 0 while j < n: aiPlayers = [] stats = [] for t in aiTypes: aiPlayers.append(ggai.constructParty()) if t[0][0] == 'd': ai = ggai.AIOpponent(t[1], t[2]) elif t[0][0] == 'n': ai = ggai.AIOpponent_nondeterministic(t[1], t[2]) aiPlayers[-1].trust = [0]*len(aiTypes) aiPlayers[-1].assignAI(ai) winner = runGame(aiPlayers) if winner != 'time up': if winner == 'tie': stats.append('tie') j += 1 continue at = 'd' if isinstance(winner, ggai.AIOpponent) else 'n' stats.append({'type': at, 'attack_metric': winner.ai_control.attack_metric, 'defend_metric': winner.ai_control.defend_metric}) j += 1 return stats
event = pygame.event.poll() if event.type == pygame.QUIT: running = 0 else: screen.fill((227, 237, 216)) # [SCENE] Create Party if current_scene == CREATE_PARTY: partyScene.update(event) partyScene.render(screen) huPlayer = partyScene.isFinished() aiPlayers = [] for i in range(NUM_AI_PLAYERS): aiPlayers.append(ggai.constructParty()) aiPlayers[i].trust = [0] * (NUM_AI_PLAYERS + 1) aiPlayers[i].assignAI(ggai.AIOpponent(ggai.metric_distance, ggai.metric_threat)) # huParty.party_members[x].chartype gives element type # '' .rotation gives element angle # huParty.party_position[x] # CharacterSprite class in ggparty has this info if huPlayer != -1: huPlayer.trust = [0] * (NUM_AI_PLAYERS + 1) switchToScene(GAME_GRID) mapScene.addPartyToMap(huPlayer, ggparty.UP, starts[0][0], starts[0][1]) huPlayer.grid_color = ggparty.BLUE huPlayer.maxHealth() for i in range(NUM_AI_PLAYERS): mapScene.addPartyToMap(aiPlayers[i], ggparty.UP, starts[i + 1][0], starts[i + 1][1]) aiPlayers[i].grid_color = ggparty.RED