begin process at 2012 05 27 22:41:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Flash

 > 

Archives

 > 

ActionScript

 > 

Tableau multidimensionnel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tableau multidimensionnel

mercredi 20 avril 2005 à 16:06:12 | Tableau multidimensionnel

sidhannowe

Bonjour,

Je souhaite créer un tableau à 2 dimensions de taille dynamique. Le code ci dessous ne marche pas:

tab = new Array();
tab[x][y] = truc;

Merci pour votre aide ;-)
mercredi 20 avril 2005 à 16:52:09 | Re : Tableau multidimensionnel

durand2504

salut,

riend de plus simple:
tab = new Array();
tab.push([truc,machin]);
letruc=tab[0][0];
lemachin=tab[0][1];

A+


mercredi 20 avril 2005 à 17:03:14 | Re : Tableau multidimensionnel

sidhannowe

En faisant un push([truc, machin]) ca fige la taille à 2 éléments dans une des deux dimensions.

De plus je rempli le tableau à l'aide de 2 boucles, je veut donc donner au tableau les éléments un par un. Avec une syntaxe de style tab[x][y] = variable. C'est la déclaration qui me pose un problème en fait.
mercredi 20 avril 2005 à 17:30:58 | Re : Tableau multidimensionnel

durand2504

le push ne fige pas la taille, à l'origine, ton tableau est vide, c'est le push qui permet d'avoir des éléments dedans. ce que tu peux faire:

méthode1:

tab=new Array();
for (i=1;i<=n;i++) {  //crée un tableau de dim n,2 rempli de texte vide
    tab.push(["",""]);
}
puit tu fais tes boucles avec tab[x][y]=machin

méthode 2:
tab=new Array()
for (i=1;i<=n;i++) {
    tab.push([truc,""]);
}
for (i=1;i<=n;i++) {
    tab.[i][1]=machin;
}

A+
mercredi 20 avril 2005 à 17:37:21 | Re : Tableau multidimensionnel

sidhannowe

Ca fige pas ? Tu dit le contraire dans ta source en parlant de taille "n,2" : 2 est bien une des deux dimensions qui est figé du coup.

Si je fait ca:
tab.push(["",""]);

avec la boucle associé, je ne pourrais pas utilise d'index supérieur à 1 pour la 2nde dimension cela fera bien un tableau de taille n, 2, moi je veut un tableau n, k

Pour la seconde méthode j'ai pas bien compris la différence avec la première
mercredi 20 avril 2005 à 17:56:24 | Re : Tableau multidimensionnel

durand2504

Ok, pour faire un tableau n,k tu dois faire une liste de n liste de k élément, flash n'ayant pas de tableau à n dimension (n>1).

2 méthodes (différentes l'une de l'autre):
1) Création d'un tableau vide puis remplissage
for (i=0;i<n;i++){
    ligne=[];
    for(j=0;j<k,j++){
       ligne.push("");
    }
    tab.push(ligne);
}

Puis tu remplis avec des tab[x][y]=truc de la façon que tu veux.

2)Création d'un tableau remplit directement
for (i=0;i<n;i++){
    ligne=[];
    for(j=0;j<k,j++){
       ligne.push(mesDonnée);  //je ne sais pas d'où viennent tes données
    }
    tab.push(ligne);
}

Dans les 2 cas, si les dimmensions du tableau ne sont pas bonnes, tu peux ajouter/retirer des lignes avec:
tab.push() //ajoute
tab.splice() //retire
et des colonnes avec:
for(i=0;i<n,i++){
       tab[i].push(); 
       tab[i].splice();
    }

A+
mercredi 20 avril 2005 à 18:06:13 | Re : Tableau multidimensionnel

sidhannowe

Ok, c'est des fonctions du genre splice() que je cherchais alors. J'avais déjà mis en pratique ton premier exemple mais le tableau varie beaucoup en dimension, je devais donc créer de gros tableau gourmant en mémoire.

