Skip to content

Commit

Permalink
Modificaciones en generacion de pistas
Browse files Browse the repository at this point in the history
  • Loading branch information
dcsibon committed Oct 14, 2024
1 parent 08ca93a commit 3b92501
Show file tree
Hide file tree
Showing 5 changed files with 155 additions and 118 deletions.
66 changes: 37 additions & 29 deletions src/adivinar_numero_p1.py → src/adivinar_numero_sol.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ def pausa():
limpiar_pantalla()


def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int) -> str:
def evaluar_diferencia(numero: int, numero_oculto: int, frio: int, caliente: int) -> int:
"""
Evalúa la distancia entre el número oculto y el ingresado, y devuelve una pista basada en la cercanía.
Evalúa la distancia entre el número oculto y el ingresado, y devuelve un código numérico
basado en la cercanía.
Args:
numero (int): Número ingresado por el usuario.
Expand All @@ -43,31 +44,54 @@ def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int)
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
Returns:
str: Mensaje indicando si el número está "Frío", "Caliente" o "Te Quemas".
int:
- 0 si el número está "Frío".
- 1 si el número está "Caliente".
- 2 si el número está "Te Quemas".
Ejemplos:
>>> evaluar_diferencia(50, 100, 15, 5)
0 # Frío
>>> evaluar_diferencia(95, 100, 15, 5)
1 # Caliente
>>> evaluar_diferencia(98, 100, 15, 5)
2 # Te Quemas
"""
diferencia = abs(numero_oculto - numero)

if diferencia > frio:
return "* FRÍO, FRÍO,"
return 0 # Frío
elif diferencia > caliente:
return "* CALIENTE, CALIENTE,"
return 1 # Caliente
else:
return "* TE QUEMAS,"
return 2 # Te Quemas


def generar_pista(numero: int, numero_oculto: int, intentos: int) -> str:
def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Genera una pista indicando si el número oculto es mayor o menor que el número ingresado.
Muestra una pista combinando la distancia (frío, caliente, te quemas) y si el número oculto
es mayor o menor.
Args:
numero (int): Número ingresado por el usuario.
numero_oculto (int): Número que debe ser adivinado.
intentos (int): Cantidad de intentos restantes.
Returns:
str: Mensaje indicando si el número oculto es mayor o menor, y cuántos intentos quedan.
frio (int): Diferencia máxima para considerar la pista como "Frío".
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
"""
pista = "el número oculto es "
diferencia_code = evaluar_diferencia(numero, numero_oculto, frio, caliente)

# Determinamos el mensaje según el código de diferencia
if diferencia_code == 0:
pista = "* FRÍO, FRÍO,"
elif diferencia_code == 1:
pista = "* CALIENTE, CALIENTE,"
else:
pista = "* TE QUEMAS,"

pista += " el número oculto es "

if numero_oculto > numero:
pista += "MAYOR... "
Expand All @@ -79,23 +103,7 @@ def generar_pista(numero: int, numero_oculto: int, intentos: int) -> str:
else:
pista += f"¡te queda {intentos} intento!\n"

return pista


def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Muestra una pista combinando la distancia y si el número oculto es mayor o menor.
Args:
numero (int): Número ingresado por el usuario.
numero_oculto (int): Número que debe ser adivinado.
intentos (int): Cantidad de intentos restantes.
frio (int): Diferencia máxima para considerar la pista como "Frío".
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
"""
pista = generar_pista(numero, numero_oculto, intentos)
estado_calor = evaluar_distancia(numero, numero_oculto, frio, caliente)
print(f"\n{estado_calor} {pista}")
print(f"\n{pista}")


def adivina_el_numero(numero_oculto: int, total_intentos: int, frio: int, caliente: int):
Expand Down
66 changes: 37 additions & 29 deletions src/adivinar_numero_p2.py → src/adivinar_numero_sol_bonus.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ def pausa():
limpiar_pantalla()


