Deutsch   English   Français   Italiano  
<uk4fm4$852n$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Dominique <dominique.sextant@orange.fr.invalid>
Newsgroups: fr.comp.lang.python
Subject: Tricher au scrabble...
Date: Tue, 28 Nov 2023 11:33:38 +0100
Organization: A noiseless patient Spider
Lines: 62
Message-ID: <uk4fm4$852n$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 28 Nov 2023 10:33:40 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="f64030d23be6c134d3d3404674ad6565";
	logging-data="267351"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18VpAEsX+EJ91F15QF5rvBTVueSyreNdyg="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:WYHf3/6VqcqW0iwu/qpEfoQ46uA=
Content-Language: fr
Bytes: 2838

Bonjour,

Je m'amuse à faire un logiciel de triche au Scrabble. J'ai bien les 
presque 350 000 mots en français au format txt.

Voici mes débuts :

-----------------------------------------
f=open('/home/USER/dico.txt')
scrabble=dict()
for i in f:
     j=i[:-1]
     mot=list(j)
     mot.sort()
     mot=''.join(mot)
     scrabble[str(mot)]=j
del (mot)
del (i)
del(j)
del (f)
print('Création du dictionnaire terminée')

test='xx'
while test=='xx':
     lettres=input('Lettres ')
     lettres=list(lettres)
     lettres.sort()
     lettres=''.join(lettres)
     if lettres!='xx':
         if lettres in scrabble.keys():
             print(scrabble[lettres])
     else:
         test=9
-----------------------------------------

Ce script fonctionne en deux blocs. Le premier, qui ne tourne qu'une 
fois, charge le dico.text. Il parcourt chaque mot, le transforme en 
liste, met les lettre par ordre alpha croissant, reconstitue un string 
avec join. Il affecte comme values à cette keys le mot d'origine j.

Le deuxième bloc me demande mes lettres, les transforme en liste, les 
classe par ordre alpha, reconstitue un string et voit si cette variable 
existe en keys dans mon dictionnaire scrabble, ce à quoi il me donne la 
values correspondant.

Il répond à la question, dès lors que les lettres que je lui soumets 
existent à l'identique en clef. J'ai des limites. Par exemple, avec les 
lettre aberv, il me proposera brave mais pas baver.

La vraie limite vient de ce que je ne vois pas trop comment faire pour 
que l'application cherche un mot avec mes 7 lettres, en cas d'échec, 
avec 6 lettres etc. Je pense que je pourrais utiliser les outils 
d'itertools (combination ou permutations. mais j'ai peur que les temps 
de traitements deviennent très longs...

Comment verriez-vous les choses ?

Merci et belle journée à vous tous,

-- 
Dominique
Esto quod es