https://github.com/mikyll/tabluttactics
Applicazione grafica per facilitare la comprensione delle meccaniche di gioco e l'ideazione di strategie di Ashton Tablut
https://github.com/mikyll/tabluttactics
artificial-intelligence ashton challenge sdl2 strategy tablut tactics
Last synced: about 1 year ago
JSON representation
Applicazione grafica per facilitare la comprensione delle meccaniche di gioco e l'ideazione di strategie di Ashton Tablut
- Host: GitHub
- URL: https://github.com/mikyll/tabluttactics
- Owner: mikyll
- License: mit
- Created: 2022-05-02T16:50:59.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-18T11:18:30.000Z (about 2 years ago)
- Last Synced: 2024-04-18T13:14:34.020Z (about 2 years ago)
- Topics: artificial-intelligence, ashton, challenge, sdl2, strategy, tablut, tactics
- Language: C
- Homepage:
- Size: 56.5 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Tablut Tactics
Tablut Tactics è un'applicazione grafica creata con l'obiettivo di facilitare la comprensione delle meccaniche di gioco, e l'ideazione di strategie, di Tablut con le regole di Ashton.
In particolare, permette di inizializzare la tavolo da gioco, con la formazione di partenza, e modificarla a piacimento, muovendo le pedine e creando configurazioni personalizzate.
Inoltre, è possibile visualizzare i movimenti permessi a ciascuna pedina.
Vedi anche:
[TablutCompetition](https://github.com/AGalassi/TablutCompetition)
·
[Gionnino9000](https://github.com/Gionnino9000/Gionnino9000)
### Demo
Text output
Video output
### Utilizzo
1. Scaricare l'[ultima versione](https://github.com/mikyll/TablutTactics/releases/latest)
2. Estrarre l'archivio
3. Eseguire il *Launcher*
#### Comandi
- mouse `click sinistro`
- su una pedina: seleziona/deseleziona la pedina;
- su uno spazio vuoto (se è stata selezionata una pedina), muove la pedina in quella posizione (non tenendo conto dei vincoli o delle mosse possibili);
- mouse `click destro`: modifica il contenuto di una casella, in base al tipo di pedina selezionata (EMPTY, BLACK, WHITE, KING);
- tastiera `r`: resetta la tavola di gioco con la configurazione iniziale;
- tastiera numeri `0-9`: salva la configurazione corrente nell'indice relativo al numero
- tastiera frecce `<-` e `->`: carica la configurazione salvata all'indice relativo al numero
### Regole di Gioco di Tablut

**_Tablut_** è un antico gioco da tavolo di origini nordiche, la cui storia non è del tutto certa.
Esistono diverse regole, ma quelle descritte in questa pagina, chiamate anche "Regole di Ashton", sono le regole adottate per la challenge.
Il tavolo *(eheh tavoletta)* da gioco è costituito da una griglia 9x9. Si gioca in 2 ed i giocatori si alternano muovendo una pedina in ciascun turno. In particolare:
- il **difensore** (bianco), possiede 8 pedine bianche
ed 1 re
.
Deve proteggere il re, aiutandolo a fuggire;
- l'**attaccante** (nero), possiede 16 pedine nere
.
Deve assediare il castello, catturando il re e impedendogli di scappare.
La griglia di gioco comprende delle **caselle speciali**:
- i **campi**
,
sono le posizioni di partenza delle pedine nere, su cui si possono muovere esclusivamente loro. Se una pedina esce da un campo, poi non può più rientrare;
- il **castello**
,
è la posizione di partenza del re. Come per i campi, solo il re può trovarsi in questa casella, ma se esce non può più rientrare;
- le **vie di fuga**
.
Se il re si muove su una di queste caselle, il bianco vince.

**Movimenti** possibili:
- le pedine si muovono ortogonalmente (ovvero non possono fare mosse in diagonale), di un numero qualsiasi di caselle, ma non possono scavalcare i campi ed il castello, o altre pedine;
- le pedine nere si possono muovere liberamente all'interno dello stesso campo, finché non escono, dopodiché non potranno più rientrare.
Le pedine possono essere **catturate**:
- una pedina bianca o nera viene catturata se l'avversario la circonda con due pedine su lati opposti;
- il re può essere catturato solo se viene circondato su ogni lato;
- è possibile catturare più di una pedina alla volta e la cattura dev'essere "attiva": se una pedina si sposta fra due pedine avversarie non viene catturata.
Esistono anche **casi speciali** di catture:
- una pedina bianca o nera può venire catturata anche se si trova in una casella adiacente ad un campo o al castello, e una pedina avversaria si sposta sulla casella opposta
(i campi ed il castello si comportano come una sorta di "barriera", non importa se tale casella è occupata oppure no);
- se il re si trova in una casella adiacente ad uno o più campi o al castello, è sufficiente circondarlo in tutti i restanti lati liberi per catturarlo.
**Inizio** del gioco: il bianco muove per primo.
Il gioco **termina** quando:
- il re raggiunge una via di fuga, in questo caso vince il bianco;
- il re viene catturato, in questo caso vince il nero;
- un giocatore non può più muovere pedine, in questo caso tale giocatore perde;
- lo stato di gioco si ripete due volte, in questo caso si ha un pareggio.
### Sviluppi Futuri
- [ ] Caricamento/Salvataggio dello stato verso/da file
- [ ] Attivazione delle meccaniche del gioco (pedine mangiate, movimento vincolato, gestione turni), tramite 'g'
- [ ] Stampare in output lo stato della board, così da poterlo copiare e incollare (ad esempio in un programma Java che testa l'euristica partendo da un certo stato)