Un cierto juego infantil, a menudo llamado "Huckle Buckle Beanstalk", se juega con dos jugadores. Aquí hay una breve descripción de cómo se juega el juego:
- Un jugador es designado el "oculto" y el otro el "buscador".
- El buscador sale de la habitación mientras el ocultador esconde un pequeño objeto preseleccionado, el "tesoro".
- Luego, el ocultante intenta buscar el objeto mientras el buscador le da consejos útiles:
- Si el buscador se acerca al tesoro, el ocultador gritará "¡más cálido!"
- Si el buscador se está alejando del tesoro, el ocultador gritará "¡más fresco!"
- Una vez que el buscador encuentra el tesoro, anuncian que lo han encontrado.
Tus hijos quieren que juegues este juego con ellos, sin embargo, estás muy ocupado respondiendo preguntas en codegolf.SE. Entonces, decides escribir un programa para jugar con ellos. Sin embargo, desea utilizar el menor tiempo posible para escribir, por lo que intenta hacer que el programa tenga la menor cantidad de caracteres posible.
Podemos definir la sala en la que se juega el juego como un campo cuadrado toroidal bidimensional. La coordenada 0,0
es la esquina inferior izquierda y la coordenada 99,99
es la esquina superior derecha. El tesoro se coloca en alguna posición n,m
donde n
y m
son ambos números enteros positivos entre 0 y 99 inclusive.
Su programa obtendrá información del reproductor utilizando su función de entrada de usuario incorporada (p prompt()
. Ej . raw_input()
, Etc.) Si su idioma elegido no tiene una función de entrada de usuario, tome la entrada de STDIN en su lugar. El juego funcionará de la siguiente manera:
- El programa "esconde" el tesoro en una posición
n,m
. - El programa solicita al buscador que ingrese una posición de búsqueda inicial. La entrada vendrá en la forma
x y
dondex
yy
son enteros positivos. - El programa emite "correcto" si la posición de búsqueda inicial
x,y
es igual a la posición del tesoron,m
y termina. De otra manera: - El programa le pedirá al buscador que se mueva. La entrada viene en la forma
a b
dondea
yb
son enteros que pueden ser negativos . Esto representa el vector de dirección en el que se mueve el buscador (a
es la dirección xyb
es la dirección y). - Si la posición resultante del buscador está en el tesoro, el programa sale "correcto" y termina. De otra manera:
- El programa genera "más frío" si el buscador se está alejando del tesoro o "más caliente" si se está moviendo hacia el tesoro.
- Ve al paso 4.
Las palabras "alejarse" y "moverse hacia" pueden ser ambiguas. Para este desafío, si la posición resultante del buscador después de moverse está más cerca del tesoro que su posición antes de moverse, se están moviendo hacia el tesoro. De lo contrario, se están alejando. (Sí, esto significa que si la posición resultante y la anterior están a la misma distancia, el programa debería salir "más frío").
Este es el código de golf, por lo que gana el código más corto. Haga preguntas si la especificación no es clara.