GeVaUdAn974
Messages postés25Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 4 décembre 2005
-
12 juil. 2005 à 11:17
GeVaUdAn974
Messages postés25Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 4 décembre 2005
-
13 juil. 2005 à 17:57
salut !!!
je voudrais detecter plusieurs réponses a une seule question.
en sachant que les réponses se trouve dans un fichier.txt , j'ai essayé %reponse $read(mots.txt, s, cha) pour lire les mot commencant par "cha" , et
on *:text:*:#:{
var %text = $strip($1-)
if %text == $strip(%reponse) {
msg $chan blah blah...
pour detecter les réponses, mais sa ne marche pas :(
si vous avez des petites idées , je suis preneur
merci a bientot
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 12 juil. 2005 à 12:15
le $read(.txt,s,*) marche pas chez moi, enfin ce n'est pas fiable
j'utiliserai les hash tables pour ça, avec hload -i (pour partir d'un .ini, sur la table que tu auras préalablement créé avec /hmake), et tu peux utiliser $hmatch
ton .ini :
[reponses]
chat="ce que tu veux"
char="ce que tu veux"
pour avoir les réponses avec $hmatch :
$hmatch("table",cha*,0)
te donnera 2
$hmatch("table",cha*,1) te donnera soit chat soit char
il te faudra donc une boucle pour trouver tout ce qui concorde avec ton joker
var %t =1, %max = $hmatch("table",cha*,0)
while %t <= %max {
echo -a $hmatch("table",cha*,%t)
inc %t
}
j'espère que c'est bien ça ce que tu as demandé :p
S333
Messages postés266Date d'inscriptionvendredi 8 juillet 2005StatutMembreDernière intervention26 juin 2008 12 juil. 2005 à 15:02
Je pense que la réponse de huitre convient, mais n'oublie pas de
rajouter $strip, mais aussi $replace (il faut remplacer les é par e
etc... pour que ton quizz soit moins exigeant ^^)
----------------------------------------------
Signature des parents :
Vous n’avez pas trouvé la réponse que vous recherchez ?
GeVaUdAn974
Messages postés25Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 4 décembre 2005 12 juil. 2005 à 16:16
merci beaucoup pour votre aide "huitre" et "s333"
mais huitre, pourais-tu m'expliquer ton code? je ne comprend pas tout !!! juste m'expliqué pourquoi tu incrémente la variable %i et oci me donner plus de précision sur la boucle while !!! (j'ai déja lu et relu le fichier /help while et goto mais je ne comprend pas tout ) donc si jamais tu as un petit temps a me consacrer , c'est sans aucune obligation bien entendu... en tout cas merci, je vais voir si ton code fonctionne dans ma remote
++
on regarde si le text de celui qui a parlé est
present dans les reponse possible . si oui on dis blabla, sinon on
incremente pour voir si ce n'est pas une autre reponse possible
inc %i
J'ai rajouté des ptit oublie de huitre je crois...
GeVaUdAn974
Messages postés25Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 4 décembre 2005 12 juil. 2005 à 17:16
me revoila !!!
juste pour une petite info concernant mon fichier.txt. Mes questions et mes réponses ne se situe pas dans le meme fichier... ex: question.txt pour les questions, et réponses.txt pour les réponses ( mes réponses sont en faite toute une liste de mots allant de A à Z) c'est pour faire un jeu de "mot" , en faite la question est par exemple: Trouver le plus de mots commencant par "cha" Donc les réponses peuvent être "chanter", "champ"...
voila c'était juste pour préciser ^^ parsque j'ai un doute sur la commande $lines et $readn
je vais faire des essais de mon coté...
++
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 12 juil. 2005 à 18:46
Soit un peu plus précis sur le format de ton fichier question. Pour ton fichier réponse, on saisi bien la manière dont il est constitué mais le fichier question on n'en sait rien. Tout est dans la manière de contrôler et récupérer les données de tes fichiers txt.
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 12 juil. 2005 à 21:23
toujours avec hash tables, en modifiant ton .txt légèrement :
if ($hmatch("table","la réponse que la personne a donné",0)) echo ce mot est dans la liste
ça te dira si le mot que la personne a donné est dans ta liste
il vaut mieux prendre les hash tables que de faire une boucle sur un $read tout le temps :x c'est surtout pour la rapidité de vérication
Nolson
Messages postés216Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention16 mars 2006 13 juil. 2005 à 00:54
Le principe est simple. Quand tu auras appris à gérer les hash tables, tu pourras appliquer le principe pour gagner en vitesse d'execution. Voici le principe avec tes fichiers txt :
Surtout ne pas utiliser de boucles. D'après la forme de tes fichiers :
1- Tu prends une question au hasard dans ton fichier questions.txt (à l'aide de $read) et tu la stockes dans une variable %question.
2- Cette variable contient 2 éléments importants, ceux que tu as mis en gras dans ton exemple. Donc le 4ème et le 6 ème mot. Tu stockes ces 2 critères dans 2 variables (utilise $gettok)
3- Sur un ON TEXT tu vérifies si le mot ($1) entré par le joueur correspond aux critères de ta question. Si le critère1 est "commençant" et si les x premières lettres du mot correspondent au critère2 ou si le critère1 est "finissant" et si les x dernières lettres du mot correspondent au critère2 (utilise if, &&, ||, $left, $right, $len)
4- Si le test est ok tu vérifies si le mot est dans ton fichier réponse : if ($read(reponses.txt,w,$1)) 5- Si c'est ok, tu effectues l'action que tu désires.
Je viens de faire un un petit test en 2 minutes sur un fichier txt de + de 350000 mots et ça prend au maximum 5 centièmes de seconde.
GeVaUdAn974
Messages postés25Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 4 décembre 2005 13 juil. 2005 à 17:57
lol, bon je vais essayer d'en apprendre plus sur les hash table, je teste vos code pour voir si sa marche et apré normalement je n'auré pas a revenir ici...
mais on ne sais jamais, alors peut être a plus tard :)