public void gererCommande()
	{
		Iterator<Tas> iterator;
		Tas tasCourant;
		int positionLaPlusPetite;
		for(int i = 0; (this.enFonctionnement == BOUCLE_INDETERMINEE || i < this.enFonctionnement) && this.enFonctionnement != BOUCLE_STOPPEE; i++)
		{
			// On informe que l'on vas entrer dans un tick
			this.notifyWaitTick();
			// On at tend que le tapis avance
			this.codeur.attendreTick();
			if (this.enFonctionnement != BOUCLE_STOPPEE)
			{
				// On met la la plus petite position trés haut
				positionLaPlusPetite = 255;
				iterator = this.tas.iterator();
				// Pour chaque tas
				while (iterator.hasNext())
				{
					tasCourant = iterator.next();
					// On met à jour la position
					tasCourant.majPosition();
					// On met à jour la position la plus petite
					if (tasCourant.lirePositionCourante() < positionLaPlusPetite)
					{
						positionLaPlusPetite = tasCourant
								.lirePositionCourante();
					}
				}
				// Si la position la plus petite est suffisament loin, on créer
				// un nouveau tas
				if (positionLaPlusPetite > 3
						&& this.fileDeCommande.lireNombre() > 0)
				{
					creerTas();
				}
				nettoyerTas();
			}
			else
			{
				return;
			}
		}
		this.enFonctionnement = BOUCLE_STOPPEE;
		this.notifyEndGererCommande();
	}