Méthode naïve
Si c'est juste une représentation sans avoir à faire tourner d'algorithme de cheminement, le plus simple c'est de coder une matrice dont chaque case permettra de décrire les murs. Si je note avec des * les coins de la case ça pourrait donner, par exemple
0 mur :
* *
0
* *
1 mur :
*-*
1
* *
* *
|2
* *
* *
3|
* *
* *
4
*-*
etc... Je te laisse la joie de faire les cas avec les combinaisons de 2murs, 3 murs, et 4 murs. Il devient alors facile connaissant la position du joueur dans cette matrice de savoir dans quelle direction il peut se déplacer.
Le principal avantage de la méthode est que le labyrinthe devient facile à tracer
Méthode idéale
Je ne sais pas si tu as eu la joie de faire de la théorie des graphes, mais c'est dans ton cas l'outil le plus adapté. En effet chaque case du labyrinthe est un sommet ayant au plus 4 voisins (les cases adjacentes), sachant qu'on ne construit un arc entre deux sommets (cases) que si elles sont adjacentes et qu'elles ne sont pas séparées par un mur.
En affectant une métrique de 1 à chaque arc et en choisissant pour sommet source la case où est positionné le joueur, il devient facile de calculer le plus court chemin avec un algorithme de Dijkstra vers n'importe quelle case du labyrinthe.
Idéalement tu peux utiliser en C++ la librairie boost qui propose un algorithme de Dijkstra et un export graphviz de ton graphe. Si tu dois te contenter d'un mode texte tu as intérêt à stocker dans les sommets du graphe leurs coordonnées afin de les ordonner facilement et de retrouver quelles cases voisines sont accessibles ou non.
Bonne chance