# 3.9.1 def ajoutMot(d, fr, en): d[fr] = en def supprimeMot(d, fr): if fr in d: del d[fr] def afficheDico(d): for fr in d: print(fr, '=', d[fr]) def afficheDicoLettre(d, l): sous_d = {} for fr in d: if fr[0] != l: continue sous_d[fr] = d[fr] afficheDico(sous_d) def afficheDicoLongueur(d, l): sous_d = {} for fr in d: if len(fr) != l: continue sous_d[fr] = d[fr] afficheDico(sous_d) d = {} ajoutMot(d, "chaise", "chair") ajoutMot(d, "lampe", "lamp") ajoutMot(d, "chat", "cat") def q_3_9_1(): print("dico complet") afficheDico(d) supprimeMot(d, "lampe") print("dico sans lampe") afficheDico(d) print("mots commencant par 'c'") afficheDicoLettre(d, 'c') print("mots commencant par 'l'") afficheDicoLettre(d, 'l') print("mots de longueur 4") afficheDicoLongueur(d, 4) #q_3_9_1() # 3.9.2 import random def traduire(d, fr): return d[fr] def jouerUnMot(d): fr = random.choice(list(d)) en = input("Comment traduire '" + fr + "' en anglais ? ") succes = (en == traduire(d, fr)) if succes: print("Bravo !") else: print("Perdu…") return succes def q_3_9_2(): n = 0 succes = 0 while True: if jouerUnMot(d): succes += 1 n += 1 if input("On continue ? [o/n] ") != 'o': break print("Tu as fait un score de", succes, "bonnes réponses sur", n, "questions.") #q_3_9_2() # 3.9.3 multi-joueurs def gagnant(scores): m = 0 gagnant = '' for nom in scores: score = scores[nom] if score > m: m = score gagnant = nom return gagnant, scores[gagnant] def tableau(scores, n): gagnants = {} for nom in scores: score = scores[nom] if score in gagnants: gagnants[score].append(nom) else: gagnants[score] = [nom] scores = list(gagnants) scores.sort() i = 0 r = 0 for score in scores[-1::-1]: r += 1 noms = gagnants[score] noms.sort() for nom in noms: print(format(i, '>2') + '. ' + format(nom, "10") + " " + format(score/n, ">3.0%")) i += 1 if i >= 3: break if i >= 3: break def q_3_9_3(): scores = {} n = int(input("nombre de joueurs ? ")) for _ in range(n): nom = input("nom du joueur ? ") scores[nom] = 0 n = int(input("nombre de tours ? ")) for _ in range(n): fr = random.choice(list(d)) for nom in scores: en = input('joueur ' + nom +', comment dire ' + fr + ' en anglais ? ') if d[fr] == en: scores[nom] += 1 print('bravo !') else: print('eh non…') tableau(scores, n) q_3_9_3()