blackimpala

juego dados python

Sep 21st, 2024
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.55 KB | Software | 0 0
  1. import random
  2.  
  3. class Dado:
  4.     def __init__(self, caras=6):
  5.         # Verificar si el número de caras es válido (4, 6, 8, 12, 20)
  6.         if caras in [4, 6, 8, 12, 20]:
  7.             self.caras = caras
  8.         else:
  9.             raise ValueError("Número de caras no permitido. Debe ser uno de los siguientes: 4, 6, 8, 12, 20.")
  10.    
  11.     def lanzar(self):
  12.         """Método para lanzar el dado y obtener un valor aleatorio."""
  13.         return random.randint(1, self.caras)
  14.  
  15. def jugar_dos_jugadores():
  16.     """Función interactiva para que dos jugadores escojan dados y jueguen."""
  17.     print("Jugador 1, elige un dado:")
  18.     dado_jugador1 = elegir_dado()
  19.    
  20.     print("Jugador 2, elige un dado:")
  21.     dado_jugador2 = elegir_dado()
  22.    
  23.     # Lanzamiento de cada jugador
  24.     resultado_jugador1 = dado_jugador1.lanzar()
  25.     resultado_jugador2 = dado_jugador2.lanzar()
  26.    
  27.     # Mostrar los resultados
  28.     print(f"Jugador 1 lanzó el dado de {dado_jugador1.caras} caras y obtuvo: {resultado_jugador1}")
  29.     print(f"Jugador 2 lanzó el dado de {dado_jugador2.caras} caras y obtuvo: {resultado_jugador2}")
  30.    
  31.     # Determinar el ganador
  32.     if resultado_jugador1 > resultado_jugador2:
  33.         print("¡Jugador 1 es el ganador!")
  34.     elif resultado_jugador1 < resultado_jugador2:
  35.         print("¡Jugador 2 es el ganador!")
  36.     else:
  37.         print("Es un empate.")
  38.  
  39. def jugar_contra_maquina():
  40.     """Función interactiva para que el jugador juegue contra la máquina."""
  41.     print("Jugador, elige un dado:")
  42.     dado_jugador = elegir_dado()
  43.    
  44.     # Dado de la máquina es aleatorio entre 4, 6, 8, 12, 20
  45.     caras_maquina = random.choice([4, 6, 8, 12, 20])
  46.     dado_maquina = Dado(caras_maquina)
  47.    
  48.     # Lanzamiento del jugador y de la máquina
  49.     resultado_jugador = dado_jugador.lanzar()
  50.     resultado_maquina = dado_maquina.lanzar()
  51.    
  52.     # Mostrar los resultados
  53.     print(f"El jugador lanzó el dado de {dado_jugador.caras} caras y obtuvo: {resultado_jugador}")
  54.     print(f"La máquina lanzó el dado de {dado_maquina.caras} caras y obtuvo: {resultado_maquina}")
  55.    
  56.     # Determinar el ganador
  57.     if resultado_jugador > resultado_maquina:
  58.         print("¡El jugador es el ganador!")
  59.     elif resultado_jugador < resultado_maquina:
  60.         print("¡La máquina es la ganadora!")
  61.     else:
  62.         print("Es un empate.")
  63.  
  64. def elegir_dado():
  65.     """Función para que el jugador elija el dado con el que quiere jugar."""
  66.     while True:
  67.         print("Elige el número de caras del dado (4, 6, 8, 12, 20):")
  68.         try:
  69.             caras = int(input())
  70.             if caras in [4, 6, 8, 12, 20]:
  71.                 return Dado(caras)
  72.             else:
  73.                 print("Número de caras no válido. Por favor elige entre 4, 6, 8, 12 o 20.")
  74.         except ValueError:
  75.             print("Entrada no válida. Por favor ingresa un número.")
  76.  
  77. def menu_principal():
  78.     """Función para mostrar el menú principal e interactuar con el jugador."""
  79.     while True:
  80.         print("\n--- Juego de Dados ---")
  81.         print("1. Jugar dos jugadores")
  82.         print("2. Jugar contra la máquina")
  83.         print("3. Salir")
  84.         opcion = input("Selecciona una opción: ")
  85.  
  86.         if opcion == '1':
  87.             jugar_dos_jugadores()
  88.         elif opcion == '2':
  89.             jugar_contra_maquina()
  90.         elif opcion == '3':
  91.             print("¡Gracias por jugar!")
  92.             break
  93.         else:
  94.             print("Opción no válida. Por favor elige entre 1, 2 o 3.")
  95.  
  96. # Iniciar el juego mostrando el menú principal
  97. menu_principal()
  98.  
Tags: python random
Advertisement
Add Comment
Please, Sign In to add comment