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
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
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)
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)