# -*- coding:utf-8 -*- __projet__ = "Corrections" __nom_fichier__ = "coloriage" __author__ = "Christine Fay-Varnier" __date__ = "mai 2021" def theoreme_4_couleurs(dico_couleur): """ :param dico_couleur: dictionnaire associant à chaque région sa couleur :return: True s'il y a au plus 4 couleurs différentes False sinon """ lcouleurs = [] # liste des couleurs utilisées pour colorier la carte for region, coul in dico_couleur.items(): # pour chaque région stockée dans le dictionnaire # on ajoute la couleur dans la liste des couleurs de façon à ce que la couleur d'apparaisse qu'une fois if coul not in lcouleurs: lcouleurs.append(coul) # dès que la longueur de la liste des couleurs dépasse 4 on peut retourner False if len(lcouleurs)>4: return False return True def couleur(carte, lig, col, dico_couleurs): """ :param carte: matrice de regions :param lig: numéro de ligne :param col: numéro de colonne :param dico_couleurs: associe à ue région sa couleur :return: la couleur de la case de lig, col """ region = carte[lig][col] return dico_couleurs[region] def voisin_commun(dico_voisins, reg1, reg2): """ :param dico_voisins: dictionnaire des voisins :param reg1: région :param reg2: région :return: True si reg1 et reg2 ont un voisin commun """ for voisin in dico_voisins[reg1]: if voisin in dico_voisins[reg2]: return True return False if __name__ == '__main__': couleur_region = {'C': 'green', 'B': 'blue', 'D': 'red', 'F': 'red', 'E': 'green', 'A': 'yellow'} print(theoreme_4_couleurs(couleur_region)) couleur_region = {'C': 'green', 'B': 'blue', 'D': 'red', 'F': 'red', 'E': 'pink', 'A': 'yellow'} print(theoreme_4_couleurs(couleur_region)) dico_voisins = {'C': ['B', 'D'], 'B': ['C', 'F', 'D', 'E', 'A'], 'D': ['C', 'B'], 'F': ['C', 'B', 'E', 'A'], 'E': ['F', 'A'], 'A': ['C', 'F', 'B', 'E']} print(voisin_commun(dico_voisins, 'C', 'A')) print(voisin_commun(dico_voisins, 'E', 'C'))