コード例 #1
0
def jouer_ordi_ia19(positions, couleur):  # Priorité Alignements Troués
    """IA9 joue"""
    colA4PH = priorite_trouee(positions, 4, couleur)
    colA2PH = priorite_trouee(positions, 2, couleur)
    couleurAdversaire = inverse(couleur)
    colB4PH = priorite_trouee(positions, 4, couleurAdversaire)
    colB2PH = priorite_trouee(positions, 2, couleurAdversaire)
    if colA4PH != -1:
        return jouer(
            positions, couleur,
            colA4PH)  # A4PH : L'IA essaye en priorité d'aligner 4 pions
    elif colB4PH != -1:
        return jouer(
            positions, couleur, colB4PH
        )  # B4PH : L'IA essaye d'empêcher l'adversaire d'aligner 4 pions
    elif colB2PH != -1:
        return jouer(
            positions, couleur, colB2PH
        )  # B2PH : L'IA essaye d'empêcher l'adversaire d'aligner 2 pions
    elif colA2PH != -1:
        return jouer(positions, couleur,
                     colA2PH)  # A2PH : L'IA essaye d'aligner 2 pions
    else:
        return jouer_ordi_poids_cases(
            positions,
            couleur)  # PH   : L'IA joue dans la case qui a le plus de poids
コード例 #2
0
def jouer_ordi_ia12(positions, couleur):  # Priorité Alignements Troués
    """IA2 joue"""
    colA4PH = priorite_trouee(positions, 4, couleur)
    colA3PH = priorite_trouee(positions, 3, couleur)
    colA2PH = priorite_trouee(positions, 2, couleur)
    if colA4PH != -1:
        return jouer(
            positions, couleur,
            colA4PH)  # A4PH : L'IA essaye en priorité d'aligner 4 pions
    elif colA3PH != -1:
        return jouer(positions, couleur,
                     colA3PH)  # A3PH : L'IA essaye d'aligner 3 pions
    elif colA2PH != -1:
        return jouer(positions, couleur,
                     colA2PH)  # A2PH : L'IA essaye d'aligner 2 pions
    else:
        return jouer_ordi_poids_cases(
            positions,
            couleur)  # PH   : L'IA joue dans la case qui a le plus de poids
コード例 #3
0
def jouer_ordi_poids_cases(positions, couleur):
    """L'ordinateur joue en ne tenant compte que du poids des cases de la grille potentiellement victorieuses"""
    poidsCases = poids_cases()
    poidsColonnes = [0] * NB_COLONNES
    for colonne in range(1, NB_COLONNES + 1):
        if not colonne_pleine(positions, colonne):
            position = colonne - 1
            while positions[position]:
                position += NB_COLONNES
            poidsColonnes[colonne - 1] += poidsCases[position]
        else:
            poidsColonnes[colonne - 1] += 0
    indicesPoidsMaximum = liste_indices_maximum(poidsColonnes)
    # Si plusieurs colonnes sont possibles (même poids), on tire au hasard une colonne
    colonne = 1 + random.choice(indicesPoidsMaximum)
    return jouer(positions, couleur, colonne)
コード例 #4
0
def jouer_ordi_hasard(positions, couleur):
    """L'ordinateur joue au hasard"""
    colonne = random.randint(1, NB_COLONNES)
    while colonne_pleine(positions, colonne):
        colonne = random.randint(1, NB_COLONNES)
    return jouer(positions, couleur, colonne)