JeuWeb - Crée ton jeu par navigateur
[POO] un script pour créer un objet liste ça vous tente ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [POO] un script pour créer un objet liste ça vous tente ? (/showthread.php?tid=2162)



[POO] un script pour créer un objet liste ça vous tente ? - Byleth - 19-12-2007

Je mets ça ici sans trop savoir si ce que j'ai fais existe déjà ou non (en tout cas pas ici à mon avis) voir même est intégré de base dans PHP lol.

J'ai (presque) créé une classe liste qui pourrait se révèler bien utile pour certains (plus manipulable que les tableaux) et je me proposais de la mettre en libre service ici.

Donc si certaines personnes sont intéressées qu'elles se manifestent que je fasse ça super clean avec pleins de commentaires.

De toute façon je la posterai ne serait-ce que pour vos avis sur ma manière de coder objet (car c'est très récent en php pour moi).

Tchô.


RE: [POO] un script pour créer un objet liste ça vous tente ? - X-ZoD - 19-12-2007

je n'ai pas compris le principe


RE: [POO] un script pour créer un objet liste ça vous tente ? - Byleth - 19-12-2007

Ok, je développe

La classe liste est utilisée comme un collier de perle : chaque perle contient un objet (un texte, un chiffre, un objet complexe) ainsi qu'une référence à l'élément qui précède et à celui qui suit.

C'est en gros un tableau dans lequel on peut supprimer tous les éléments ou ajouter une infinité d'élément sans que cela modifie la manière dont vous le parcourez

Par exemple, un unset sur la case d'un tableau supprime une case sans retasser le tableau après (on supprime la case 3, du coup on passe de la case 2 à la 4). Du coup, à moins d'utiliser foreach, lorsque l'on parcours le tableau nous risquons d'avoir un problème (même si en php ce n'est pas très important). Peut être existe-t-il une fonction qui fait déjà celà, je l'ignore.

Parcontre, il est (je pense) impossible d'intercaler une case entre deux autres, la liste le permet sans soucis.

Par exemple, j'ai créé cette classe pour l'algorithme A-star (A*) dans lequel les tableau demande vite une forte complexification du code alors que la liste est optimisée pour cette utilisation.

La classe en elle même n'est pas très longue mais on peut en faire un tuto pour les débutants par exemple Smile
Pour vous en dire plus, j'utilise beaucoup cette classe en Java où les tableaux sont moins flexibles mais c'est vrai que php n'en a peut être pas besoin XD


RE: [POO] un script pour créer un objet liste ça vous tente ? - Plume - 19-12-2007

Etant donné qu'effectivement, en JAVA notamment, elle existe déjà, il n'est pas improbable de trouver sur le net ce genre de classe adaptée pour PHP Smile Maintenant, cela reste à voir & surtout à trouver.

Ceci dit, je me demande l'intérêt de nous poser la question puisque de toutes façons, tu la posteras. Et je peux t'assurer que si tu veux des commentaires, il vaut mieux qu'elle soit propre. Donc .. Wink

Lex.


RE: [POO] un script pour créer un objet liste ça vous tente ? - Asherah - 19-12-2007

J'ai pas trés bien compris, mais le but serait de pointer uniquement vers certains objets pour le manipuler au gré des envies?
car l'utilisation de current,key,next, rewind avec un itérateur, permet de pointer vers des instances defini.
Enfin je suis pas sur d'avoir tout compris.


RE: [POO] un script pour créer un objet liste ça vous tente ? - naholyr - 19-12-2007

php.net/array ?
Toutes les fonctionnalités dont tu as parlé son réalisables par un simple appel de fonction standard.


RE: [POO] un script pour créer un objet liste ça vous tente ? - Zamentur - 19-12-2007

ben array_splice() permet de le faire

Pour retirer un element:
Code PHP :
<?php 
$liste
=array("a","b","c","d","e");

//La position de l'element à extraire( ici ce sera "c")
$position_element=2;

array_splice ($liste, $position_element,1);

//Affiche Array ( [0] => a [1] => b [2] => d [3] => e )
print_r($liste);

Pour en ajouter un:
Code PHP :
<?php 
$liste
=array("a","b","c","e");

//La position de l'element à ajouter( ici ce sera "d")
$position_element=3;

array_splice ($liste, $position_element,0,array("d"));

//Affiche Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
print_r($liste);

Et cette fonction peut faire bien plus. Pour çà je renvoie à la doc array_splice()

Alors à la limite c'est vrai que c'est pas très intuitif, et on peut toujours creer une classe qui rende çà plus sémantique, mais evidement à l'interieur de la classe il faut faire appel à array_splice() et pas faire une enorme boucle qui refait çà...


RE: [POO] un script pour créer un objet liste ça vous tente ? - X-ZoD - 19-12-2007

sinon plutot que de parler de "liste", "liste chainée" serait plsu aproprié sans quoi ca porte a confusion avec les liste html


RE: [POO] un script pour créer un objet liste ça vous tente ? - Byleth - 19-12-2007

Bon bah d'accord, tout ça existe ^^

Bon, je la posterai pour des commentaires sur ma POO et non pour un script que les gens viendront prendre, voilà tout ce que je voulais savoir Smile

Sinon, intéressant le fonction array-splice... j'avoue que j'ai eu un peu la flemme de chercher dans le manuel parceque la plupart du temps il faut fouiller une heure pour trouver une fonction Wink donc je me suis fais un petit exercice lol.

Celà dit, j'en ferais peut-être un exercice pour ceux qui veulent apprendre les bases de la POO...