# perdiendo.org/museodemetralla

entraron en mi cabeza (201) | libros (20) | me lo llevo puesto (7) | pelis (2) | Renta básica (9) | series (6) | escasez (2) | frikeando (94) | arduino (1) | autoreferencial (11) | bici (1) | esperanto (4) | eve online (3) | git (2) | GNU/linux (4) | markdown (7) | nexus7 (2) | python (7) | raspberry pi (3) | vim (1) | wordpress (1) | zatchtronics (3) | hago (751) | canciones (153) | borradores (7) | cover (42) | el extremo inútil de la escoba (2) | elec (1) | GRACO (2) | guitarlele (11) | ruiditos (11) | Solenoide (1) | fotos (37) | nanowrimo (3) | novela (26) | criaturas del pantano (5) | el año que no follamos (12) | huim (5) | rehab (4) | poemas (352) | Anclajes (15) | andando (3) | B.A.R (7) | Canción de cuna para un borracho (38) | Cercos vacíos (37) | Cien puentes en la cabeza (7) | Conejo azul (6) | Contenido del juego (5) | De tiendas (3) | del pantano (3) | Destrozos (2) | Epilogo (4) | Fuegos de artificio (5) | Imposible rescate (15) | Jugando a rojo (7) | Libro del desencuentro (2) | Lo que sé de Marte (11) | Los cuentos (21) | Montaje del juego (5) | Orden de salida (4) | palitos (31) | Piernas abiertas (7) | Poemas medianos (12) | Privado de sueño (7) | rasguemas (5) | Tanto para nada (17) | Todo a 100 (2) | Uno (4) | relatos (96) | anatemas (9) | orbital (2) | prompts (8) | vindicaciones (103) | perdiendo (1.685) | atranques (1) |

multi dado

¡Qué bien sienta que me empiecen a salir estas cositas, por muy básicas que sean!

Me estaba preguntando si podría hacer un multi dado en el que poder elegir tanto el número de dados como el número de caras. Es una tontada, pero me ha alegrado el día.

import random

# función de cada tirada de cada dado
def tirada(caras): 
    sale = random.randint(1, caras)
    return sale

# evitamos que explote el programa cuando meten números negativos o letras
def real_positivo(dados_caras): # dados caras sólo indica el parámetro del que hablar
    while True: # bucle infinito hasta que meta un valor válido
        numero = input(f'''
        ¿De qué número de {dados_caras} estaríamos hablando?

        ''')
        if numero[0] == '-' and numero[1:].isdigit():
            print(f'''
        Cuidado, un número negativo de {dados_caras} rompería el espacio-tiempo.''')        
        elif numero.isdigit():
            numero = int(numero)
            if numero > 0:
                return numero
            else:
                print(f'''
        Poco vamos a hacer con 0 {dados_caras}''')
        else:
            print('''
        Eso va a ser que no es un número entero positivo''')

caras, dados = 6 ,1 # establecemos por defecto 6 caras y 1 dado

while True: # bucle infinito hasta que el usuario quiera dejar de usar los dados

    menu = input(f'''
    M U L T I   D A D O

    1. Dados | 2. Caras | 3. Tirada | 4. Salir

    === Dados {dados}, caras {caras}

    Elige: ''')

    if menu == '1':
        dados = real_positivo('dados')
        print('''
        === Configurado ===''')

    elif menu == '2':
        caras = real_positivo('caras')
        print('''
        === Configurado ===''')

    elif menu == '3':
        suma = 0 # arriba junto con las demás supondría reiniciarlo debajo en cada fin de 3
        for cada in range(1, dados + 1):
            resultado = tirada(caras)
            suma = suma + resultado
            print(f'''
            Dado {cada} > saca {resultado}''')
        print(f'''
        Total de la tirada: {suma}''')

    elif menu == '4':
        break

    else:
        print('''
        === Eso no es una opción del menú ===''')

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.