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:
I due giocatori, alternativamente, riempiono la tavola mettendo delle
pedine (una alla volta) sulle intersezioni libere. Per esempio, un inizio di partita può essere
e successivamente
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:
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:
- Un'interfaccia grafica (forse un applet) con cui si
può
visualizzare la tavola e giocare utilizzando il mouse
- Un programma che gioca il ruolo dell'avversario
- Un server di giochi che permetta a diversi giocatori di
connettersi
per giocare fra di loro
- Una versione tridimensionale del gioco
- ...
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