0

Je crée un labyrinthe binaire d'arbre. L'arbre a 8 feuilles et le but est de traverser l'arbre et de trouver de la nourriture sur une ou plusieurs des feuilles. A chaque nœud, le participant peut choisir le nœud gauche ou droit pour passer à la suivante. Ou, il peut traverser les deux, mais à un certain coût (peut-être 1 pas de temps contre 2 en choisissant sur ou l'autre). S'il atteint une feuille sans nourriture, il doit revenir en arrière et refaire sa décision. Cela va finalement se transformer en un algorithme évolutif où les stratégies sont stockées et évoluées sur plusieurs générations. Quel est le moyen le plus efficace de stocker le chemin parcouru (pour que le participant puisse revenir en arrière si la nourriture n'est pas trouvée)?Binaire traversal labyrinthe traversé

+1

Définir efficace. Voulez-vous dire cycles CPU (si oui, quelles opérations prévoyez-vous), ou de la mémoire? –

+0

Désolé, je veux dire efficace dans les lignes de code. J'ai juste besoin d'un moyen de me souvenir de la traversée – krao

+0

Vous pouvez laisser des miettes de pain à chaque nœud, ou vous pouvez garder une liste des nœuds visités. Toujours pas sûr de votre définition de l'efficacité, mais l'une ou l'autre de ces méthodes fera le travail. La grande différence est avec les miettes de pain, vous ne pouvez avoir qu'un seul chemin à la fois. Avec les listes, vous pouvez garder une trace de plusieurs chemins, si c'est souhaitable. –

Répondre

0

Il y a plusieurs façons d'aborder cela. Une chose qui vient à l'esprit est d'avoir un drapeau booléen à chaque nœud, et si le nœud est visité, retournez et stockez l'index ou la valeur clé du nœud dans ce tableau.

Exemple:

1. Start tree traversal 
2. User picks direction(right/left) 
3. flag which node was visited 
4. store node's index or key in an array