Aide pour verifier un mot dans un fichier texte [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 : 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...
:)
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
97
Date d'inscription
mardi 24 janvier 2006
Statut
Membre
Dernière intervention
3 mai 2011
3
Merci
Bonjour AlanParsonProject,

Peux tu nous montrer ce que tu as déjà codé qe l'on puisse essayer de t'aider ?

Dire « Merci » 3

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

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

Commenter la réponse de Mauricelepoisson
Messages postés
17
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
29 mars 2010
0
Merci
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.
Commenter la réponse de alanpersonproject
Messages postés
17
Date d'inscription
samedi 10 janvier 2009
Statut
Membre
Dernière intervention
29 mars 2010
0
Merci
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 ^^.
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
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 :)
Commenter la réponse de cs_wims