def sp(choix_ai_adversaire, num_tirages_MC = 3, num_descentes_dans_arbre = 7, facteur_uct = 0.0): '''Une partie opposant un joueur humain à une intelligence artificielle''' grid = Grille() ai = AI('O') if choix_ai_adversaire == 2: ai = MC('O', num_tirages_MC) elif choix_ai_adversaire == 3: ai = UCT('O', num_tirages_MC, num_descentes_dans_arbre, facteur_uct) le_joueur1_gagne = False mes_coups_possibles = grid.lookForAllowedSteps() input = [] player = 'X' while(input != 'q' and grid.checkVictory() is False and len(mes_coups_possibles)>0): grid.showGrid() input = raw_input("Number 1 through 7 = drop disc, q = quit. \nYour move:") if (input in ['1','2','3','4','5','6','7']): MonCoup = int(input) if grid.drop(player, MonCoup): le_joueur1_gagne = True mes_coups_possibles = grid.lookForAllowedSteps() if(grid.checkVictory() is False and len(mes_coups_possibles)>0): VotreCoup = ai.ai(grid) grid.drop(ai.player, VotreCoup) le_joueur1_gagne = False mes_coups_possibles = grid.lookForAllowedSteps() il_y_a_un_vainqueur = grid.checkVictory() print "The game ended in the following state:" grid.showGrid() print("Y a-t-il un gagnant ?"), print(il_y_a_un_vainqueur) print("Si oui, est-ce le joueur n 1 (X) ?"), print(le_joueur1_gagne)
def np(choix_ai_joueur, choix_ai_adversaire, num_tirages_MC = 3, num_descentes_dans_arbre = 7, facteur_uct = 0.0, show_grid = False): '''Une partie entre intelligences artificielles''' grid = Grille() ai1 = AI('X') if choix_ai_joueur == 2: ai1 = MC('X', num_tirages_MC) elif choix_ai_joueur == 3: ai1 = UCT('X', num_tirages_MC, num_descentes_dans_arbre, facteur_uct) ai2 = AI('O') if choix_ai_adversaire == 2: ai2 = MC('O') # paramètres par défaut elif choix_ai_adversaire == 3: ai2 = UCT('O') # paramètres par défaut le_joueur1_gagne = False mes_coups_possibles = grid.lookForAllowedSteps() while(grid.checkVictory() is False and len(mes_coups_possibles)>0): MonCoup = ai1.ai(grid) grid.drop(ai1.player, MonCoup) le_joueur1_gagne = True mes_coups_possibles = grid.lookForAllowedSteps() if show_grid: grid.showGrid() sleep(1) if(grid.checkVictory() is False and len(mes_coups_possibles)>0): VotreCoup = ai2.ai(grid) grid.drop(ai2.player, VotreCoup) le_joueur1_gagne = False mes_coups_possibles = grid.lookForAllowedSteps() if show_grid: grid.showGrid() il_y_a_un_vainqueur = grid.checkVictory() print "The game ended in the following state:" grid.showGrid() print("Y a-t-il un gagnant ?"), print(il_y_a_un_vainqueur) print("Si oui, est-ce le joueur 1 (X) ?"), print(le_joueur1_gagne) return (il_y_a_un_vainqueur, le_joueur1_gagne)
def pvp(): '''Une partie entre joueurs humains''' grid = Grille() input = [] player = 'X' while(input != 'q' and grid.checkVictory() is False): grid.showGrid() input = raw_input("1 2 3 4 5 6 7 = drop disc, q = quit. \nPlayer " +player+" to move:") if (input in ['1','2','3','4','5','6','7']): if grid.drop(player, int(input)): if(player == 'X'): player = 'O' else: player = 'X' print "The game ended in the following state:" grid.showGrid()