La primera intuición que la mayoría de la gente tiene es intentar poner a cada androide hacia atrás y adelante centrándose en el punto de partida, cada vez acercándose más en cada dirección. Esto no funciona.

Como no se sabe a ciencia cierta qué androide se ubicara en la izquierda o la derecha, probablemente no tiene sentido ejecutar en ellos diferentes programas.

La solución para este problema es tener a ambos androides moviéndose en la misma dirección, pero no a velocidad máxima. Después, hacer que cada androide tome velocidad máxima cuando encuentra aceite otra vez. Esto ultimo solo le ocurrirá a un sólo androide. Este androide eventualmente se encontrara con el otro androide causando una colisión.

Aquí esta el programa funcional. Noten que la etiqueta "Mover lento" puede lograr su propósito haciendo que el androide ejecute un movimiento extra hacia derecha e izquierda.

[Etiqueta: Mover lento]
1 Mover derecha
2 Mover derecha
3 Mover izquierda
4 Evitar la próxima instrucción si existe aceite
5 Ir a [Mover lento]

[Etiqueta: Mover rápido]
6 Mover derecha
7 Ir a [Mover rápido]

Si les gusto este desafío, los invitamos a conocer algunos más en el sitio bigriddles.

En esta oportunidad el ganador fue Ramses que si bien su programa puede mejorarse y optimizarse cumple el objetivo planteado. Una mención especial se la llevan Raúl y David cuya solución coincide con al brindada aquí.

Juan Sacco
Analista de Malware