Link Search Menu Expand Document
El Libro De Python (24.95 €) 39.95 €

Crear baraja de Poker con itertools

En este ejemplo vemos como crear una baraja de Poker usando itertools. Aunque la podríamos crear definiendo una a una las 52 cartas de la baraja de Poker, podemos hacerlo de manera más sencilla sabiendo lo siguiente:

  • ♠️ ♥️ ♣️ ♦️ Hay 4 palos: Picas, corazones, tréboles y diamentes.
  • 🃏 Hay 13 números: El A, números del 2 al 10 y J, Q, K.

Las 52 cartas resultantes son simplemente las combinaciones de dos elementos de ambos conjuntos. Esto se conoce también como producto cartesiano. Lo podemos hacer de la siguiente manera.

import itertools

palos = ['Picas', 'Corazones', 'Tréboles', 'Diamantes']
numeros = ['A'] + list(range(2, 11)) + ['J', 'Q', 'K']

baraja = list(itertools.product(numeros, palos))

for carta in baraja:
    print(f"{carta[0]} de {carta[1]}")

# A de ♠️
# A de ♥️
# A de ♣️
# A de ♦️
# ...

Como puedes ver en baraja ahora tenemos las 52 cartas, generadas como combinaciones de los números y palos.

✏️ Ejercicios:

  • Escribe una función producto que tenga el mismo comportamiento que product pero que no use el paquete itertools.
  • Modifica el código para generar la baraja española. Esta tiene números del 1 al 10 y oros, copas, espadas y bastos como palos.