Saltar a contenido

Pirata

Un pirata escondió su valioso tesoro en algún punto \((a,b)\) del mapa cartesiano (con \(a\), \(b\) números enteros entre \(0\) y \(100\)). Diseñe un programa que genere un punto \(a\), \(b\) dentro del intervalo \([0,100]\) de manera aleatoria y pregunte el escondite del tesoro. Se debe adivinar la posición del tesoro solicitando una posición \((x, y)\). Si el lugar ingresado coincide con la ubicación del tesoro se muestra la frase "Tesoro encontrado" y el algoritmo termina. En caso contrario, se imprime a qué distancia del tesoro se encuentra el punto ingresado y se vuelve a leer otro posible lugar. Lea el valor de cada coordenada por separado.

Ejemplo

Ingrese x: 50 
Ingrese y: 50 
Tesoro a 26.93 
Ingrese x: 20 
Ingrese y: 60 
Tesoro a 5.0 
Ingrese x: 20 
Ingrese y: 55 
Tesoro a 7.07 
Ingrese x: 25 
Ingrese y: 60 
Tesoro encontrado

Nota: No se base en los valores el ejemplo ya que los valores \(a\), \(b\) son aleatorios y cambian en cada ejecución.

Solución
from random import randint
from math import sqrt
# Posicion del tesoro
a = randint(0, 100)
b = randint(0, 100)
encontrado = False # Variable 
while not encontrado:
    # Intento de adivinar
    x = int(input('Ingrese x: '))
    y = int(input('Ingrese y: '))
    # Verificar
    if x == a and y == b:
        encontrado = True
    else:
        # Calculo de distancia
        d = round(sqrt((a - x) ** 2 + (b - y) ** 2), 2)
        print('Tesoro a', d)
# Luego de terminar el ciclo, el tesoro fue encontrado
print('Tesoro encontrado')