def main(nbLignes, nbColonnes, nb_coups_avance_blanc=0): if nbLignes <= 1 or nbColonnes <= 1: raise ValueError( "Le nombre de lignes et de colonnes doit être supérieur ou égale à 2" ) if nb_coups_avance_blanc < 0: raise ValueError("On peut pas retourner en arrière") grille = Grille(nbLignes, nbColonnes) for i in range(nb_coups_avance_blanc): mouv = choice(grille.possibilitesJoueur(grille.joueurActuel)) nouvelle_grille = grille.effectuerAction(mouv) grille.grille = nouvelle_grille.grille del nouvelle_grille print( f"Grille initiale (avec {nb_coups_avance_blanc} coups d'avance pour le joueur blanc):" ) print(grille) while not grille.estTermine(): joueur = grille.joueurActuel mouvements = grille.possibilitesJoueur(joueur) print(mouvements) mouv = choice(mouvements) grille = grille.effectuerAction(mouv) print(grille.possibilitesJoueur(grille.joueurActuel)) return grille
def main(nbLignes, nbColonnes, nb_coups_avance_blanc=0, profondeur_raisonnement_noir=1, profondeur_raisonnement_blanc=1, alphabeta_utilisation=True): if nbLignes <= 1 or nbColonnes <= 1: raise ValueError( "Le nombre de lignes et de colonnes doit être supérieur ou égale à 2" ) if nb_coups_avance_blanc < 0: raise ValueError("On peut pas retourner en arrière") if profondeur_raisonnement_blanc < 1: raise ValueError( "Il faut que l'IA puisse réfléchir. Mettez un nombre >= 1") if profondeur_raisonnement_noir < 1: raise ValueError( "Il faut que l'IA puisse réfléchir. Mettez un nombre >= 1") historique_grille = [] grille = Grille(nbLignes, nbColonnes) ia_blanc = IA('blanc', profondeur_raisonnement_blanc, alphabeta_utilisation) ia_noir = IA('noir', profondeur_raisonnement_noir, alphabeta_utilisation) for i in range(nb_coups_avance_blanc): mouv = ia_blanc.play(grille) nouvelle_grille = grille.effectuerAction(mouv) grille.grille = nouvelle_grille.grille del nouvelle_grille print( f"Grille initiale (avec {nb_coups_avance_blanc} coups d'avance pour le joueur blanc):" ) print(grille) while not grille.estTermine() and not any( [grille == h for h in historique_grille]): historique_grille.append(grille) joueur = grille.joueurActuel if joueur == 'blanc': mouvement = ia_blanc.play(grille) else: mouvement = ia_noir.play(grille) grille = grille.effectuerAction(mouvement) return grille, ia_blanc, ia_noir