El 2º problema que tengo, es que recorro una matriz empezando desde un punto aleatorio, tengo que hacer un bucle que recorra todo esa matriz, ya he simulado mediante un while, lo que serían los 2 "fors" para recorrer la matriz, así, cogiendo el valor anterior como último recorro toda la matriz.
El problema está que para optimizarlo, miro una cosa (que no influye para el problema) para no tener que mirar 1 por 1 todas las posiciones de la matriz, eso implica, que si tenemos una matriz de 10x10 y empezamos a mirar en el punto (5,5) el anterior será el (4,5). Pero como tengo hecho el algoritmo es posible que solo mire los puntos (6,8), (7,6) y (1,4). Con lo cual, nunca llegaría a mirar el punto (4,5) para comprobar que ya hemos recorrido toda la matriz.
Como lo tengo ahora mismo: Como ayer tuve que presentar que funcionase, hice una chapucilla y cree una colección que me iba guardando estos puntos, con lo cual, cuando se repetía 1 punto, significaba que ya había recorrido toda la matriz.
Mientras escribía esto, se me ha ocurrido que no puedo mirar que el punto que estamos mirando sea > que el inicial, ya que nada mas empezar, ya será superior y aún no ha dado la vuelta, pero lo que puedo hacer para solucionar esto, es guardarme siempre el punto anterior, y compararlo con el actual. Una vez el actual sea mas pequeño que el anterior, significará que hemos dado la vuelta, con lo cual, la próxima vez que la posición actual sea mayor que la de origen, significará que ya hemos dado la vuelta entera. No creo que se optimice mucho respecto al anterior pero bueno, alguna idea?