Implementando BFS en Java

Soy un principiante en Java, y necesito ayuda.

Estoy tratando de implementar el algoritmo de búsqueda de Breadth First para resolver un juego de rompecabezas (Unblock Me un juego en Android). He terminado con la GUI, pero estoy atascado con el algoritmo.

Hasta ahora puedo contar los movimientos disponibles de cada bloque, que se supone que son los nodos secundarios del nodo raíz. Cada nodo (lista enlazada) tiene la posición de cada bloque, y todos los nodos se almacenan en un Conjunto.

Lo que necesito ahora es marcar cada nodo como visitado, para no entrar en un bucle.

Agradecería cualquier tipo de ayuda, y corríjame si me equivoco con algo.

Gracias por adelantado :)

Respuestas a la pregunta(4)

Su respuesta a la pregunta