OVH Cloud OVH Cloud

[DIR MX / 2004] List1 en relation avec List2

8 réponses
Avatar
Twinky
Hello

j'ai 2 listes, question et réponse
la liste de questions est posée aléatoirement
lorsque je clique sur le bouton pour valider
la réponse, j'obtiens l'index de la question
(normal vu mon code (!) ) mais je n'arrive pas
à retrouver la valeur de la liste Réponse
en fonction de la question posée

Il y doit bien avoir une relation entre les 2 listes
ou je suis complétement HS ??


--- script animation
global gListQuestion, gListRep, gRandQuest

on startmovie
gListQuestion = ["qu 1 ?","qu 2 ?"," qu 3 ?","qu 4 ?","qu 5 ?"]

gListRep = ["00","44","7","12","21"]
end

on QuestionSuivante

if gListQuestion.count > 0 then
-- question aléatoire
gRandQuest = random(gListQuestion.count)
member("Quest_txt").text = gListQuestion[gRandQuest]

-- on supprime la question pour eviter de l'avoir 2 fois
gListQuestion.deleteAt(gRandQuest)
go to "quest"
else
member("Quest_txt").text =""
go to "fin"
end if
end


--- behavior
global gListQuestion, gListRep, gRandQuest

on mouseUp
reponse = member("reponse_txt").text

-- quelle est la reponse à la question posée
repeat with i = 1 to gListRep.count
(!) gListRep[i] = gRandQuest

-- si bonne reponse
if reponse = gListRep[i] then
-- on passe à la question suivante
QuestionSuivante
else
go the frame
end if
put gListRep[i], gListQuestion
--put reponse

end repeat

end

(!) je sais bien que l'erreur se situe là
car je retoune l'index de la liste Question et non
celle de la liste Réponse. ( dans ce k normal vu mon code )

Si la question Qu 4 ? est posée je dois retourner 12
de la liste Réponse, mais je comprend pas trop comment
faire pour pointer vers les 2 listes en même temps.

gListQuestion=["Q1","Q2","Q3"]
|| || ||
gListReponse =["R1","R2","R3"]


Ned wrote :
"Connaitre la nature du problème, c'est déjà l'avoir à moitié résolu"
Suis tout à fait d'accord :o)

Je sais qu'il est mieux de trouver la solution soi meme, mais une simple
explication de mon erreur m'aiderait à comprendre le hic.


Merci pour l'aide apportée
---------
Twinky

8 réponses

Avatar
Ned
Twinky a tapotylographié :

| Hello

Yo ! bien dormi ? ;o))

|
| j'ai 2 listes, .....
| ...
| on QuestionSuivante
|
| if gListQuestion.count > 0 then
| -- question aléatoire
| gRandQuest = random(gListQuestion.count)
| member("Quest_txt").text = gListQuestion[gRandQuest]
|
| -- on supprime la question pour eviter de l'avoir 2 fois
| gListQuestion.deleteAt(gRandQuest)
| go to "quest"
| else
| member("Quest_txt").text =""
| go to "fin"
| end if
| end
|
|
| --- behavior
| global gListQuestion, gListRep, gRandQuest
|
| on mouseUp
| reponse = member("reponse_txt").text
|
| -- quelle est la reponse à la question posée
| repeat with i = 1 to gListRep.count
| (!) gListRep[i] = gRandQuest
|
| -- si bonne reponse
| if reponse = gListRep[i] then
| -- on passe à la question suivante
| QuestionSuivante
| else
| go the frame
| end if
| put gListRep[i], gListQuestion
| --put reponse
|
| end repeat
|
| end
|
| (!) je sais bien que l'erreur se situe là
| car je retoune l'index de la liste Question et non
| celle de la liste Réponse. ( dans ce k normal vu mon code )

non, c'est surtout que tu te mélanges dans l'utilisation des listes
apparemment.
On est bien d'accord que gRandQuest est le rang dans la liste des questions
de celle posée. Donc la réponse est au même rang dans la liste des réponses
:

on mouseUp
reponse = member("reponse_txt").text

-- quelle est la reponse à la question posée
laRep = gListRep[gRandQuest]
if reponse = laRep then
...
end

tout simplement. :o)


--
------------------
Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
Avatar
Twinky
hello

oui merci bien dormi ;)

effectivement j'ai du mal avec les listes


Merci Ned

---------
Twinky
Avatar
Twinky
Hello

