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
4palos: Picas, corazones, tréboles y diamentes. - 🃏 Hay
13números: ElA, números del2al10yJ,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
productoque tenga el mismo comportamiento queproductpero que no use el paqueteitertools. - Modifica el código para generar la baraja española. Esta tiene números del
1al10y oros, copas, espadas y bastos como palos.