From cb178642655424417e90e99ed5f35b3258567758 Mon Sep 17 00:00:00 2001 From: Antoine Van Elstraete Date: Mon, 24 Jan 2022 20:16:31 +0100 Subject: [PATCH] Fonction "First Try" --- wgamesolv.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/wgamesolv.py b/wgamesolv.py index 37cb41f..3af76cf 100755 --- a/wgamesolv.py +++ b/wgamesolv.py @@ -27,17 +27,20 @@ def noDouble(mots): ndList.append(mot) return(ndList) -# First Try : sélectionne des mots ayant des chances de valider ou invalider des voyelles -def firstTryFilter(mots, ft): - vLetters = ['A', 'E', 'I', 'O', 'U', 'Y'] +def firstTryFilter(mots, max_mots): + ''' + First Try : sélectionne des mots ayant des chances de valider ou invalider + l'une des lettres les plus utilisée en français + ''' + bestLetters = ['E', 'A', 'I', 'R', 'S', 'N', 'T', 'O', 'L', 'U'] bestWords = [] for mot in mots: - vCount = 0 - for l in mot: - if l in vLetters: - vCount +=1 - if vCount >= ft: - bestWords.append(mot) + for bestLetter in bestLetters: + if bestLetter in mot: + bestWords.append(mot) + bestWords = list(set(bestWords)) + bestWords = noDouble(bestWords) # Autant maximiser les chances + bestWords = bestWords[0:max_mots] return(bestWords) # Fonction de comparaison des lettres d'un mot, avec celle de la pattern @@ -193,6 +196,15 @@ if __name__ == "__main__": liste = resolv_fl(liste, args.firstLetter) if args.noDoubleLetters: liste = noDouble(liste) + if args.firstTry: + liste = firstTryFilter(liste, args.firstTry) + if len(liste) == 1: + print(f"Essaie : \"{liste[0]}\"") + elif len(liste) > 1: + print(f"Mots à tester : {liste}") + else: + print("Hmmm... Je crois qu'on s'est perdu...") + exit(0) if len(liste) > 1: print(liste) print(f"Il y a {len(liste)} mots dans la liste")