Skip to content

Commit

Permalink
Juego terminado sin documentar aún
Browse files Browse the repository at this point in the history
  • Loading branch information
dcsibon committed Oct 13, 2024
1 parent 6093b37 commit cf0351e
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 62 deletions.
144 changes: 115 additions & 29 deletions src/adivinar_numero.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

import os
import random
import time


def limpiar_pantalla():
Expand All @@ -15,40 +16,48 @@ def limpiar_pantalla():
os.system('clear')


def dame_pista(numero: int, numero_oculto: int, intentos: int) -> str:
def pausa():
input("\nPresione ENTER para continuar...")
limpiar_pantalla()


def dame_pista(numero: int, numero_oculto: int, intentos: int, frio: int, caliente: int) -> str:
pista = "el número oculto es "

if numero_oculto > numero:
pista += f"MAYOR... ¡te quedan {intentos} intentos!"
pista += f"MAYOR... ¡te quedan {intentos} intentos!\n"
else:
pista += f"MENOR... ¡te quedan {intentos} intentos!"
pista += f"MENOR... ¡te quedan {intentos} intentos!\n"

diferencia = abs(numero_oculto - numero)

if diferencia >= 15:
pista = "* FRÍO, FRÍO, " + pista
elif 10 <= diferencia < 15:
pista = "* CALIENTE, CALIENTE, " + pista
if diferencia > frio:
pista = "\n* FRÍO, FRÍO, " + pista
elif diferencia > caliente:
pista = "\n* CALIENTE, CALIENTE, " + pista
else:
pista = "* TE QUEMAS, " + pista
pista = "\n* TE QUEMAS, " + pista

return pista


def adivina_el_numero(numero_oculto: int, total_intentos: int):

def adivina_el_numero(numero_oculto: int, total_intentos: int, frio: int, caliente: int):
numero = numero_oculto - 1
intentos_realizados = 0
numero_adivinado = False
salir = False

while numero != numero_oculto and total_intentos > 0:
while not salir:
intentos_realizados += 1
total_intentos -= 1
numero = introduce_numero_entero(f"¿Qué número es? ")
if numero != numero_oculto and total_intentos > 0:
print(dame_pista(numero, numero_oculto, total_intentos))
else:
print(dame_pista(numero, numero_oculto, total_intentos, frio, caliente))
elif numero == numero_oculto:
numero_adivinado = True
salir = True
else:
salir = True

return numero_adivinado, intentos_realizados

Expand All @@ -64,7 +73,7 @@ def introduce_numero_entero(msj: str) -> int:
valor = input(msj).strip()

while not comprobar_numero_entero(valor):
print("**ERROR** Ha introducido un número entero no válido!")
print("\n*ERROR* Ha introducido un número entero no válido!")
valor = input(msj).strip()

return int(valor)
Expand All @@ -75,37 +84,114 @@ def genera_numero_oculto(min: int, max: int) -> int:


def configurar_juego():
minimo = 0
maximo = 0
limpiar_pantalla()
print(f"--- CONFIGURA EL JUEGO DE ADIVINA EL NÚMERO OCULTO ---\n\n")

salir = False

while not (minimo < maximo and (maximo - minimo) >= 100):
while not salir:
minimo = introduce_numero_entero("Introduce el mínimo número posible: ")
maximo = introduce_numero_entero("Introduce el máximo número posible: ")
if not (minimo < maximo and (maximo - minimo) >= 100):
print("*ERROR* Debe haber por lo menos 100 números de diferencia entre ellos...\n")
print("\n*ERROR* Debe haber por lo menos 100 números de diferencia entre ellos...\n")
else:
salir = True

salir = False

while not salir:
frio = introduce_numero_entero("Introduce la diferencia para mostrar la pista FRÍO, FRÍO: ")
caliente = introduce_numero_entero("Introduce la diferencia para mostrar la pista CALIENTE, CALIENTE: ")
if not (frio > caliente and minimo <= frio <= maximo and minimo <= caliente <= maximo):
print(f"\n*ERROR* Deben estar dentro del rango ({minimo}.{maximo}) y no ser iguales...\n")
else:
salir = True

intentos = introduce_numero_entero("Introduce el número de intentos: ")

return minimo, maximo, intentos
def main():
return minimo, maximo, intentos, frio, caliente


def mostrar_configuracion(minimo, maximo, intentos, frio, caliente):
limpiar_pantalla()
print("--- BIENVENIDOS AL JUEGO DE ADIVINAR EL NÚMERO OCULTO ---\n\n")
print(f"--- CONFIGURACIÓN ACTUAL DE ADIVINA EL NÚMERO OCULTO ---\n\n")
print(f"* El número oculto será un número entero entre {minimo} y {maximo}.")
print(f"* El número de intentos posibles son {intentos}.")
print(f"* La diferencia mayor de {frio}, mostrará la pista FRÍO, FRÍO...")
print(f"* La diferencia mayor de {caliente}, mostrará la pista CALIENTE, CALIENTE...")
print(f"* Si la diferencia es menor, mostrará la pista TE QUEMAS...")
pausa()


def mostrar_menu():
limpiar_pantalla()
print(f"--- MENÚ DE ADIVINA EL NÚMERO OCULTO ---\n\n")
print("1. Jugar.")
print("2. Configurar.")
print("3. Mostrar configuración.")
print("4. Salir.\n")


def elegir_opcion_menu() -> int:
mostrar_menu()
salir = False
while not salir:
opcion = introduce_numero_entero("Elije => ")

if not comprobar_opcion(opcion):
print("\n*ERROR* Opción {opcion} incorrecta! (1-3)")
else:
salir = True

return opcion


print("* Primero vamos a configurar el juego...\n")
minimo, maximo, intentos = configurar_juego()
def comprobar_opcion(opcion: int) -> bool:
return 1 <= opcion <= 4

numero_oculto = genera_numero_oculto(minimo, maximo)

def jugar(numero_oculto, intentos, frio, caliente):
limpiar_pantalla()
print(f"--- ADIVINA EL NÚMERO OCULTO EN {intentos} INTENTOS ---\n\n")
numero_adivinado, intentos_realizados = adivina_el_numero(numero_oculto, intentos)
numero_adivinado, intentos_realizados = adivina_el_numero(numero_oculto, intentos, frio, caliente)

if numero_adivinado:
print(f"¡Bravo! ¡Lo conseguiste en {intentos_realizados} intentos!")
print(f"\n¡Bravo! ¡Lo conseguiste en {intentos_realizados} intentos!")
else:
print("GAME OVER - ¡Otra vez será!")
print(f"\nGAME OVER - ¡Otra vez será! (#{numero_oculto}#)")

pausa()



def main():
limpiar_pantalla()
print("--- BIENVENIDOS AL JUEGO DE ADIVINAR EL NÚMERO OCULTO ---\n\n")
time.sleep(2)

minimo = 0
maximo = 100
frio = 15
caliente = 5
intentos = 5

salir = False

while not salir:
opcion = elegir_opcion_menu()

if opcion == 1:
numero_oculto = genera_numero_oculto(minimo, maximo)
jugar(numero_oculto, intentos, frio, caliente)
elif opcion == 2:
minimo, maximo, intentos, frio, caliente = configurar_juego()
elif opcion == 3:
mostrar_configuracion(minimo, maximo, intentos, frio, caliente)
else:
salir = True

limpiar_pantalla()
print("Bye, bye...\n\n")


if __name__ == "__main__":
Expand Down
33 changes: 0 additions & 33 deletions src/juego_adivinar.py

This file was deleted.

0 comments on commit cf0351e

Please sign in to comment.