Random pour un quiz sans répétition [Résolu]

Signaler
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008
-
Messages postés
232
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011
-
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

Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
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....
Messages postés
232
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011

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 ...



^^
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008

Merci beaucoup vous deux !!!!!!



Je vais essayé tout sa !!!

Merci !!!!
Messages postés
18
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2008

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
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008

C'est bizare que trace ne marche pas... Tu travail avec quel log ?
montre ton code, que je puisse t'aider ;)

:)
Messages postés
18
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2008

- 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
Messages postés
232
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011

Peut-être qu'en commençant par les bases plutôt que par des copier-coller, qui sait ?

Distorstase
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008

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

:)
Messages postés
18
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2008

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
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008

mm plutot bizare ton code, tu n'utilise pas ta fonction randel ?
m'Enfin, qu'elle est ta question en fait ??

:)
Messages postés
18
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2008

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
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008

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".

:)
Messages postés
18
Date d'inscription
lundi 18 juillet 2005
Statut
Membre
Dernière intervention
22 juin 2008

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
Messages postés
39
Date d'inscription
dimanche 28 août 2005
Statut
Membre
Dernière intervention
20 mai 2008

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
Messages postés
232
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011

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