Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quinquis

Juego de cartas por turnos con baraja española (40 cartas), implementado en Python.

Estado del proyecto

  • Motor de juego desacoplado de la interfaz.
  • Interfaz de consola totalmente funcional.
  • Interfaz GUI básica con tkinter.
  • Tests de reglas críticas con pytest.

Estructura

  • quinquis/models.py: modelos y constantes de cartas.
  • quinquis/engine.py: reglas, estado y lógica del juego (sin print/input).
  • quinquis/console_ui.py: capa de consola.
  • quinquis/gui.py: capa GUI.
  • main.py: punto de entrada.
  • tests/test_engine.py: tests del motor.

Reglas del juego

  1. Se usan 40 cartas: Espadas, Bastos, Copas, Oros.
  2. Empiezan 4 cartas por jugador.
  3. Objetivo: quedarse sin cartas antes que el rival.
  4. Cada baza:
    • Sale quien tiene el turno.
    • El otro responde.
  5. Al responder:
    • Si tienes el palo de salida, debes jugarlo.
    • Si no lo tienes, robas hasta encontrarlo.
    • Si el mazo termina sin ese palo, tomas la carta que salió.
  6. Si ambos juegan el mismo palo, gana la carta más fuerte.
  7. Si los palos son distintos, mantiene la salida quien abrió la baza.

Orden de fuerza

  • Espadas/Bastos: As < 2 < 3 < 4 < 5 < 6 < 7 < Sota < Caballo < Rey
  • Copas/Oros: Rey < Caballo < Sota < 7 < 6 < 5 < 4 < 3 < 2 < As

IA de la CPU al responder

  • Si puede ganar, juega la carta más baja que todavía gana.
  • Si no puede ganar, descarta la carta más baja de ese palo.
  • En modo abuelo, además simula la baza actual y la siguiente para elegir una respuesta favorable al corto plazo y mantener ventaja de mano/turno.

Ejecución

Requisitos: Python 3.10+.

Consola

python main.py --ui console

GUI

python main.py --ui gui --mode normal

GUI con cartas dibujadas

python main.py --ui gui_cards --mode normal

--mode acepta: facil, normal, abuelo. --ui acepta: ask, console, gui, gui_cards.

Sin parámetros (python main.py), el programa pregunta al inicio qué interfaz usar.

Cartas SVG de alta calidad

La interfaz gui_cards usa la baraja SVG ubicada en:

  • assets/spanish-playing-cards-svg

Renderizado en runtime:

  • resvg_py para convertir SVG a PNG
  • Pillow para mostrar imágenes en Tkinter

Instalación recomendada:

python -m pip install --user resvg_py pillow

Tests

pytest -q

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages