On va faire encore un peu mieux et charger toutes les années précédentes dispos
This commit is contained in:
parent
cd673302eb
commit
118ad55a55
1 changed files with 23 additions and 14 deletions
37
tirkdo.py
37
tirkdo.py
|
@ -13,7 +13,7 @@ participants = [
|
||||||
'Charlotte',
|
'Charlotte',
|
||||||
'Nico',
|
'Nico',
|
||||||
'Didi',
|
'Didi',
|
||||||
'Johnny',
|
# 'Johnny',
|
||||||
'Ben',
|
'Ben',
|
||||||
'Ludo',
|
'Ludo',
|
||||||
]
|
]
|
||||||
|
@ -22,19 +22,26 @@ on_evite = {
|
||||||
'Ben': 'Ludo',
|
'Ben': 'Ludo',
|
||||||
'Charlotte': 'Nico',
|
'Charlotte': 'Nico',
|
||||||
'Maman': 'Papa',
|
'Maman': 'Papa',
|
||||||
'Didi': 'Johnny',
|
# 'Didi': 'Johnny',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
annees_passees = {}
|
||||||
|
|
||||||
# On charge le résultat de l'année dernière
|
# On charge le résultat de l'année dernière
|
||||||
nom_fichier = sys.argv[1] if len(sys.argv) > 1 else f"{annee-1}.json"
|
ancienne_annee = annee - 1
|
||||||
try:
|
while True:
|
||||||
with open(nom_fichier, "r", encoding="utf-8") as fd:
|
nom_fichier = f"{ancienne_annee}.json"
|
||||||
annee_passee = json.load(fd)
|
try:
|
||||||
print(f"Résultat de l'an passée chargé depuis le fichier {nom_fichier} :")
|
with open(nom_fichier, "r", encoding="utf-8") as fd:
|
||||||
print("\n".join([f"- {offre} => {recois}" for offre, recois in annee_passee.items()]))
|
annee_passee = json.load(fd)
|
||||||
except FileNotFoundError:
|
print(f"Résultat de l'année {ancienne_annee} chargé depuis le fichier {nom_fichier} :")
|
||||||
print(f"Échec de chargement du tirage de l'an passé depuis le fichier {nom_fichier}.")
|
print("\n".join([f"- {offre} => {recois}" for offre, recois in annee_passee.items()]))
|
||||||
sys.exit(1)
|
for offre, recois in annee_passee.items():
|
||||||
|
annees_passees[offre] = annees_passees.get(offre, []) + [recois]
|
||||||
|
ancienne_annee += -1
|
||||||
|
except FileNotFoundError:
|
||||||
|
print(f"Échec de chargement du tirage de l'an passé depuis le fichier {nom_fichier}.")
|
||||||
|
break
|
||||||
|
|
||||||
class EchecTirage(Exception):
|
class EchecTirage(Exception):
|
||||||
pass
|
pass
|
||||||
|
@ -62,8 +69,8 @@ def tirage(nb_tentatives_max=99):
|
||||||
# On évite entre couple
|
# On évite entre couple
|
||||||
if on_evite.get(offre) == recois or on_evite.get(recois) == offre:
|
if on_evite.get(offre) == recois or on_evite.get(recois) == offre:
|
||||||
continue
|
continue
|
||||||
# On évite de faire comme l'an passée
|
# On évite de faire comme les années passées
|
||||||
if annee_passee.get(offre) == recois:
|
if recois in annees_passees.get(offre, []):
|
||||||
continue
|
continue
|
||||||
# Trouvé !
|
# Trouvé !
|
||||||
result[offre] = recois
|
result[offre] = recois
|
||||||
|
@ -82,7 +89,7 @@ while not result:
|
||||||
result = None
|
result = None
|
||||||
|
|
||||||
# On affiche le résultat
|
# On affiche le résultat
|
||||||
print("Résultat du tirage pour l'année {annee} :")
|
print(f"Résultat du tirage pour l'année {annee} :")
|
||||||
for offre, recois in result.items():
|
for offre, recois in result.items():
|
||||||
print(f" - {offre} -> {recois}")
|
print(f" - {offre} -> {recois}")
|
||||||
|
|
||||||
|
@ -91,3 +98,5 @@ nom_fichier = f"{annee}.json"
|
||||||
with open(nom_fichier, "w", encoding="utf-8") as fichier:
|
with open(nom_fichier, "w", encoding="utf-8") as fichier:
|
||||||
fichier.write(json.dumps(result, indent=2, ensure_ascii=False))
|
fichier.write(json.dumps(result, indent=2, ensure_ascii=False))
|
||||||
print(f"Résultat enregistré dans le fichier {nom_fichier}.")
|
print(f"Résultat enregistré dans le fichier {nom_fichier}.")
|
||||||
|
|
||||||
|
# vim: tabstop=4 shiftwidth=4 softtabstop=4 expandtab
|
||||||
|
|
Loading…
Reference in a new issue