Verifier si un mot n'est pas dans un .txt ou une variable [Résolu]

Messages postés
17
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
29 mars 2010
- - Dernière réponse : alanpersonproject
Messages postés
17
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
29 mars 2010
- 28 oct. 2009 à 11:57
Bonjour,
je code un petite jeu type "liste gagnante"
Mon bot va vérifier si les reponses des joueurs sont bonnes comme ceci:
if (%game == on) {
if ($read(%reponse,w,$1-)) {
.inc %score [ $+ [ $nick ] ]
.msg $chan + 1 pour $nick tu as désormais %score [ $+ [ $nick ] ]
}
A ce stade le bot vérifie bien le mot dans le fichier.txt mais je n'arrive pas a trouver comment faire si le mot n'y est pas. 

%reponse étant le nom du fichier.txt ou ce trouve les réponses.
Comment faire quand le mot ou la phrase d'un joueur n'est pas dans le fichier.txt ?
J'avais pensé stocké les bonnes réponses proposées dans un fichier.txt temporaire en ajoutant /write dejadis.txt $1- a la derniere ligne du code plus haut avec l'option /write -c dejadis.txt liste vide a la fin de la partie. Mais j'arrive pas faire la condition "si le mot est dans %reponse && n'est pas dans dejadis.txt .
j'espere avoir été assez clair et vous remercie par avances pour votre aide.
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
3
Merci
ben de la même façon : $read(fichier,w,recherche joker) renvoi la première ligne qui correspond a la recherche si au moins une ligne correspond a cette recherche, sinon ça renvoi $null donc

if ($read(%reponse,w,$1-)) {
if ($read(déjadi.txt,w,$1-) == $null) { réponse déja dite }
else { réponse valide }
}
else { réponse invalide }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 215 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_wims
Messages postés
17
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
29 mars 2010
0
Merci
Merci wims ,j'avais pas pensé a else (c'est mon premier code alors je tatonne un peu). Entre temps j'avais trouvé en faisant un goto (en faisant if ($read(dejadis.txt,w,$1-)) goto :end) Mais ta soluce me semble mieux. Je vais tester ça et te tiens au courant. Si j'ai bien compris, dans la même boucle on peut préciser deux if et ensuite deux else, le premier else étant le résultat du premier if etc....
Commenter la réponse de alanpersonproject
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
0
Merci
Je pense que tu as compris, mais pourquoi parles tu de boucle ?
Le else exprime la condition contraire à toutes les autres.
Commenter la réponse de cs_wims
Messages postés
17
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
29 mars 2010
0
Merci
oui je me suis mal exprimé ^^
je voulais dire par la que mon jeu entier est basé sur un seul on text.
donc je sais pas ce qu'on appelle des boucle (le boulet :) ) mais en tout cas j'ai tout les paramètres du jeu sont sur ce on text. Merci en tout cas, car mon jeu est presque fini maintenant. Si il a pas de bug je le posterai afin d'avoir ton avis et celui des autres histoire d'améliorer le code s'il y a lieu.
Commenter la réponse de alanpersonproject