2012-03-21 4 views
0

Je travaille sur un puzzle de quinze, et j'essaie de stocker les différents états du tableau lorsque je déplace les carreaux.Comment stocker une série de tableaux

Puisque je vais essayer de configurer le puzzle avec un algorithme de recherche IDFS/IDFSA *, j'ai besoin d'un moyen de stocker chaque tableau.

Tout cela est très nouveau pour moi, et je voudrais quelques conseils sur la façon de le faire. Peut lier le code si nécessaire sur ce que je dois baser dessus. Merci pour tout ce que vous pouvez m'aider, je suis perdu!

Répondre

0

Votre question est étiquetée C++, donc je suppose que vous voulez une réponse dans cette langue. Vous pouvez utiliser le type suivant pour stocker l'état de la carte:

typedef array<array<int, 4>, 4> BoardState; 

Ceci est une "matrice" 4x4 d'entiers. J'aurais 0 signifiant vide et un autre n (1 < = n < = 15) ce qui signifie que la nième pièce est à la position.

Pour une recherche A *, il suffisait de repérer une bonne heuristique, par exemple la distance totale entre les pièces et la position finale. Après c'est juste une implémentation simple de manuel. http://en.wikipedia.org/wiki/Best-first_search

0

Ok pour le boardstate:

typedef std::array<std::array<int 5>, 5> boardstate; 

et maintenez la série:

std::vector<boardstate> timeseries; 

vous pouvez ajouter des éléments dans la série comme avec tout autre vecteur d'élément au moment où vous aimez

int t; 
boardstate currentstate; 

timeseries[t]=currentstate; 
Questions connexes