def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int) -> str:
def evaluar_diferencia(numero: int, numero_oculto: int, frio: int, caliente: int) -> int:
"""
Evalúa la distancia entre el número oculto y el ingresado, y devuelve una pista basada en la cercanía.
Evalúa la distancia entre el número oculto y el ingresado, y devuelve un código numérico
basado en la cercanía.
Args:
numero (int): Número ingresado por el usuario.
Expand All @@ -43,31 +44,54 @@ def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int)
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
Returns:
str: Mensaje indicando si el número está "Frío", "Caliente" o "Te Quemas".
int:
- 0 si el número está "Frío".
- 1 si el número está "Caliente".
- 2 si el número está "Te Quemas".
Ejemplos:
>>> evaluar_diferencia(50, 100, 15, 5)
0 # Frío
>>> evaluar_diferencia(95, 100, 15, 5)
1 # Caliente
>>> evaluar_diferencia(98, 100, 15, 5)
2 # Te Quemas
"""
diferencia = abs(numero_oculto - numero)

if diferencia > frio:
return "* FRÍO, FRÍO,"
return 0 # Frío
elif diferencia > caliente:
return "* CALIENTE, CALIENTE,"
return 1 # Caliente
else:
return "* TE QUEMAS,"
return 2 # Te Quemas


def generar_pista(numero: int, numero_oculto: int, intentos: int) -> str:
def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Genera una pista indicando si el número oculto es mayor o menor que el número ingresado.
Muestra una pista combinando la distancia (frío, caliente, te quemas) y si el número oculto
es mayor o menor.
Args:
numero (int): Número ingresado por el usuario.
numero_oculto (int): Número que debe ser adivinado.
intentos (int): Cantidad de intentos restantes.
Returns:
str: Mensaje indicando si el número oculto es mayor o menor, y cuántos intentos quedan.
frio (int): Diferencia máxima para considerar la pista como "Frío".
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
"""
pista = "el número oculto es "
diferencia_code = evaluar_diferencia(numero, numero_oculto, frio, caliente)

# Determinamos el mensaje según el código de diferencia
if diferencia_code == 0:
pista = "* FRÍO, FRÍO,"
elif diferencia_code == 1:
pista = "* CALIENTE, CALIENTE,"
else:
pista = "* TE QUEMAS,"

pista += " el número oculto es "

if numero_oculto > numero:
pista += "MAYOR... "
Expand All @@ -79,23 +103,7 @@ def generar_pista(numero: int, numero_oculto: int, intentos: int) -> str:
else:
pista += f"¡te queda {intentos} intento!\n"

return pista


def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Muestra una pista combinando la distancia y si el número oculto es mayor o menor.
Args:
numero (int): Número ingresado por el usuario.
numero_oculto (int): Número que debe ser adivinado.
intentos (int): Cantidad de intentos restantes.
frio (int): Diferencia máxima para considerar la pista como "Frío".
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
"""
pista = generar_pista(numero, numero_oculto, intentos)
estado_calor = evaluar_distancia(numero, numero_oculto, frio, caliente)
print(f"\n{estado_calor} {pista}")
print(f"\n{pista}")


def adivina_el_numero(numero_oculto: int, total_intentos: int, frio: int, caliente: int):
Expand Down
46 changes: 32 additions & 14 deletions src/adivinar_numero_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,31 +17,49 @@ def pausa():
limpiar_pantalla()


def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int) -> str:
"""Evalúa la distancia entre el número oculto y el ingresado y devuelve el estado."""
def evaluar_diferencia(numero: int, numero_oculto: int, frio: int, caliente: int) -> int:
"""
Evalúa la distancia entre el número oculto y el ingresado, y devuelve un código numérico
basado en la cercanía.
"""
diferencia = abs(numero_oculto - numero)

if diferencia > frio:
return "* FRÍO, FRÍO,"
return 0 # Frío
elif diferencia > caliente:
return "* CALIENTE, CALIENTE,"
return 1 # Caliente
else:
return "* TE QUEMAS,"
return 2 # Te Quemas


def generar_pista(numero: int, numero_oculto: int, intentos: int) -> str:
"""Genera un mensaje de pista indicando si el número oculto es mayor o menor."""
def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Muestra una pista combinando la distancia (frío, caliente, te quemas) y si el número oculto
es mayor o menor.
"""
diferencia_code = evaluar_diferencia(numero, numero_oculto, frio, caliente)

# Determinamos el mensaje según el código de diferencia
if diferencia_code == 0:
pista = "* FRÍO, FRÍO,"
elif diferencia_code == 1:
pista = "* CALIENTE, CALIENTE,"
else:
pista = "* TE QUEMAS,"

pista += " el número oculto es "

if numero_oculto > numero:
return f"el número oculto es MAYOR... ¡te quedan {intentos} intentos!\n"
pista += "MAYOR... "
else:
return f"el número oculto es MENOR... ¡te quedan {intentos} intentos!\n"
pista += "MENOR... "

if intentos > 1:
pista += f"¡te quedan {intentos} intentos!\n"
else:
pista += f"¡te queda {intentos} intento!\n"

def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""Muestra la pista basada en la diferencia entre el número y el número oculto."""
pista = generar_pista(numero, numero_oculto, intentos)
estado_calor = evaluar_distancia(numero, numero_oculto, frio, caliente)
print(f"\n{estado_calor} {pista}")
print(f"\n{pista}")


