<:momo:sommet:>
[
(#REM) un compteur horrible pour ne pas dépendre de Bonux ou itérateurs
et afficher l'en tête des 5 sous-niveaux
]
[(#SET{niv,#COMPTEUR_BOUCLE})]
<:momo:sous_niveau{niv=#GET{niv}}:>
[
(#REM) On choisi les mots qui sont parents et qui n'en ont pas: ce sont les sommets
la boucle _Est_un_parent vérifie la présence d'enfants
la boucle _Est_enfant permet de vérifier l'absence de parents (/B_Est_enfant>)
]
[(#SET{pos_l,0})]
[
(#REM) On cherche récursivement tous les enfants des sommets
on utilise pas le modèle doublons_enfants_mot car il faut gérer la position des boites
(la gestion se fait -péniblement- avec pos_h, pos_l, pos_h_precedente)
]
[
(#REM) petit bug des doublons dans une boucle récursive:
on peut repasser plusieurs fois sur le même mot dans certains cas !
ce test permet de vérifier que le mot n'est présent qu'une fois dans le doublons
et donc que c'est la première fois que l'on passe
] [(#DOUBLONS{mots,enfants}|array_count_values|table_valeur{#ID_MOT}|>{1}|non)
[(#SET{pos_l_precedente,[(#GET{pos_l})]})]
[(#SET{pos_l,[(#GET{pos_l}|plus{1})]})]
]
[(#DOUBLONS{mots,enfants}|array_count_values|table_valeur{#ID_MOT}|>{1}|non)
[(#SET{pos_l_precedente,[(#GET{pos_l})]})]
[(#SET{pos_l,[(#GET{pos_l}|moins{1})]})]
[(#SET{pos_h_precedente,[(#GET{pos_h})]})]
[(#SET{pos_h,[(#GET{pos_h}|plus{1})]})]
]
/B_Recursion>
[(#DOUBLONS{mots,enfants}|array_count_values|table_valeur{#ID_MOT}|>{1}|non)
[(#GET{pos_h_precedente}|<={#GET{pos_h}}|oui)
[(#SET{pos_l_precedente,[(#GET{pos_l})]})]
[(#SET{pos_l,[(#GET{pos_l}|moins{1})]})]
]
]
[(#GET{pos_l_precedente}|<={#GET{pos_l}}|oui)
[(#SET{pos_h,[(#GET{pos_h}|plus{1})]})]
]
/B_Est_enfant>