# -*- coding:utf-8 -*- __projet__ = "CoursS5" __nom_fichier__ = "12_mastermind" __author__ = "A-J. Tinet" __date__ = "décembre 2022" """ ======================================================================================================================== Ex. 12 - MASTER MIND ======================================================================================================================== """ # Import de bibliothèque from random import randint # Définition de fonctions def test_combinaison(solution, proposition): """ Compare la proposition du joueur à la solution et renvoie le nombre de pion blancs et noirs :param solution: Liste de couleurs à trouver :param proposition: Liste de couleurs proposée par le joueur :return: Nombre de pions noirs (couleur correcte et bien placée) et blancs (couleur correcte et mal placée) """ # Initialisation noir, blanc = 0,0 # Couleurs déjà comptées (pour le calcul des pions blancs dejavu = [] # On compte les pions noirs for i in range(len(solution)): couleur = solution[i] # Comptage des pions noirs if proposition[i] == couleur: noir += 1 # Comptage des pions noirs et blancs if couleur not in dejavu: nsol = solution.count(couleur) nprop = proposition.count(couleur) blanc += min(nsol, nprop) dejavu.append(couleur) return noir, blanc - noir def jeu_du_masterming(lcouleurs, ncoup = 10): """ :param lcouleurs: Liste des couleurs à disposition :return: None """ print("Liste des couleurs à disposition : ",lcouleurs) # Tirage au sort de la solution solution = [lcouleurs[randint(0,len(lcouleurs)-1)] for i in range(4)] # Jeu du mastermind for i in range(ncoup): # On demande une combinaison proposition = eval(input("Choisir une liste de 4 couleurs : ")) noir, blanc = test_combinaison(solution, proposition) print("Temoins : ",noir, " noirs et ",blanc, " blancs ") if noir == 4: print("Vous avez gagné.") return print("Vous avez perdu. La solution était ",solution) # Programme principal if __name__ == '__main__': lcouleurs = ["blue","green","yellow","red","cyan","magenta"] # Test de la fonction test_combinaison print(test_combinaison(["b","b","k","y","o","r","r","r","p"],["o","b","t","r","o","y","y","r","t"])) # 3 N, 2 B jeu_du_masterming(lcouleurs)