Random pour un quiz sans répétition

Résolu
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008 - 5 oct. 2005 à 17:33
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011 - 7 août 2008 à 17:56
bonjour,

voila, j'ai fait un quizz, avec 10 question, et j'aimerais que les
questions se pose aléatoirement et qu'il n'y est pas deux fois les
memes.

j'ai essayé avec random, math.random(), string, list...sans succés

merci a tous !

15 réponses

cs_bali_balo Messages postés 1378 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 1 novembre 2010 1
5 oct. 2005 à 19:18
J'ai déjà réalisé des codes pour des personnes utilisat le même algo!!!
Le mien est optimisable!!! en utilisant qq méthodes de la classe Array!!!

Sinon voilà ma proposition qui marche


_root.free=0;

_root.tabQuestion = new Array("q1","q2,.....,"q10");
_root.tabOccup = new Array(10);
//initialise TOUTES les valeurs à 0 pour tabOccup
//initialise TOUTES les questions ( =chaines de caractère ) dans le tableau

_root.poserQuestion=function()
{
var i=random(10);
while( _root.tabOccup[i] )//tan ke c'est égal à 1
i=random(10);
_root.free++;
_root.tabOccup[i]=1;//on pass de 0 à 1
return _root.tabQuestion[i];

}

Comme je l'ai dit, il y a plus simple ( en utilisant les méthodes comme "push" ou "delete", enfin je sais plus, regarde dans l'aide de flash ( touche F1 )

Voilà voilà...

bali_balo....
3
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
5 oct. 2005 à 19:19
Tiens, rien que pour toi et tout ceux qui auront le même problème (et tu n'es pas le seul !) :

http://www.flashkod.com/tutorial.aspx?ID=258



Désolé pour la mise en page ça ne fonctionne pas bien leur truc ...



^^
3
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
6 oct. 2005 à 18:46
Merci beaucoup vous deux !!!!!!



Je vais essayé tout sa !!!

Merci !!!!
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
2 juil. 2008 à 18:12
ca marche pas !

j'ai essayé ce code et celui du tutorial mais sans resultat :

1- "trace" ne fait rien chez moi, donc je ne sais pas ce que ca doit donner.
2- j'essaye de faire en sorte qu'une fois un resultat sorti (ou question dans le cas d'un quizz), on clique sur un bouton pour avoir un autre resultat (question), et ainsi de suite jusqu'a ce qu'il n'y en ai plus. Au lieu de ca il me donne un resultat aleatoire meme s'il vient juste de tomber avant.

help pliz (dur de se remettre dedans 3 ans apres le dernier post )

www.coucoucorp.com
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
5 juil. 2008 à 13:32
C'est bizare que trace ne marche pas... Tu travail avec quel log ?
montre ton code, que je puisse t'aider ;)

:)
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
7 juil. 2008 à 20:26
- flash cs3 en actionscript 2 (je connais que cette version :) )
- aucun code en particulier, juste des copi-colli trouvés sur des forums (comme ici) et ..... bah rien : ni trace, ni resultat

www.coucoucorp.com
0
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
8 juil. 2008 à 14:49
Peut-être qu'en commençant par les bases plutôt que par des copier-coller, qui sait ?

Distorstase
0
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
9 juil. 2008 à 18:43
Je pense que [auteur/SLAGT/78646.aspx Slagt] à raison, il vaut mieux commencer par des bases, et puis passe en as3, c'est bcp mieux :d

:)
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
15 juil. 2008 à 19:07
Désolé pour l'attente mais me revoici.

Merci pour le conseil mais je connais deja les bases, par contre je ne connais pas tout le langage (surtout si ils arretent pas de pondre des nouvelles versions de l'AS).

J'apprend par moi-même en fouillant sur le net (j'ai quand meme eu une formation flash y'a quelques années) et pour l'instant ca m'a pas mal reussi.

Pour le code :
5 images (une vide au début, 1 bouton qui renvoie à la premiere image sur les 2, 3 et 4, et un dessin sur la 5)
Je voudrais que l'anim' se charge sur l'une des images (2, 3 ou 4), quand on clique sur le bouton ca recharge sur l'une des restantes, puis quand il n'y a plus de resultat dispo, direction automatique vers la 5° image.

le code en image 1 (étendu jusqu'à la 5)

stop();
function randel (tab)
{
    var r = Math.round (Math.random() * (tab.length - 1));
    var rec = tab[r];
    tab.splice (r, 1);
    return rec;
}

Tableau = new Array();
for (var i=0; i<3; i++)
{
    Tableau[i] = (i+1);
}

while (Tableau.length)
{
    gotoAndStop (r+1);
}
gotoAndStop (5);

J'ai essayé d'adapter le tutorial parce que j'arrive à le comprendre (du moins je croyais), je comprend rien au votre :D

www.coucoucorp.com
0
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
18 juil. 2008 à 16:34
mm plutot bizare ton code, tu n'utilise pas ta fonction randel ?
m'Enfin, qu'elle est ta question en fait ??

:)
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
20 juil. 2008 à 17:39
je n'utilise pas...... euh ....oups.

En fait, j'ai fait plein d'essais et j'a itrop attendu avant de poster. j'ai retapé un code rapide pour ce post sans reellement l'optimiser (mais en pensant qu'il marche).

le probleme que je rencontrais (a part le "trace" qui marche pas). est qu'il me renvoie un chiffre aleatoire (ok), qu'il m'envoie a l'image concernée (ok), quand je clique sur le bouton de l'image (pour me renvoyer vers un autre aleatoire), il ne se "souvient" pas des chiffres déjà tirés et me les rebalance (pas ok).

www.coucoucorp.com
0
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
20 juil. 2008 à 18:30
Okok

En fait le principe c'est de faire un tableau contenant les numéros des images où tu veux aller.
à chaque tirage, une fois que tu as fait l'action voulue (aller à l'image), tu supprime ce tirage du tableau avec splice(i, 1);
Oui ?

Ps : pour creer un tableau, tu peut aussi le remplir avec la méthode "push".

:)
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
26 juil. 2008 à 20:17
bien résumé.

en fait, j'ai mis le code dans une image qui dure jusqu'a la fin de l'anim', pensant que ce code durerait tout le temps (et donc pas de" remise a zero" des resultats deja sortis, mais ca a pas l'air de marcher.

www.coucoucorp.com
0
nicoool18 Messages postés 39 Date d'inscription dimanche 28 août 2005 Statut Membre Dernière intervention 20 mai 2008
27 juil. 2008 à 13:01
Il vaut mieux éviter d'éparpiller ton code sur pls images, ça devient tres vite le bordel ^^
Tu devrais tout centraliser sur la premiere image ! à la limite tu peut mettre des appels a des fonctions sur certaines images.
Normalement ton code n'a pas besoin d'etre éparpiller. Il sufirait de mettre sur la 1ere image, la fonction randel, qui est appelé lorque l'on clique sur un bouton, en plus ce bouton devrais etre le meme non ?
J'espere t'avoir aidé.

www.sunandblood.com
0
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
7 août 2008 à 17:56
Un seul bouton, une seule image !

Tu devrais plutot créer un clip contenant chacune de tes pages, et tu changes la frame de CE clip, et UNIQUEMENT ce clip... :)

Distorstase
0
Rejoignez-nous