Tirage aléatoire

cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011 - 4 mars 2010 à 14:30
cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011 - 20 mars 2010 à 11:46
Bonjour !
Débutante, je cherche à construire un tirage aléatoire pour un jeu de 56 cartes ( 28 "images" et 28 "exercices" correspondants aux "images" )
le tirage se fera dans le paquet "images" placées de dos ou invisibles
le résultat sera donné par 2 cartes : une carte "image" et une carte "exercice", visibles côte à côte
dois-je faire un tableau ? si oui en quoi?...
je ferai un lien de mon site ( flash, en construction) vers ce "tirage".

merci d'avance !

10 réponses

ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
4 mars 2010 à 17:24
Salut;
Oui un tableau me semble etre une bonne solution,
"en quoi ?"
Ben en actionscript il me semble, ensuite oriente toi vers la classe "Math" et sa méthode "random" pour choisir une image aléatoirement dans ces paquets.
0
cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011
5 mars 2010 à 19:41
Merci ChasseurDeChimeres
je vais déjà essayer de faire ce tableau...
bon W.E !
B.
0
ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
5 mars 2010 à 23:31
Bonsoir;
Pour déclarer un tableau en AS3 c'est comme ça :
var tableau2:Array = new Array("Carte1", "Carte2", "Carte3"); 


ensuite pour accéder à une option de ton tableau au hasard c'est comme ça :

tableau[Math.floor(Math.random() * 3)];


bon dev'
0
cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011
9 mars 2010 à 12:34
Salut !
alors j'ai mis ça dans la time line :

[b]function carte(event:MouseEvent):void {
var tableau2:Array = new Array("tavoix", "reve", "blablabla", "tresor", "unique", "silence", "renaitre", "coupe", "joie", "amitie", "celaest", "esprit", "espace", "confiance", "regard", "croyance", "pensees", "seve" ,"mystere", "patience", "icone", "cherie", "colere", "douceur", "energie", "glaive", "purete", "voir");
trace(Math.round(Math.random() * 28));
}

btn_tirage.addEventListener(MouseEvent.CLICK, carte);/b



sur la scène , j'ai une cercle de 28 "cartes" de dos avec sur chacune un bouton transparent (btn_tirage)sensé appeler un tirage aléatoire ("tavoix","rever"....) = graphiques prêts dans la bibliothèque.
Quand je clique : ça me donne des chiffres aléatoires et pas d'images...
Comment les faire apparaître ?
Merci d'avance !!
B.
0

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

Posez votre question
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
9 mars 2010 à 16:22
Hello,

Essaie comme ceci :

var tableau2:Array = new Array("tavoix", "reve", "blablabla", "tresor", "unique", "silence", "renaitre", "coupe", "joie", "amitie", "celaest", "esprit", "espace", "confiance", "regard", "croyance", "pensees", "seve" ,"mystere", "patience", "icone", "cherie", "colere", "douceur", "energie", "glaive", "purete", "voir");

function carte(event:MouseEvent):void {
    var RandomCarte:* = getDefinitionByName(tableau[Math.floor(Math.random() * tableau2.length-1)]) as Class;
    var CarteActuelle:RandomCarte = new RandomCarte();
    addChild(CarteActuelle);
}

btn_tirage.addEventListener(MouseEvent.CLICK, carte); 



a+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
9 mars 2010 à 17:10
Salut;
Juste pour faire une remarque, j'ai fait une erreur : j'ai appeller le tableau "tableau2" mais j'ai oublié le 2 plus loin, et il semble que Orange est copié cette erreur donc :

 var RandomCarte:* = getDefinitionByName(tableau2[Math.floor(Math.random() * tableau2.length-1)]) as Class;


dsl
0
cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011
16 mars 2010 à 16:43
voilà...après tout ce temps ...j'ai obtenu ça :

var containerCarte : Sprite = new Sprite();

addChild( containerCarte );
var tableau3:Array = new Array(Amitie,Blablabla,Celaest,Cherie,Colere,Confiance,Coupe,Croyances,Douceur,Energie,Espace,Esprit,Glaive,Icone,Mystere,Patience,Pensees,Purete,Regard,Renaitre,Reve,Seve,Silence,Tavoix,Tresor,Unique,Voir );
function onBtnTirageClick(event:MouseEvent):void {
//var ClassReference:Class = getDefinitionByName("flash.display.MovieClip."+tableau3[0]) as Class;
//trace( ClassReference );

var instance:MovieClip = new tableau3[Math.floor(Math.random() * tableau3.length-1)]() as MovieClip;
trace( tableau3.length-1 );
trace( Math.random() * tableau3.length-1 );
trace( Math.abs(Math.round(Math.random() * tableau3.length-1)) );
trace( instance );
//var carte : MovieClip = getDefinitionByName(tableau3[0] ) as MovieClip;
// var RandomCarte:* = getDefinitionByName(tableau2[Math.floor(Math.random() * tableau2.length-1)]) as Class;
//var CarteActuelle:MovieClip = new carte();
while( containerCarte.numChildren > 0 ) containerCarte.removeChildAt(0);
containerCarte.addChild(instance);

}
btn_quitter.addEventListener(MouseEvent.CLICK, containervide);

function containervide(event : MouseEvent) : void {
containerCarte.removeChild ( Sprite);
}

btn_tirage.addEventListener(MouseEvent.CLICK, onBtnTirageClick);



ça marche, y'a juste que j'aimerais faire disparaître l'image du tirage avec le bouton "quitter" et que je rame...
en tout cas merci pour tout à vous deux !

B.
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
16 mars 2010 à 17:31
Dans ta fonction onBtnTirageClick rajoute ceci :
instance.name = "instance_carte";


Et dans ta fonction containervide tu peux donc faire ceci :
containerCarte.removeChild(containerCarte.getChildByName("instance_carte")); 


A+

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011
16 mars 2010 à 18:58
je suis super contente !!!
ça marche !
Merci mille fois !!!
B
0
cs_blackvelvet Messages postés 6 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 30 septembre 2011
20 mars 2010 à 11:46
Bonjour !

voici mon problème :
je désire charger dans mon swf principal le swf suivant dont l'as est :

stop();
var deph:Number=-1;
this.createEmptyMovieClip('contMc',++deph);
this.contMc.loadMovie('carrou.swf',carrousel);
this.onEnterFrame = function():Void{
if(_currentframe>1){
unloadMovie(contMc);
delete this.onEnterFrame;
}
}

(comme vous le voyez, ce swf load déjà un autre swf)

quand je l'appelle sur la scène avec un bouton qui dit :

on(release) {
loadMovie("interface.swf",_root.conteneur_mc);
jeu._visible=0;
masque._visible=0;
}

j'obtiens non pas mon interface - qui elle rend possible la présentation agrandie de chaque objet du carrousel par un clic sur ce dernier - mais mon carrousel et tout petit en plus .

en bref : peut-on charger un swf qui en charge déjà un et comment gérer les tailles et le reste ?

merci beaucoup d'avance !
belle journée à vous !

B.
0