<p><code>&lt;?php<br># Par Dlareg le 20/01/2011<br># Cours NFA006 CNAM DIJON<br># <br># Gérer une pile d'éléments<br># En l'occurence des cartes à jouer<br>#<br><br># variables<br>$nbElementPile = 3; // configurer le nb d'element voulu dans la pile<br>$taillePile = $nbElementPile - 1;<br>$sommet = -1;<br><br># les fonctions<br>function empile($c,$t,$v) {<br>&nbsp;&nbsp;&nbsp; global $sommet;<br>&nbsp;&nbsp;&nbsp; global $taillePile;<br>&nbsp;&nbsp;&nbsp; global $maPile;<br>&nbsp;&nbsp;&nbsp; if ($sommet &lt; $taillePile) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $sommet++;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "la donnee est ecrite sur la pile, sommet = ".$sommet."&lt;br /&gt;";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $maPile[$sommet][couleur]=$c;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $maPile[$sommet][type]=$t;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $maPile[$sommet][valeur]=$v;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "plus de place dans la pile";<br>}<br><br>function depile() {<br>&nbsp;&nbsp;&nbsp; global $sommet;<br>&nbsp;&nbsp;&nbsp; global $maPile;<br>&nbsp;&nbsp;&nbsp; if ($sommet &gt; -1) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "les donnees du dessus de la pile sont traitees et supprimees, sommet = ".$sommet."&lt;br /&gt;";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //echo $sommet." ".$maPile[$sommet][couleur] ." ".$maPile[$sommet][type]." ".$maPile[$sommet][valeur]."&lt;br/&gt;";<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; unset($maPile[$sommet]);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $sommet--;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "la pile est vide&lt;br /&gt;";<br>}<br><br>function afficheDonne($sommet) {<br>&nbsp;&nbsp;&nbsp; global $maPile;<br>&nbsp;&nbsp;&nbsp; if (!empty($maPile[$sommet]))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $sommet." ".$maPile[$sommet][couleur] ." ".$maPile[$sommet][type]." ".$maPile[$sommet][valeur]."&lt;br/&gt;";<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $sommet." est vide&lt;br /&gt;";<br>}<br><br>function affichePile() {<br>&nbsp;&nbsp;&nbsp; echo "&lt;h2&gt;Affichage de la pile&lt;/h2&gt;";<br>&nbsp;&nbsp;&nbsp; global $taillePile;<br>&nbsp;&nbsp;&nbsp; global $sommet;<br>&nbsp;&nbsp;&nbsp; if ($sommet==-1)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "la pile est vide&lt;br /&gt;";<br>&nbsp;&nbsp;&nbsp; else {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for ($i=$taillePile;$i&gt;=0;$i--) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; afficheDonne($i);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "&lt;br/&gt;";<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br># Affichage et appel des fonctions<br>echo "&lt;h2&gt;Ajout dans la pile&lt;/h2&gt;";<br>empile("rouge","carreau","10");<br>empile("noir","pic","AS");<br>empile("rouge","coeur","8");<br>empile("noir","trefle","dame");<br><br>affichePile();<br><br>echo "&lt;h2&gt;Depile&lt;/h2&gt;";<br>depile();<br><br>affichePile();<br><br>echo "&lt;h2&gt;Depile&lt;/h2&gt;";<br>depile();<br>depile();<br>depile();<br>depile();<br>depile();<br><br>affichePile();<br>?&gt;</code></p>