begin process at 2010 07 29 15:48:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > PROGRAMME POUR LES MOTS CROISÉS

PROGRAMME POUR LES MOTS CROISÉS


 Description

Cliquez pour voir la capture en taille normale
voici un petit programme très simple qui ouvre un dico et demande à l'utilisateur un mot avec des espaces et cherche dans le dictionnaire si un mot peut remplir ces espaces.
par example : d f    le donnera difficile.

le zip contient le dico medium et small et la source.
Je précise aussi que cette source est compilable par shedskin.

j'attends des conseils et des critiques !!

Source

  • # variables, a typage statique pour shedskin
  • dicostart = []
  • tailleok = []
  • ok = []
  • egal = False
  • text = "first time"
  • compteur = 0
  • print "programme de resolution de mots croises par dictionnaire par clem120%\na tout moment vous pouvez taper help pour obtenir de l'aide"
  • print "-------------------------------------------------------------------------------"
  • # selection du dictionnaire de mots
  • print "\nentrez small pour avoir le petit dico fr (ultrarapide, petit, tres fiable)"
  • print "entrez latin pour avoir le dico latin (rapide, moyen, tres fiable)"
  • print "entrez medium pour avoir le dico fr moyen (rapide, gros, moyennement fiable)"
  • print "entrez big pour avoir le gros dico fr (lent, tres gros, peu fiable)"
  • while True:
  • print "\nentrez le nom du dico :",
  • adresse = raw_input()
  • # interpretation de la saisie
  • if adresse == "small":
  • adresse = "top10000fr.txt"
  • elif adresse == "medium":
  • adresse = "dictionary_french.dic"
  • elif adresse == "big":
  • adresse = "wordlist.txt"
  • elif adresse == "latin":
  • adresse = "dictionary_latin.dic"
  • if adresse == "help": # l'aide a tout moment
  • print "\nentrez small pour avoir le petit dico fr (ultrarapide, petit, tres fiable)"
  • print "entrez latin pour avoir le dico latin (rapide, moyen, tres fiable)"
  • print "entrez medium pour avoir le dico fr moyen (rapide, gros, moyennement fiable)"
  • print "entrez big pour avoir le gros dico fr (lent, tres gros, peu fiable)"
  • # ouverture du dico
  • try:
  • if adresse != "help":
  • Liste=file(adresse,'r')
  • print "ouverture du dico..."
  • Ligne=Liste.readline()
  • break
  • except:
  • print "impossible d'ouvrir le fichier indique"
  • # fichier -> liste de mots, ligne par ligne
  • while Ligne<>"":
  • dicostart.append(Ligne)
  • Ligne=Liste.readline()
  • Liste.close()
  • # nouvelle liste de mots sans \n et en minuscule
  • dico = []
  • for mot in dicostart:
  • mot.lower()
  • dico.append(mot[0:len(mot)-1])
  • # entree du mot a rechercher
  • while True:
  • tailleok = []
  • ok = []
  • print "veuillez entrer le mot, mettez un espace ou vous ne savez pas :",
  • text = raw_input()
  • if text == "":
  • break
  • print "--------------------------------------------------------------------------------"
  • # nouvelle liste avec les mots de bonne taille
  • for mot in dico:
  • if len(mot) == len(text):
  • tailleok.append(mot)
  • # test pour savoir si les deux mots peuvent etres ==
  • print "tests sur les mots..."
  • for mot in tailleok:
  • compteur = 0
  • for lettre in mot:
  • if lettre == text[compteur] or text[compteur] == " ":
  • egal = True
  • else:
  • egal = False
  • break
  • compteur += 1
  • if egal == True:
  • ok.append(mot)
  • # affichage des mots trouves
  • if len(ok)>0:
  • print "\nvoici la liste des mots possibles :"
  • print "-------------------------------------------------------------------------------"
  • for mot in ok:
  • print mot, " ",
  • print "\n--------------------------------------------------------------------------------"
  • else:
  • print "aucun mot ne correspond"
# variables, a typage statique pour shedskin
dicostart = []
tailleok = []
ok = []
egal = False
text = "first time"
compteur = 0

print "programme de resolution de mots croises par dictionnaire par clem120%\na tout moment vous pouvez taper help pour obtenir de l'aide"
print "-------------------------------------------------------------------------------"

# selection du dictionnaire de mots
print "\nentrez small pour avoir le petit dico fr (ultrarapide, petit, tres fiable)"
print "entrez latin pour avoir le dico latin (rapide, moyen, tres fiable)"
print "entrez medium pour avoir le dico fr moyen (rapide, gros, moyennement fiable)"
print "entrez big pour avoir le gros dico fr (lent, tres gros, peu fiable)"

while True:
 print "\nentrez le nom du dico :",
 adresse = raw_input()

 # interpretation de la saisie
 if adresse == "small":
  adresse = "top10000fr.txt"
 elif adresse == "medium":
  adresse = "dictionary_french.dic"
 elif adresse == "big":
  adresse = "wordlist.txt"
 elif adresse == "latin":
  adresse = "dictionary_latin.dic"
 if adresse == "help": # l'aide a tout moment
  print "\nentrez small pour avoir le petit dico fr (ultrarapide, petit, tres fiable)"
  print "entrez latin pour avoir le dico latin (rapide, moyen, tres fiable)"
  print "entrez medium pour avoir le dico fr moyen (rapide, gros, moyennement fiable)"
  print "entrez big pour avoir le gros dico fr (lent, tres gros, peu fiable)"

 # ouverture du dico
 try:
  if adresse != "help":
   Liste=file(adresse,'r')
   print "ouverture du dico..."
   Ligne=Liste.readline()
   break
 except:
  print "impossible d'ouvrir le fichier indique"

# fichier -> liste de mots, ligne par ligne
while Ligne<>"":
 dicostart.append(Ligne)

 Ligne=Liste.readline()
Liste.close()

# nouvelle liste de mots sans \n et en minuscule
dico = []
for mot in dicostart:
 mot.lower()
 dico.append(mot[0:len(mot)-1])

# entree du mot a rechercher
while True:
 tailleok = []
 ok = []
 print "veuillez entrer le mot, mettez un espace ou vous ne savez pas :",
 text = raw_input()
 if text == "":
  break
 print "--------------------------------------------------------------------------------"

 # nouvelle liste avec les mots de bonne taille
 for mot in dico:
  if len(mot) == len(text):
   tailleok.append(mot)

 # test pour savoir si les deux mots peuvent etres ==
 print "tests sur les mots..."
 for mot in tailleok:
  compteur = 0
  for lettre in mot:
   if lettre == text[compteur] or text[compteur] == " ":
    egal = True
   else:
    egal = False
    break
   compteur += 1
  if egal == True:
   ok.append(mot)

 # affichage des mots trouves
 if len(ok)>0:
  print "\nvoici la liste des mots possibles :"
  print "-------------------------------------------------------------------------------"
  for mot in ok:
   print mot, " ",
  print "\n--------------------------------------------------------------------------------"
 else:
  print "aucun mot ne correspond"

 Conclusion

Voilà avec cela vous n'avez aucune excuse pour ne pas vous mettre aux mots croisés.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

ANTILOG, MORT AUX .LOG
Source avec Zip Source avec une capture DIVISIONS AVEC PRÉCISION RÉGLABLE
Source avec Zip Source avec une capture VOCABULARY, RÉVISER SON VOCABULAIRE PÉDAGOGIQUEMENT
Source avec Zip Source avec une capture LE MOT LE PLUS LONG PAR DICO

 Sources de la même categorie

Source avec Zip Source avec une capture GÉNÉRATEUR DE PASSWORD par PlugnPlay666
Source avec Zip Source avec une capture VOCABULARY, RÉVISER SON VOCABULAIRE PÉDAGOGIQUEMENT par Clempython
CHANGEMENT DE CASSE par linkid
Source avec Zip CONCATÉNER DES FICHIERS TEXTES par amaury74
Source avec une capture TRADUCTEUR LEET SPEAK par hazkaal

 Sources en rapport avec celle ci

Source avec une capture RECHERCHE DE DOUBLONS DANS DES DOSSIERS. par Rano Its
RECHERCHE DE CHAINES DANS UN REPERTOIRE AVEC IGU par guillaume_pays_cevenol
RECHERCHE D'UNE CHAINE DANS DES FICHIERS par guillaume_pays_cevenol
Source avec Zip Source avec une capture ANAGRAMME PLUS! par DoudouBidou
Source avec Zip Source avec une capture RECHERCHE D'ANAGRAMME par DoudouBidou

Commentaires et avis

Commentaire de xeolin le 10/01/2010 11:17:50

if adresse == "small":
   adresse = "top10000fr.txt"
elif adresse == "medium":
   adresse = "dictionary_french.dic"
elif adresse == "big":
   adresse = "wordlist.txt"
elif adresse == "latin":
   adresse = "dictionary_latin.dic"

peut être remplacé par :
L1 =["latin","big","medium","small"]
L2=["top10000fr.txt","dictionary_french.dic","wordlist.txt","dictionary_latin.dic"]
for a in L1:
    if a==adresse : adresse=L2[L1[adresse]]

je trouve ça plus simple lorsque tu veux ensuite rajouter des références... Ici c'est limite, mais quand tu as beaucoup de choix ça devein très pratique.

sinon c'est simpatique, peut peux changer l'indentation (tabulations) parceque là je lis très dificilement le code...

Commentaire de Clempython le 10/01/2010 13:52:07

c'est peut être plus clair mais cela demande de mettre en mémoire 2 listes de plus, qu'est ce que tu en penses ?

J'indente avec des espaces, je trouve cela plus clair, mais après chacun ses goûts.

Commentaire de xeolin le 10/01/2010 15:10:14

deux listes, de toute façon il il te faut mettre en mémoire ta suite de if...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Développement particulier [ par davidoff73 ] Bonjour,   <p class="MsoNormal" st Tkinter + Text + coloration [ par Kickaha59 ] Bonjour à tous,Je souhaite colorer certains mots afficher dans une fenêtre avec la fonction Text de Tkinter.Par exemple je veux colorer en vert tout l Module de recherche de Yahoo [ par Jideone ] Salut tout le monde,Y'a t-il quelqu'un dans ce forum qui  a deja utilise   le module de recherche de yahoo "pYsearch"?merci Recherche développeur Python [ par jmvl ] Nous sommes une société d'informatique spécialisé dans le développement d'application pour grandes entereprises. Dans le cadre d'une de nos missions, Fichiers [ par Yofure ] Bien le bonjour à tous. Je suis débutant en programmation (et nouveau sur le forum ^^). Je voudrais créer un programme qui teste toutes les permutat Nulle en python ,je vous prie de m'aider [ par sawulia ] Salut! Je suis très nulle en prog, et j'ai un devoir à rendre en progra, il faut faire le jeux master mind.Est ce que quelqu'un peux corriger ma fonc Recherche de chaine [ par DoudouBidou ] Bonjour, je souhaite faire une recherche de chaine dans un texte et je pense que le module a utilis&#233; est re mais j'ignore comment. Je voudrais Comment créer des screenshots sous un dédié ? [ par Chrisvip ] Bonsoir,Comme je fais un moteur de recherche, j'ai besoin de faire des screens, malgré qu'il y a des services sur le web (toujours un défaut), j'aimer


Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales