1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #liste des 8 cas possibles pour les arrivées
Possibles=[[1,1,1,1],[1,1,1,4],[1,1,3,3],[1,1,3,4],[1,2,2,2],[1,2,2,4],[1,2,3,3],[1,2,3,4]]
def Isok(arrivee):
"""Fonction de test"""
voitures=[x[0] for x in arrivee]#isoler les voitures
ranks=[x[1] for x in arrivee]#isoler les rangs
ranks.sort() #les trier
#vérifier qu'il n'y a pas de doublons dans les voitures
comptes=[voitures.count(x) for x in voitures] #nombres d'occurence des 4 voitures dans l'arrivée
if any([c>1 for c in comptes]):#si une répétition
return False #alors erreur
else:#sinon
return ranks in Possibles #tester si vraisemblable
if __name__ == "__main__":
print Isok([('A',1),('C',2),('G',4),('E',3)]);
print Isok([('A',1),('C',2),('G',2),('E',3)]);
print Isok([('A',1),('A',2),('G',4),('E',3)]);
"""Résultat:
True
False
False
""" |
Partager