Example #1
0
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)
Example #2
0
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)
Example #3
0
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()