Skip to content

Buscamines en Python amb Tkinter. Aplicació gràfica interactiva on has de descobrir cel·les sense explotar les mines.

License

Notifications You must be signed in to change notification settings

xbaubes/Buscamines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💣💣💣💣 Buscamines 💣💣💣💣

Aplicació gràfica interactiva desenvolupada amb Python i Tkinter que reimplementa el clàssic joc del Buscamines: Has de descobrir totes les cel·les sense explotar cap de les mines.

Inclou registre de puntuacions mitjançant l'API de SheetDB.

📦 Estructura del projecte

buscamines/
├── main.py              # Iniciador de l'aplicació
├── buscamines.py        # Lògica del joc
├── casella.py           # Classe Casella
├── config.py            # Configuració de l'aparença i el joc
└── api.py               # URL de l'API SheetDB
icon/
└── bomba.ico            # Icona per a l'executable
.gitignore
requirements.txt
exe-requirements.txt

▶️ Requisits

  • Python 3.13+
  • Dependències per executar el joc definides a requirements.txt
  • Dependències per crear executable definides a exe-requirements.txt
  • Connexió a internet per desar i recuperar puntuacions

🎮 Executar el joc

pip install -r requirements.txt
python main.py

🗃️ Crear executable

Un cop el joc és executable, pots crear un fitxer executable per a Windows utilitzant pyinstaller.

1. Instal·la les dependències

pip install -r exe-requirements.txt

2. Genera l'executable

Des de l'arrel del projecte introdueix:

pyinstaller --onefile --windowed --name=Buscamines --icon=icon/bomba.ico --add-data "icon/bomba.ico;icon" buscamines/main.py

L'executable es generarà a la carpeta dist/.

També pots descarregar la última versió des d'aquí:

⬇️ Descarrega Buscamines

🕹️ Funcionalitats

  • Disseny gràfic personalitzat amb emojis
  • Marcatge de casella sospitosa de tenir una bomba amb clic dret
  • Revelació automàtica de les caselles que no tenen bombes adjacents
  • Control de temps i visualització del TOP 10 de puntuacions amb nom i temps
  • Al finalitzar la partida se n'inicia automàticament una de nova

⏱️ API de puntuacions

Aquest projecte utilitza una API proporcionada per SheetDB per desar i obtenir els millors temps:

https://sheetdb.io/api/v1/77zmp0nhr00bh

📸 Captura

Captura del joc

🚧 TODO

🛠️ Estructura i codi

  • Separació MVC: Actualment la lògica i la GUI estan entrellaçades. Reorganització modular separant clarament models, views i controllers. Això permetria reutilitzar la lògica per fer una versió web amb Flask

🔐 Seguretat

  • Migració API: Actualment tan el GET com el POST de puntuacions són públics, el POST hauria de requerir autenticació. Passar de SheetDB a Google Apps Script per implementar un control més flexible i personalitzat dels permisos de cada endpoint

📝 Llicència

Aquest projecte està disponible sota la llicència MIT: Lliure d'ús, còpia i modificació amb crèdit a l'autor.

About

Buscamines en Python amb Tkinter. Aplicació gràfica interactiva on has de descobrir cel·les sense explotar les mines.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages