1

Como ordenar un mazo de cartas de pocker

Lo primero que hice definir el mazo completo de cartas como una lista de tuplas. Cada tupla representa una carta, donde el primer elemento de la tupla es el número de la carta y el segundo elemento es el palo de la carta.

mazo = [(‘1’, ‘Corazon’), (‘2’, ‘Corazon’), (‘3’, ‘Corazon’), (‘4’, ‘Corazon’), (‘5’, ‘Corazon’), (‘6’, ‘Corazon’), (‘7’, ‘Corazon’), (‘8’, ‘Corazon’), (‘9’, ‘Corazon’), (‘10’, ‘Corazon’), (‘J’, ‘Corazon’), (‘Q’, ‘Corazon’), (‘K’, ‘Corazon’), (‘1’, ‘Diamante’), (‘2’, ‘Diamante’), (‘3’, ‘Diamante’), (‘4’, ‘Diamante’), (‘5’, ‘Diamante’), (‘6’, ‘Diamante’), (‘7’, ‘Diamante’), (‘8’, ‘Diamante’), (‘9’, ‘Diamante’), (‘10’, ‘Diamante’), (‘J’, ‘Diamante’), (‘Q’, ‘Diamante’), (‘K’, ‘Diamante’), (‘1’, ‘Pica’), (‘2’, ‘Pica’), (‘3’, ‘Pica’), (‘4’, ‘Pica’), (‘5’, ‘Pica’), (‘6’, ‘Pica’), (‘7’, ‘Pica’), (‘8’, ‘Pica’), (‘9’, ‘Pica’), (‘10’, ‘Pica’), (‘J’, ‘Pica’), (‘Q’, ‘Pica’), (‘K’, ‘Pica’), (‘1’, ‘Trebol’), (‘2’, ‘Trebol’), (‘3’, ‘Trebol’), (‘4’, ‘Trebol’), (‘5’, ‘Trebol’), (‘6’, ‘Trebol’), (‘7’, ‘Trebol’), (‘8’, ‘Trebol’), (‘9’, ‘Trebol’), (‘10’, ‘Trebol’), (‘J’, ‘Trebol’), (‘Q’, ‘Trebol’), (‘K’, ‘Trebol’),]

Luego definí el orden de números y palos usando diccionarios. Definí dos diccionarios. orden_numeros asigna un valor numérico a cada número de carta, y orden_palos asigna un valor numérico a cada palo de carta. Esto es necesario para que el programa pueda comparar y ordenar las cartas correctamente.

orden_numeros = {‘1’: 1, ‘2’: 2, ‘3’: 3, ‘4’: 4, ‘5’: 5, ‘6’: 6, ‘7’: 7, ‘8’: 8, ‘9’: 9, ‘10’: 10, ‘J’: 11, ‘Q’: 12, ‘K’: 13}
orden_palos = {‘Pica’: 1, ‘Diamante’: 2, ‘Trebol’: 3, ‘Corazon’: 4}

Luego ordené el mazo de cartas usando dos bucles anidados. Estos bucles anidados recorren todas las combinaciones posibles de cartas en el mazo. En cada iteración, se compara la carta en el índice i con la carta en el índice j. Si la carta en el índice i es mayor que la carta en el índice j, se intercambian sus posiciones.

for i in range(len(mazo)):
for j in range(i + 1, len(mazo)):
numero_i, palo_i = mazo[i]
numero_j, palo_j = mazo[j]

    if (orden_palos[palo_i], orden_numeros[numero_i]) > (orden_palos[palo_j], orden_numeros[numero_j]):
        mazo[i], mazo[j] = mazo[j], mazo[i]

Después de ordenar el mazo, se itera a través de las cartas en el mazo y se imprime cada una, lo que muestra el mazo ordenado.
for carta in mazo:
print(carta)

Este código define un mazo de cartas, asigna valores numéricos a los números y palos de las cartas, ordena el mazo utilizando bucles y diccionarios, y luego imprime el mazo ordenado. Si te gusto podes usar otro metodos como por ejemplo index para saber al posicion de una carta.

Escribe tu comentario
+ 2