Desafío 12 de ESET

Desafío 12 de ESET

Dos androides se encuentran en diferentes puntos de una línea de longitud infinita. Cuando ellos son ubicados por primera vez, cada uno deja caer una cantidad de aceite para marcar sus puntos de partida. Se debe programar cada androide para asegurarse que eventualmente se chocaran entre sí. El programa podrá utilizar las siguientes instrucciones: Moverse

Dos androides se encuentran en diferentes puntos de una línea de longitud infinita. Cuando ellos son ubicados por primera vez, cada uno deja caer una cantidad de aceite para marcar sus puntos de partida. Se debe programar cada androide para asegurarse que eventualmente se chocaran entre sí. El programa podrá utilizar las siguientes instrucciones: Moverse

Androide de ESET

Dos androides se encuentran en diferentes puntos de una línea de longitud infinita. Cuando ellos son ubicados por primera vez, cada uno deja caer una cantidad de aceite para marcar sus puntos de partida.
Se debe programar cada androide para asegurarse que eventualmente se chocaran entre sí. El programa podrá utilizar las siguientes instrucciones:

  • Moverse a la izquierda un espacio
  • Moverse a la derecha un espacio
  • Evitar la siguiente instrucción si existe aceite en donde estoy
  • Ir a la etiqueta X

Nota: una etiqueta es un nombre que se refiera a una línea del código. Por ejemplo, podríamos crear una etiqueta que se llame [DERECHATRESVECES] entonces la instrucción “Ir a la etiqueta [DERECHATRESVECES]” haría que se ejecute el contenido de la misma, para seguir luego con el próximo ciclo. Este tipo de referencia se la conoce con la nomenclatura GO TO y es utilizada en programación de bajo y alto nivel.

El androide ejecutará una instrucción por segundo y ambos utilizarán el mismo programa. Además no sabemos qué androide esta a la izquierda y cuál a la derecha de la línea.

Pista: la primera intuición para resolver este problema suele ser la incorrecta.

Juan Sacco
Analista de Malware

Discusión