kreilly

multi_dado.py

Jan 27th, 2021
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. import random
  2.  
  3. # función de cada tirada de cada dado
  4. def tirada(caras):
  5. sale = random.randint(1, caras)
  6. return sale
  7.  
  8. # evitamos que explote el programa cuando meten números negativos o letras
  9. def real_positivo(dados_caras): # dados caras sólo indica el parámetro del que hablar
  10. while True: # bucle infinito hasta que meta un valor válido
  11. numero = input(f'''
  12. ¿De qué número de {dados_caras} estaríamos hablando?
  13.  
  14. ''')
  15. if numero[0] == '-' and numero[1:].isdigit():
  16. print(f'''
  17. Cuidado, un número negativo de {dados_caras} rompería el espacio-tiempo.''')
  18. elif numero.isdigit():
  19. numero = int(numero)
  20. if numero > 0:
  21. return numero
  22. else:
  23. print(f'''
  24. Poco vamos a hacer con 0 {dados_caras}''')
  25. else:
  26. print('''
  27. Eso va a ser que no es un número entero positivo''')
  28.  
  29. caras, dados = 6 ,1 # establecemos por defecto 6 caras y 1 dado
  30.  
  31. while True: # bucle infinito hasta que el usuario quiera dejar de usar los dados
  32.  
  33. menu = input(f'''
  34. M U L T I D A D O
  35.  
  36. 1. Dados | 2. Caras | 3. Tirada | 4. Salir
  37.  
  38. === Dados {dados}, caras {caras}
  39.  
  40. Elige: ''')
  41.  
  42. if menu == '1':
  43. dados = real_positivo('dados')
  44. print('''
  45. === Configurado ===''')
  46.  
  47. elif menu == '2':
  48. caras = real_positivo('caras')
  49. print('''
  50. === Configurado ===''')
  51.  
  52. elif menu == '3':
  53. suma = 0 # arriba junto con las demás supondría reiniciarlo debajo en cada fin de 3
  54. for cada in range(1, dados + 1):
  55. resultado = tirada(caras)
  56. suma = suma + resultado
  57. print(f'''
  58. Dado {cada} > saca {resultado}''')
  59. print(f'''
  60. Total de la tirada: {suma}''')
  61.  
  62. elif menu == '4':
  63. break
  64.  
  65. else:
  66. print('''
  67. === Eso no es una opción del menú ===''')
  68.  
Advertisement
Add Comment
Please, Sign In to add comment