mariasorciere
Messages postés11Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention11 juin 2005
-
23 mai 2005 à 11:54
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006
-
25 mai 2005 à 10:29
re-salut a tous !!
je n'arrive toujours pas a trouver comment relier mes réponses avec mes questions :(
alors en voyant que j'ais reçu des réponses ayant rien a voir avec ma question posé, je reformule ma requete...
mon bot pose des questions aléatoirement.
" $gettok($read(question.txt),1,92) "
Donc si je met set %question $gettok($read(question.txt),1,92) , sa va me donner la meme question a chaqur fois :/
Alors j'ais trouvé une solution (qui n'est surement pas la meilleur), je met a chaque fois timer $gettok($read(question.txt),1,92), et la sa me done des questions diférentes a chaque fois, mais le probléme, c'est que je n'arrive pas a relier la réponse avec la question donné :(
j'espére que cette fois ci je me serais mieux exprimé ^^
merci d'avance pour votre aide ++
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 23 mai 2005 à 14:10
Il faut des précisions. C'est pas très clair.
As-tu un unique fichier .txt contenant les questions et les réponses ou tu as 2 fichiers .txt séparés?
Comment as-tu agencé les questions et les réponses dans ton ou tes fichiers .txt? Montre-nous quelques lignes d'exemple.
Généralement le format est le suivant (questions et réponses dans le même fichier) :
question séparateur(token) réponse
Pour lire une question au hasard et en déterminer sa réponse c'est simple, admettons que ton séparateur soit \ [$chr(92)] :
;à chaque nouvelle question
var %q = $read(fichier.txt)
$gettok(%q,1,92) représente la question
$gettok(%q,2,92) réprésente la réponse
Bon ceci est le cas général mais ne s'applique peut-être pas à ton bot, dans ce cas, précise un peu.
cs_Huitre
Messages postés290Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention29 février 2008 24 mai 2005 à 00:13
c tres tres facile !
utilise l identifiant $readn qui retourne la ligne du fichier, tu n
auras qu a $read(tonfichier.txt,%ligne) ou ligne est le numero de la
ligne prealablement stocké ds %ligne.
Ou bien stock directement a la lecture de la question, la reponse comme la stipulé nolson.
mariasorciere
Messages postés11Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention11 juin 2005 24 mai 2005 à 09:04
re-salut !!!
je vais vous montrer un début de code pour y voir plus claire...
PS: je crois que j'ai apliqué ta méthode nolson.
on *:text:!plop*:#:{ if (%jeu.status == on ) {
/msg $chan plop }
else (%jeu.status == off) {
set %jeu.status on
/msg $chan go for test
var %question $gettok($read(question.txt),1,92)
set %ligne $readn
timer 1 3 /msg $chan 12[Question] : %question
.....etc.........
sa c'est pour poser les questions...
maintenant voila pour les réponses...
on *:text:*:#:{
if %jeu.status == on {
var %text = $strip($1-)
if %text == $strip($gettok($read(question-maillon.txt,%ligne),2,92)) {
/msg $chan bravo $nick
......etc..........
donc voila le blèm, si je met "var %question $gettok($read(question.txt),1,92)" il vas me lire la meme question a chaque fois :/
mais les réponses sont acordé avec la question posé.
Et si je met "$gettok($read(question.txt),1,92)" a chaque ligne où la
question doit être posé, (a la place de %question) sa me donne des
questions différentes a chaque fois, mais les réponses ne sont pas
reliées avec la question posé aléatoirement :/
donc voila, dans les 2 cas il me manque un truc :(
PS: je précise que je me suis aidé d'un autre code-source pour le on *:text:*:#:{
merci @ ++ ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 24 mai 2005 à 09:24
Apparemment tu as deux fichiers .txt, un pour les questions et un pour les réponses.
Comme je te l'ai demandé plus haut, montre-nous quelques lignes de chacun de ces 2 fichiers .txt, afin qu'on connaissent leurs structures.
Ainsi on pourra mieux t'aider car là on ne voit pas vraiment comment récupérer l'information.
fjxokt
Messages postés840Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention25 février 20091 24 mai 2005 à 13:31
sinon ce que tu peux faire, c'est au lieu de stocker le numero de la
ligne dans ta question, tu stock la question-reponse dans une var: set %qr = $read(questions.txt)
et pour la lire: msg $chan $gettok(%qr,1,92)
ensuite dans ta partie reponse, tu verifie par un: if $strip($1-) == $gettok(%qr,2,92) { bravo $nick }
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 25 mai 2005 à 10:29
Bah dans ta source tu as 2 fichiers différents.
Bref, donc si tu as tout dans le même fichier et la question séparée de la réponse par le token \ ($chr(92)) ça correspond au cas général et comme j'ai dit précédemment :
var %q = $read(fichier.txt) pour stocker ta ligne prise au hasard contenant la question et la réponse $gettok(%q,1,92) représente la question $gettok(%q,2,92) réprésente la réponse
Sépare ton code en plusieurs étapes avec des alias différents et ne fait pas le traitement directement dans le ON TEXT. Ne mets dans le ON TEXT que les tests sur les mots saisis et ensuite bascule le traitement sur un alias.
Par exemple fais :
- un alias "demarrage du quizz"
- un alias "question" (stockage d'une ligne au hasard + envoie de la question)
- un alias "bonne réponse"
- un alias "personne n'a trouvé"
etc...