2011-05-06 3 views
1

J'écris minimax dans le cadre d'un projet, mais c'est terriblement difficile de vérifier qu'il fonctionne correctement. Si je pouvais imprimer un arbre de ce qu'il fait, ce serait extrêmement utile.Imprimer un arbre de récursion

Existe-t-il un moyen facile d'imprimer un arbre d'appels récursifs, en sélectionnant quelles variables sont importantes pour la situation?

+0

Que diriez-vous d'utiliser un visiteur pour traverser l'arbre et imprimer chaque treenode visité? Ou en utilisant une méthode toString() appropriée sur chaque noeud? – Dirk

+0

@Dirk: dans l'algorithme minimax, vous ne construisez pas réellement un arbre en mémoire. La structure arborescente est implicite dans la récursivité. –

Répondre

1

Gardez une trace de la profondeur de récursion au moyen d'un paramètre (en minimax, vous le feriez de toute façon). Ensuite, la profondeur d'impression * un petit nombre d'espaces, suivi par les variables intéressantes dans chaque appel pour obtenir

player=1, move=... 
    player=2, move=... 
    player=1, move=... 
    ... 
    player=2, move=... 

Vous pouvez également imprimer la valeur de retour de chaque appel récursif.

Si vous voulez désespérément une jolie image d'un arbre, post-traitez la sortie de ce qui précède et alimentez-le à un paquet de dessin d'arbre.

+0

Quel est un bon paquet de dessin d'arbre (open source)? –

Questions connexes