Verifier si un mot n'est pas dans un .txt ou une variable

Résolu
alanpersonproject Messages postés 17 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 29 mars 2010 - 26 oct. 2009 à 09:10
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.

4 réponses

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
27 oct. 2009 à 01:55
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 }
3
alanpersonproject Messages postés 17 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 29 mars 2010
27 oct. 2009 à 05:59
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....
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
27 oct. 2009 à 15:00
Je pense que tu as compris, mais pourquoi parles tu de boucle ?
Le else exprime la condition contraire à toutes les autres.
0
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
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.
0
Rejoignez-nous