-
-
Save parzibyte/88b68be6b1b1fb7877b848fe63aea129 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def solicitar_coordenadas(jugador): | |
print(f"Solicitando coordenadas de disparo al jugador {jugador}") | |
# Ciclo infinito. Se rompe cuando ingresan una fila correcta | |
y = None | |
x = None | |
while True: | |
letra_fila = input( | |
"Ingresa la letra de la fila tal y como aparece en el tablero: ") | |
# Necesitamos una letra de 1 carácter. Si no es de 1 carácter usamos continue para repetir este ciclo | |
if len(letra_fila) != 1: | |
print("Debes ingresar únicamente una letra") | |
continue | |
# Convertir la letra a un índice para acceder a la matriz | |
# La A equivale al ASCII 65, la B al 66, etcétera. Para convertir la letra a índice | |
# convertimos la letra a su ASCII y le restamos 65 (el 65 es el ASCII de la A, por lo que A es 0) | |
y = ord(letra_fila) - 65 | |
# Verificar si es válida. En caso de que sí, rompemos el ciclo | |
if coordenada_en_rango(0, y): | |
break | |
else: | |
print("Fila inválida") | |
# Hacemos lo mismo pero para la columna | |
while True: | |
try: | |
x = int(input("Ingresa el número de columna: ")) | |
if coordenada_en_rango(x-1, 0): | |
x = x-1 # Queremos el índice, así que restamos un 1 siempre | |
break | |
else: | |
print("Columna inválida") | |
except: | |
print("Ingresa un número válido") | |
return x, y |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment