32.
case 0:
33.
path[path_length - 3] = 'S';
34.
break;
35.
case 90:
36.
path[path_length -
37.
break;
38.
case 180:
39.
path[path_length - 3] = 'B';
40.
break;
41.
case 270:
42.
path[path_length - 3] = 'L';
43.
break;
44.
}
45.
// The path is now two steps shorter.
46.
path_length -=
47. }
Un punto interesante de este código es que ha
con un giro a izquierda
acordado. En muchos programa
incoherenci
as de este tipo, ya q
que el robot pierda el control.
el laberinto, pero el mejor enfoque
lista y nos quedemos sin memoria.
Recorte de un callejón sin salida al ident
Cuando nos encontramos con el primer cruce después de nuestra
primera retrocesión, sabemos que hem
Recorte del tramo sin salida final lo que n
El último trozo es una secuencia de
acción queda en una 'R' y el trayec
La lista de acciones quedará de esta manera:
1. L
2. LS
3. LSB
4. LSBL => LR (recortado)
5. LRB
6. LRB
L => LB (recortado)
7. LBL =
> S (recortado)
8. SB
9. SBL => R (recortado)
3] = 'R';
2;
del robot, como 'RBR', ya que son reemplazadas por 'S' según lo
s avanzados es posi
ue indican que alguna vez este tipo de problema podría causar
Ahora vamos a mostrar como a través de un laberinto un
poco más complicado cómo podemos simplificar el camino a
medida que lo exploramos de la siguiente manera:
Explorar el laberinto con la estrategia de la mano izquierda en la pared.
Esta lista de acciones es la suma de pasos que hacemos al
explorar el laberinto hasta el final, marcado con u
negro. Nuestro reto ahora es reducir esta lista para optimizar
el trayecto. Una solución es
realizar este recorte al finalizar
es trabajar antes de que crezca la
if
icarlo.
os llegado a un callejón sin
salida que puede ser recortado de nuestra lista de acciones.
En este caso, las acciones de la s
simplificadas con una sola vuelta
Recorte del resto de esta rama sin salida como marcha atrás.
En la siguiente secuencia 'RBL' puede quedar reducida a
un atrás 'B' y combinada con la acción siguiente quedaría
como 'LBL' que se reduce a un simple 'S'.
os
deja el camino más corto desde el principio hasta el final.
l
tipo 'SBL' que podemos reducir a una 'R'. Nuestra última
to
de ha reducido de forma considerable del principio al final.
y algunas secuencias que nunca se encontrarán
ble que desee realizar un seguimiento de las
n círculo
ecuencia "SBL", quedarían
a la derecha 'R'.