Aide pour verifier un mot dans un fichier texte

Résolu
alanpersonproject Messages postés 17 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 29 mars 2010 - 13 oct. 2009 à 13:39
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 - 20 déc. 2009 à 03:41
Bonjour,
j'ai commencé à coder un petit jeu ou il faut donner une liste de mot sur un thème précis. le jeu se lance correctement en fonction des paramètres que j'ai établi. La ou ça bloque c'est au moment de vérifier les réponses du joueur. Apres avoir un peu cherché il semblerai qu'il faille que je regarde du coté du $gettok et de $read mais je n'arrive pas a trouver la bonne syntaxe. Si quelqu'un a la gentillesse sinon de me montrer un exemple, de m'expliquer un peu comment faire. (Le jeu a besoin de vérifier aussi si la réponse a déjà été donnée,je compte écrire les réponses du joueur dans un fichier txt et ainsi de vérifier si elles s'y trouvent,en rajoutant l'option d'effacer le fichier a la fin de la partie)
Merci d'avances pour vos conseils.


A l'école, en algèbre, j'étais du genre Einstein. Mais plutôt Franck qu'Albert...
:)

4 réponses

Mauricelepoisson Messages postés 97 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 3 mai 2011 1
13 oct. 2009 à 14:26
Bonjour AlanParsonProject,

Peux tu nous montrer ce que tu as déjà codé qe l'on puisse essayer de t'aider ?
3
alanpersonproject Messages postés 17 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 29 mars 2010
26 oct. 2009 à 06:51
bonjour,
merci Mauricelepoisson d'avoir répondu a mon message et désolé pour ma part de répondre que maintenant mais j'ai eu un souci de connexion. alors j'en suis la: j'ai trouvé comment faire pour le $read :
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.
0
alanpersonproject Messages postés 17 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 29 mars 2010
26 oct. 2009 à 08:13
Oups ,je suis mal reveillé :) , c'est pas ça. Vu le bout de code en haut si le mot y est pas ben ça fais rien du tout, donc c'est bon. Ce que je veux faire c'est éviter les répétitions. Par exemple le thème de la liste est animaux commençant par "L", y en a un qui dis "lion". le bot dis donc +1 pour $nick. Mais si un autre dis encore "lion",ben il va redire pareil et donner aussi un point. J'ai pensé ajouter un /write dejadis.txt $1- (avec option /write -c dejadis.txt Listevide ,a la fin du jeu) a la dernière ligne du code plus haut. Mais je bloque après...
if (%game == on) {
if ($read(%reponse,w,$1-)) && (mot n'est pas dans dejadis.txt) {
.inc %score [ $+ [ $nick ] ]
.msg $chan + 1 pour $nick tu as désormais %score [ $+ [ $nick ] ]
}
je vois pas comment faire.
Peut être y a t il plus simple.. Merci de m'aider ^^.
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
20 déc. 2009 à 03:41
if (%game == on) {
if ($read(%reponse,w,$1-)) && (mot n'est pas dans dejadis.txt) {
.inc %score [ $+ [ $nick ] ]
.msg $chan + 1 pour $nick tu as désormais %score [ $+ [ $nick ] ]
}
je vois pas comment faire.

ça, ça veut dire que tu n'est pas capable d'expliquer le bout de code que tu as fais.

Pour exprimer "si la réponse est juste", tu exprime en fait "si une des lignes du fichier correspond a la réponse".
la condition en elle même :
if ($read(%reponse,w,$1-))
n'est vrai que si la valeur du $read est différente de $null, $false, et 0
Ceci signifie que si une des réponses valides est $false ou 0, et qu'un user répond une de ces réponses, la condition sera fausse (ceci n'est qu'une note pour toi, c'est un éventuel bug).
Tout ceci nous amène a quoi :
tu écris if ($read(%reponse,w,$1-)) (qui devrait donc être if ($read(%reponse,w,$1-) != $null) pour être propre (surtout pour accépté le 0 et $false en réponses juste au final)) ce qui amène a dire "si la valeur de $read est différente de $null, la réponse du joueur est dans le fichier", a l'inverse tu peux donc dire "si la valeur de $read est $null la réponse de l'user n'est pas dans le fichier (donc il ne l'a pas déja dis)

bon 3h39, j'espère que ce que j'ai dis est clair parce que j'ai la flemme de relire :)
0
Rejoignez-nous