Progetto

L'obiettivo del progetto è implementare il gioco "Gonnect" in Java. Questo gioco è stato inventato da João Neto. Il gioco è una combinazione di due giochi famosi: Go and Hex.
Si gioca su una tavola costituita da una griglia di righe orizzontali e verticali di dimensione 13x13:

Tavola iniziale


I due giocatori, alternativamente, riempiono la tavola mettendo delle pedine (una alla volta) sulle intersezioni libere. Per esempio, un inizio di partita può essere

Prima mossa


e successivamente

Seconda mossa


Le regole del gioco sono le seguenti:
Swap
Invece della sua prima mossa, il secondo giocatore può scegliere di cambiare i colori.
Catena
Pedine dello stesso colore che sono adiacenti (verticalmente o orizzontalmente) formano una catena: due pedine appartengono alla stessa catena se e solamente se esiste un modo per passare dall'una all'altra camminando (verticalmente o orizzontalmente) solamente su pedine dello stesso colore.
Libertà
Una pedina ha una libertà se almeno una delle sue intersezioni adiacenti è libera. Una catena ha una libertà se contiene almeno una pedina con una libertà.
Cattura
Se in seguito all'inserimento di una pedina una catena si ritrova senza libertà, tutte le pedine che la compongono vengono catturate e sono rimosse della tavola.
No suicide
Una mossa  non può essere fatta se ha per conseguenza la cattura di una catena dello stesso colore della pedina aggiunta.
Mossa
Si può fare una mossa solamente se la catena alla quale appartiene la nuova pedina ha una libertà. La libertà è calcolata dopo le eventuali catture delle catene del colore opposto alla pedina aggiunta.
Vittoria
Un giocatore vince se connette con una catena due lati opposti della tavola o se l'altro giocatore si trova nell'impossibilità di fare una mossa, ovvero tutte le sue mosse formano catene senza libertà.
Per esempio, una tavola vincente è la seguente:

Tavola finale


Il nero ha vinto: ha connesso il lato sinistro con il destro.

Progetto

Un primo obiettivo del progetto è di avere un'implementazione del gioco in Java che convalida le mosse dei due giocatori e indica alla fine quale dei due ha vinto. Questa parte del progetto dovrà essere consegnata prima di fare la prova scritta.

A partire da questa base, l'implementazione può essere completata realizzando per esempio:

Netbeans

Se si utilizza netbeans per sviluppare il progetto:

Per avere le parentesi {} sotto netbeans con la tastiera italiana, fare unzip di patch-kb.zip sotto ~/.netbeans/X.X/system (Linux) o C:\Documents and Settings\NOME\.netbeans\X.X\system (Window) dove X.X è il numero della versione di netbeans istallata e NOME il nome utente. Questo dovrebbe creare una sotto directory Editors sotto system. Adesso rieseguendo netbeans, i tasti F11 e F12 dovrebbero permettere di avere le parentesi.

Per verificare la conformità del progetto, si può usare nbcheckstyle. Vedere la sezione Installation per l'istallazione.


Laurent Théry
Last modified: Fri Jun 9 11:17:27 MEST 2006