def adivina_el_numero(numero_oculto: int, total_intentos: int, frio: int, caliente: int):
Expand Down
71 changes: 44 additions & 27 deletions src/adivinar_numero_v3.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,10 @@ def pausa():
limpiar_pantalla()


def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int) -> str:
def evaluar_diferencia(numero: int, numero_oculto: int, frio: int, caliente: int) -> int:
"""
Evalúa la distancia entre el número oculto y el ingresado, y devuelve una pista basada en la cercanía.
Evalúa la distancia entre el número oculto y el ingresado, y devuelve un código numérico
basado en la cercanía.
Args:
numero (int): Número ingresado por el usuario.
Expand All @@ -46,50 +47,66 @@ def evaluar_distancia(numero: int, numero_oculto: int, frio: int, caliente: int)
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
Returns:
str: Mensaje indicando si el número está "Frío", "Caliente" o "Te Quemas".
int:
- 0 si el número está "Frío".
- 1 si el número está "Caliente".
- 2 si el número está "Te Quemas".
Ejemplos:
>>> evaluar_diferencia(50, 100, 15, 5)
0 # Frío
>>> evaluar_diferencia(95, 100, 15, 5)
1 # Caliente
>>> evaluar_diferencia(98, 100, 15, 5)
2 # Te Quemas
"""
diferencia = abs(numero_oculto - numero)

if diferencia > frio:
return "* FRÍO, FRÍO,"
return 0 # Frío
elif diferencia > caliente:
return "* CALIENTE, CALIENTE,"
return 1 # Caliente
else:
return "* TE QUEMAS,"
return 2 # Te Quemas


def generar_pista(numero: int, numero_oculto: int, intentos: int) -> str:
def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Genera una pista indicando si el número oculto es mayor o menor que el número ingresado.
Muestra una pista combinando la distancia (frío, caliente, te quemas) y si el número oculto
es mayor o menor.
Args:
numero (int): Número ingresado por el usuario.
numero_oculto (int): Número que debe ser adivinado.
intentos (int): Cantidad de intentos restantes.
Returns:
str: Mensaje indicando si el número oculto es mayor o menor, y cuántos intentos quedan.
frio (int): Diferencia máxima para considerar la pista como "Frío".
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
"""
if numero_oculto > numero:
return f"el número oculto es MAYOR... ¡te quedan {intentos} intentos!\n"
diferencia_code = evaluar_diferencia(numero, numero_oculto, frio, caliente)

# Determinamos el mensaje según el código de diferencia
if diferencia_code == 0:
pista = "* FRÍO, FRÍO,"
elif diferencia_code == 1:
pista = "* CALIENTE, CALIENTE,"
else:
return f"el número oculto es MENOR... ¡te quedan {intentos} intentos!\n"
pista = "* TE QUEMAS,"

pista += " el número oculto es "

def mostrar_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int):
"""
Muestra una pista combinando la distancia y si el número oculto es mayor o menor.
if numero_oculto > numero:
pista += "MAYOR... "
else:
pista += "MENOR... "

Args:
numero (int): Número ingresado por el usuario.
numero_oculto (int): Número que debe ser adivinado.
intentos (int): Cantidad de intentos restantes.
frio (int): Diferencia máxima para considerar la pista como "Frío".
caliente (int): Diferencia máxima para considerar la pista como "Caliente".
"""
pista = generar_pista(numero, numero_oculto, intentos)
estado_calor = evaluar_distancia(numero, numero_oculto, frio, caliente)
print(f"\n{estado_calor} {pista}")
if intentos > 1:
pista += f"¡te quedan {intentos} intentos!\n"
else:
pista += f"¡te queda {intentos} intento!\n"

print(f"\n{pista}")


def adivina_el_numero(numero_oculto: int, total_intentos: int, frio: int, caliente: int):
Expand Down
Loading

0 comments on commit 3b92501

Please sign in to comment.