begin process at 2012 02 08 11:48:52
  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

CALCULATRICE LIGNE DE COMMANDE - CALCUL EXACT
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 TPYCODE, TRADUCTEUR DE CODE par jonathan33350
Source avec Zip Source avec une capture INVERSEUR DE CHAÎNE DE CARACTÈRE [INTERFACE GRAPHIQUE] par SeventhSon
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

 Sources en rapport avec celle ci

Source avec une capture TRIER SES FILMS PAR GENRE - INTERFACE ZENITY OU LIGNE DE COM... par sarathai
PYSCANLOG SCANNER DE FICHIER LOG par Guillamue06
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

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...

Commentaire de saigneurdushi le 09/09/2010 11:04:59

Merci pour les dictionnaires :-)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Développement particulier [ par davidoff73 ] Bonjour,   <p class="MsoNormal" st Recherche de mots dans un fichier [ par Malrod ] Bonjour. Je débute en python et j'aimerais me faire un "moteur de recherche" pour fouiller dans des fichiers. J'aimerais ici demander la recherche 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 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 pour connexion à un site + telechargement [ par newss ] bonjour je debute dans la programmation, recherche pour apprendre a acceder à un site via python et pouvoir telecharger un texte ci trouvant, voir me


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,685 sec (3)

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