FAIRE TOURNER UN TABLEAU (ARRAY)

top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010 - 21 nov. 2007 à 09:10
Improve Messages postés 176 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 28 novembre 2009 - 27 nov. 2007 à 23:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44774-faire-tourner-un-tableau-array

Improve Messages postés 176 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 28 novembre 2009
27 nov. 2007 à 23:46
Fonctionnelle avec si peu de lignes. C'est ok, je l'ai bien saisi. Que dire des params . . . et le switch(){}. Merveilleux. @+
dj_ouf Messages postés 221 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 6 septembre 2011
24 nov. 2007 à 01:09
nikel pour un tetris! rotation de pièces!
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
22 nov. 2007 à 08:52
@TOP30 : Excellente idée !!! J'ai développé cette 'astuce' dans une application ou je ne devais que déplacer d'une unité vers la gauche ou la droite mon tableau, mais ta proposition est nettement plus générique. Je prend !!! 10/10 :o)
zoolivier Messages postés 17 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 13 mars 2009
21 nov. 2007 à 15:00
oui, bravo original et apporteur d'idée
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
21 nov. 2007 à 09:11
J'aime bien l'idée :
7/10
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
21 nov. 2007 à 09:10
J'aime bien l'edée de faire tourner dans un sens, ou dans l'autre. Chose ququel j'avais pas penser.
Mais j'aurais plutot ecris la classe comme suit :

// AS2
class [monChemin].ArrayRotation
{
public function ArrayRotation ($aWork : Array, $nSens : Number, $nTime : Number )
{
while (nTime --)
{
switch ($nSens )
{
case 1 :
$aWork.unshift ($aWork.pop ());
break ;
//
default :
$aWork.push ($aWork.shift ());
}
}
}
}
//

// AS3
package [monPackage]
{
public class ArrayRotation
{
public function ArrayRotation ($aWork : Array, $nSens : int 1, $nTime : int 1 )
{
while ($nTime --)
{
switch ($nSens )
{
case 1 :
$aWork.unshift ($aWork.pop ());
break ;
//
default :
$aWork.push ($aWork.shift ());
}
}
}
}
}


// Utilisation //
var test : Array = ('123456').split ('');
trace (test );
// 1,2,3,4,5,6
//
new ArrayRotation (test);
trace (test );
// 6,1,2,3,4,5
//
new ArrayRotation (test, -1, 3 );
trace (test );
// 3,4,5,6,1,2
Rejoignez-nous