sin-titulo

Pasted Oct 22, 2026, 2:29 PM1 file107 lines

Scan to open on your phone

Point a camera at the QR code - it opens this exact paste, no app needed.

https://codepastes.com/zzgsphd116k440m0
sin-titulo
import random

COLORES = ["Rojo", "Azul", "Verde", "Amarillo"]

def crear_mazo():
    mazo = []
    for color in COLORES:
        mazo.append((color, "0"))
        for numero in range(1, 10):
            mazo.append((color, str(numero)))
            mazo.append((color, str(numero)))
    random.shuffle(mazo)
    return mazo

def mostrar_mano(mano):
    for i, carta in enumerate(mano, 1):
        print(f"{i}. {carta[0]} {carta[1]}")

def puede_jugar(carta, mesa):
    return carta[0] == mesa[0] or carta[1] == mesa[1]

def jugar_uno():
    mazo = crear_mazo()
    jugador = [mazo.pop() for _ in range(7)]
    computadora = [mazo.pop() for _ in range(7)]
    mesa = mazo.pop()
    turno_jugador = True

    print("\n=== ¡BIENVENIDO AL JUEGO UNO! ===")
    print("Gana quien se quede sin cartas.")
    print("Puedes jugar una carta del mismo color o número.")

    while jugador and computadora:
        print("\nCarta en la mesa:", mesa[0], mesa[1])

        if turno_jugador:
            print("\nTus cartas:")
            mostrar_mano(jugador)
            opciones = [
                i for i, carta in enumerate(jugador)
                if puede_jugar(carta, mesa)
            ]

            if not opciones:
                print("No tienes cartas válidas. Robas una carta.")
                jugador.append(mazo.pop() if mazo else
                              (random.choice(COLORES),
                               str(random.randint(0, 9))))
                turno_jugador = False
                continue

            print("Elige el número de la carta que deseas jugar.")
            print("Escribe 0 para robar una carta.")

            try:
                eleccion = int(input("Tu elección: "))
            except ValueError:
                print("Escribe un número válido.")
                continue

            if eleccion == 0:
                jugador.append(mazo.pop() if mazo else
                               (random.choice(COLORES),
                                str(random.randint(0, 9))))
                print("Robaste una carta.")
                turno_jugador = False
                continue

            if not 1 <= eleccion <= len(jugador):
                print("Esa opción no existe.")
                continue

            carta = jugador[eleccion - 1]
            if not puede_jugar(carta, mesa):
                print("No puedes jugar esa carta.")
                continue

            mesa = jugador.pop(eleccion - 1)
            print("Jugaste:", mesa[0], mesa[1])

        else:
            opciones = [
                i for i, carta in enumerate(computadora)
                if puede_jugar(carta, mesa)
            ]

            if opciones:
                carta = computadora.pop(random.choice(opciones))
                mesa = carta
                print("\nLa computadora jugó:",
                      carta[0], carta[1])
            else:
                computadora.append(
                    mazo.pop() if mazo else
                    (random.choice(COLORES),
                     str(random.randint(0, 9)))
                )
                print("\nLa computadora robó una carta.")

        turno_jugador = not turno_jugador

    if not jugador:
        print("\n¡FELICIDADES! ¡GANASTE EL UNO!")
    else:
        print("\nLa computadora ganó. ¡Inténtalo otra vez!")

jugar_uno()

3,334 chars · codepastes.com