1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
pour (indexColonne = 0 ; indexColonne < nbColonneTab ; indexColonne++)
nonvide = -1 // on ne connait pas encore la dernière ligne non vide
pour (indexLigne = nbLigneTab-2 ; indexLigne >= 0 ; indexLigne--) // on va de l'avant dernière ligne vers la première (pas besoin de chercher à déplacer la dernière ligne)
si nonvide!=-1 // on connait la dernière ligne non vide
on déplace tabEnt[indexLigne][indexColonne] vers tabEnt[nonvide][indexColonne]
nonvide--; // on passe à la case au dessus qui est forcément vide
sinon si tabEnt[indexLigne][indexColonne] != 0, il y a quelque chose dans la case
nonvide = indexLigne : on connait la dernière ligne non vide
a = indexLigne + 1 // la ligne au dessus de la ligne actuelle
tant que a<nbLigneTab et tabEnt[a][indexColonne] == 0 // tant que la ligne suivante est vide
déplacer tabEnt[a-1][indexColonne] vers tabEnt[a][indexColonne]
nonvide = a // la dernière non vide change, puisqu'on la déplace
incrémenter a
fin tant que
fin si
fin pour indexLigne
fin pour indexColonne |