Par contre on peut bien définir quel éléments on retire avec splice() ou c'est uniquement le dernier ? Si c'est le cas ca me pose toujours un problème.

C'est qd meme bizarre qu'on puisse pas créer un tableau à 2 dimensions dynamiques de la meme manière qu'on le fait avec un tableau une dimension ...
jeudi 21 avril 2005 à 09:21:59 | Re : Tableau multidimensionnel

durand2504

Réponse acceptée !
Salut,

en fait, flash ne connait pas les tableaux mais les listes, c'est pourquoi l'utilisation d'un tableau 2D ou nD n'est pas évidente. Cela me donne des idées de sources à créer, un objet tableau2D.

Avec splice, on donne 2 arguments, l'index du 1er élément à retirer et le nombre d'élément à retirer.

par ex, pour retirer le 3ème élément: splice(2,1) //index=2 car le premier élément à comme index 0, on retire un seul élément.

pour retire les 6, 7 et8èmes éléments, monTab.splice(5,3)

pour retirer le 5, 8 et 10ème élément,ça ce complique:
monTab.splice(9,1);
monTab.splice(7,1);
monTab.splice(4,1);
Attention, dans ce cas, commence à retirer le dernier élément puis par index décroissant car si tu commences par l'index le plus bas, tous les indexs suivant sont modifié, donc l'éléement n deviend n-1 et là tu risques de te perdre dans les indexs des éléments à supprimer.

A+


jeudi 21 avril 2005 à 10:44:10 | Re : Tableau multidimensionnel

sidhannowe

Ok c'est bon, mais finalement je l'utilise pas pour supprimer mais pour ajouter,car l'index de mon tableau sont des coordonnées, donc pas le droit de les supprimer (sinon décalage) je définirais juste la valeur à null


Cette discussion est classée dans : tableau, tab, multidimensionnel


Répondre à ce message

Sujets en rapport avec ce message

A propos des tableaux [ par malicious06 ] Bonjour, 1) Est-ce que le New est obligatoire lorsqu'on créer un tableau ? J'ai essayé: tab=Array(10); tab[0]="....."; . . . tab[9]=".........."; Cela TRES URGENT [ par gimily ] bon, alors, je vous explique: je suis tout debutant en programation. je doit créer un peiti jeux tout simple sur flash pour mes PPE (c comme les TPE) URGENT [ par gimily ] bon, alors, je vous explique: je suis tout debutant en programation. je doit créer un peiti jeux tout simple sur flash pour mes PPE (c comme les TPE Question tte bete sur les tableaux et les boucles for [ par remilafouine ] Bonjour à tous !Donc voilà... Je fais un tableau en 2D avec ca :var Tab:Array = new Array[3][32]Logiquement, ca devrait être un tableau avec 3 colonne problème de splice [ par anartiste ] anartisteBonjour à tous , voilà, je voudrais appliquer un splice sur des tableaux crées en série mais ça ne fonctionne pas, je vous montre le code et tableau de clip [ par rageric ] Bonjour a tous,voila cela fait un petit momment que je cherche a cree un tableau qui vas me permettre de loader un movie clip en fonction de la pressi problème avec un tableau de tableaux à 2 dimensions [ par Gougoul ] Bonjour, j'expose mon cas: Je crée un tableau(A) qui doit recevoir comme élément un tableau(B) à deux dimensions. à chaque itération, le tableau A reç remplir un tableau comme un sudoku... [ par 8livier ] bonjour,je commence tout juste le flash, et je me suis lancé un defit peut etre un peu trop grand pour commencer...mais voila...je suis tennace je cré nom de tableau variable [ par charloteuf ] Salut à tous,J'ai quelques soucis concernant des tableaux dont les noms sont des variables :Ceci ne marche pas, quelqu'un aurait 'il une idée ? Merci Hidden [ par VLN ] Bonjour,J'ai un souci avec un swf j'aimerais mettre cette fonction : en gros, on a un bouton de ce type : <form ac


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales