Ir al contenido principal

Python + Pygame (XXIV): Solitario Pirámide ('Pyramid')

En este post, mi versión del solitario Pirámide ('Pyramid')junto con Klondike, Spider, TriPeaks y Carta Blanca ('FreeCell'), una de las variantes más populares del solitario. Otro solitario que he desarrollado utilizando la programación orientada a objetos (POO), python y pygame.

El solitario Pirámide ('Pyramid') se juega con un mazo de la baraja francesa o de póker estándar (52 cartas; todas menos los dos comodines), pero también se adapta muy bien a la baraja española, por lo que en mi versión se puede jugar con ambas barajas.

El objetivo consiste en retirar en parejas todas las cartas que se disponen en una pirámide. Las cartas de cada pareja a retirar deben sumar 13, en la versión  con la baraja francesa, o 10, en la versión con la baraja española. En ambas versiones, los reyes (valores 13 y 10, respectivamente) se retiran solos, es decir sin necesidad de realizar ningún tipo de emparejamiento.

Su preparación es la siguente:

- Tras barajarse el mazo, se colocan 28 cartas en forma de pirámide, 21 si jugamos con la baraja española, de la siguiente manera: en una primera fila se coloca una única carta; en la segunda fila dos cartas tapando la parte inferior izquierda y la parte inferior derecha de la carta anterior, respectivamente; en la tercera fila tres cartas, cada una de la cuales tapará la o las partes inferiores que le corresponda de una o dos de las cartas situada en la fila 2; y así sucesivamente hasta la sexta fila (baraja española) o séptima fila (baraja francesa), en la que cada una de sus seis o siete cartas, respectivamente, tapará la o las partes inferiores que le corresponda de una o dos de las cartas situadas en la fila anterior.

Sólo se pueden utilizar para hacer parejas las cartas que estén totalmente expuestas y accesibles, es decir, sólo las cartas que no estén superpuestas por ninguna otra en la pirámide.

- La cartas restantes (24 si se juega con la baraja francesa y 19 si se juega con la española) forman parte del mazo, situado boca abajo, y del que se irán descubriendo cartas, de una en una, a medida que el jugador así lo desee.

- Además, hay dos pilas: la de reserva, en las que se irán apilando las cartas sacadas del mazo que no se emparejen inmediatamente, y la de emparejamiento, en la que se irán apilando las cartas emparejadas con éxito y que, por tanto, se retiran del juego. La carta superior de la pila de reserva está disponible para realizar emparejamientos.

Este solitario sale o se gana cuando se han conseguido retirar todas las cartas de la pirámide, y se pierde cuando, tras descubrirse todas las cartas del mazo, no se logra ese objetivo.

Como siempre, espero que sea de utilidad para todos aquellos que estén interesados en aprender sobre estos temas y/o quieran revivir los ratos jugando a él.

También como siempre, al final de este post se podrán descargar tanto el ejecutable de windows como el resto de componentes del desarrollo (código fuente, icono de la aplicación, imágenes, sonidos y resto de recursos).

Imágenes:

Quizás también te interese:

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema...

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat...

Criptografía (CLXXXIV): Soluciones Retos criptografía de CyberOlympics 2017

En este post pongo las soluciones a los retos de  criptografía que he ido resolviendo de la edición del año 2017 de CyberOlympics , competición en modalidad  'on-line' , estilo  'Capture the Flag'  y formato  'Jeopardy'  dirigida a centros educativos y organizada por el Instituto Nacional de Ciberseguridad (INCIBE) en el marco de la actividad llamada CyberCamp. En esta edición la mayoría de los retos presentaron un  nivel  de dificultad bajo  ( ★ ★ ☆☆☆ ) , lo que entiendo adecuado por el colectivo al que van dirigidos. Las soluciones al resto de desafíos de criptografía de esta edición, cuyos archivos asociados tenga (no me han pasado todos) y que consiga resolver, las pondré en otra entrada. Reto 1 (Criptografía) : Enunciado : Todas las mañanas cuando me despierto, me miro en el espejo y no entiendo lo que veo. Hoy me he levantado dando un salto mortal y no voy a apartarme de mi “otro yo” hasta que no descubra el mensaje. Parece q...