ya un léger probleme
du fait que la liste question est aléatoire
je ne peux avoir le résultat du bas (o)

(o)
gListQuestion=["Q1","Q2","Q3"]
|| || ||
gListReponse =["R1","R2","R3"]



j'obtiens Q3 Rep1 aléatoirement

gListQuestion=["Q1","Q2","Q3"]
|_____|_____
| |
gListReponse =["R1","R2","R3"]


il doit me manquer un -1 du fait que je
gListQuestion.deleteAt(gRandQuest)
je teste pour voir ce que ça donne

---------
Twinky
Avatar
Twinky
non c ok

j'avais ajouté un QuestionSuivante de trop
quitté et relancé l'appli et un reste memoire c ok

ce qui est moins logique c'est que meme en réinitialisant
la liste Question=["Q1","Q2","Q3","Q4","Q5"]
via un bouton reset je n'ai plus qu'aléatoirement
3 ou 4 questions ou 5

ça n'a pas l'air trop grave

---------
Twinky
Avatar
Twinky
re

Hello

ya un léger probleme
du fait que la liste question est aléatoire
je ne peux avoir le résultat du bas (o)

(o)
gListQuestion=["Q1","Q2","Q3"]
|| || ||
gListReponse =["R1","R2","R3"]


(1)
j'obtiens Q3 Rep1 aléatoirement

gListQuestion=["Q1","Q2","Q3"]
|_____|_____
| |
gListReponse =["R1","R2","R3"]

j'ai quitté director, relancé et reinitialisé et
j'ai toujours ce souci (1)

---------
Twinky
Avatar
Ned
Twinky a tapotylographié :

| re
|
| Hello
|
| ya un léger probleme
| du fait que la liste question est aléatoire
| je ne peux avoir le résultat du bas (o)
|
| (o)
| gListQuestion=["Q1","Q2","Q3"]
| || || ||
| gListReponse =["R1","R2","R3"]
|
|
| (1)
| j'obtiens Q3 Rep1 aléatoirement
|
| gListQuestion=["Q1","Q2","Q3"]
| |_____|_____
| | |
| gListReponse =["R1","R2","R3"]
|
| j'ai quitté director, relancé et reinitialisé et
| j'ai toujours ce souci (1)
|
| ---------
| Twinky



une autre approche est de ne pas "consommer" tes listes, mais de les
mélanger identiquement dès le départ, et d'incrémenter classiquement ton
index
-------------------------
-- movie script
-------------------------
global gListQ, gListR, gIndex
-------
on startmovie
gListQ = ["qu 1 ?","qu 2 ?"," qu 3 ?","qu 4 ?","qu 5 ?"]

gListR = ["r1","r2","r3","r4","r5"]

questRep = melange (gListQuestion , gListRep)
gListQ = questRep[1]
gListR = questRep[2]
gIndex = 0
nd
-------
on melange lstQ, lstR
Q = lstQ.duplicate()
R = lsR.duplicate()

Qm =[]
Rm = []
repeat while Q.count > 0
index = random(Q.count) -- on chope un index aléatoirement
add Qm, Q[index] -- on rajoute la quest correspondante à la liste des
quest mélangées
add Rm, R[index] -- on rajoute la rép correspondante à la liste des rép
mélangées
Q.deleteAt (index) -- on vire la quest & la rep qu'on vient de prendre
en compte
R.deleteAt (index)
end repeat
retour = [Qm,Rm]
return retour
end
--------
on QuestionSuivante
gIndex = gIndex + 1
if gIndex < gListQ.count then
member("Quest_txt").text = gListQ[gindex]
else
-- questionnaire fini
end if
end
-----------------
-- comportement
-----------------
on mouseUp
reponse = member("reponse_txt").text
if reponse = gListR[gIndex] then
-- juste
else
-- faux
end if
end


hth
--
------------------
Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------
Avatar
Twinky
La gestion des réponses est nettement plus solide et stable
que ma pseudo version random :o)

Merci pour le coup de pouce ;)

---------
Twinky
Avatar
Ned
Twinky a tapotylographié :

| La gestion des réponses est nettement plus solide et stable
| que ma pseudo version random :o)
|
| Merci pour le coup de pouce ;)
|
| ---------
| Twinky

de rien :o)

--
------------------
Ned
----------------------------------------
Bien faire et laisser braire
----------------------------------------