Progetto

L'obiettivo del progetto è implementare il gioco "Il cavaliere del vuoto" in Java. Questo gioco è stato inventato da Fergus Duniho. Il gioco è una variante degli scacchi.

La posizione iniziale è la seguente:

campo

Si gioca con due giocatori: il bianco e il rosso. I pezzi sono i seguenti:

Re Torre Alfiere Cavallo Pedone Cavaliere

Ogni giocatore ha quattordici pezzi: un re, due cavalieri, due torri, due cavalli, due alfieri e cinque pedoni.

Il vincitore del gioco è quello che prende il re dell'avversario. Non si può prendere il re a sorpresa. Un giocatore che ha il proprio re attaccato (scacco!), è obbligato a fare una mossa che respinga questo attacco:

Se il giocatore non può fare nessuna di queste azioni, ha perso la partita.

Quando un giocatore che non ha il suo re attaccato non può fare una mossa senza mettere il suo re sotto attacco, la partita è dichiarata patta.

Mosse

Sono i bianchi che fanno la prima mossa. Un giocatore fa una sola mossa alla volta. I bianchi e i rossi alternano le mosse.

La maggior parte delle mosse vengono direttamente dagli scacchi. La novità in questo gioco è che la scacchiera può essere modificata con delle mosse di spostamento delle caselle.

Ogni pezzo ha un suo movimento proprio. Un pezzo non può oltrepassare i pezzi avversari nè scavalcare uno spazio fuori della scacchiera (casella nera). Le uniche eccezioni sono il cavallo e il cavaliere.

Un pezzo può eliminare un pezzo avversario occupando la sua casella e togliendolo così dalla scacchiera. Si dice in questo caso che il pezzo avversario è stato catturato.

Un pezzo non può invece occupare una casella già occupata da un altro pezzo dello stesso colore.

Si deve sempre muovere un solo pezzo alla volta, tranne quando si effettua l'arrocco.

Mossa di spostamento di una casella

Ogni pezzo che sia vicino ad uno spazio fuori della scacchiera (una casella nera) ha la possibilità di spostarsi in questa casella. Questo spostamento può accadere solamente in modo orizzontale o verticale ma non in diagonale.

Per completare una mossa di spostamento:

Una restrizione è che la casella creata deve essere connessa almeno con un lato del resto della scacchiera. Questo assicura che il gioco resta nelle dimensioni 7 colonne per 9 righe.

Per esempio, nel diagramma sottostante:

Prima spostamento

il pedone può muoversi fuori della scacchiera:

Dopo spostamento

La mossa è corretta perchè la nuova casella a3 è connessa con la scacchiera tramite la casella a2.

Re

Il re si muove di una casella alla volta in una qualsiasi direzione, come disegnato nel diagramma sottostante:

Re

Il re non può muoversi in una casella sotto attacco.

L'arrocco

Un mossa particolare del re è l'arrocco. Tale mossa coinvolge il re e una delle due torri. Si può effettuare un arrocco solo una volta in tutta la partita. Le condizioni per poter effettuare l'arrocco sono le seguenti: L'arrocco si effettua spostando il re di due caselle verso la torre e affiancando il re con la torre dall'altra parte. Per esempio, nella posizione seguente:

Prima Arroco

si può effetuare l'arrocco:

Dopo Arroco

Torre

La torre si muove lungo colonne o righe, come disegnato nel diagramma sottostante:

Torre

Alfiere

L'Alfiere si muove lungo le diagonali in linea retta, come disegnato nel diagramma sottostante:

Alfiere

Cavallo

Il cavallo ha un movimento un pò particolare. È l´unico che può saltare pezzi del proprio schieramento e di quello avversario. il cavallo si muove spostandosi di una casella come la torre e poi di una casella come l´alfiere, in modo da fare una specie di movimento ad L, come disegnato nel diagramma sottostante:

Cavallo

Pedone

Il pedone è l'unico pezzo che si muove in un certo modo e per catturare si muove in altra maniera. Il pedone si muove in avanti di una sola casella. Invece per catturare si muove come l'alfiere, ma solo di una casella alla volta e sempre avanti. Nel diagramma sottostante il punto blu indica la casella dove il pedone può muoversi, i due punti indicano le caselle dove il pedone può catturare un pezzo avversario.

Pedone

Quando un pedone fa una mossa di spostamento, il pedone non può andare indietro.

Promozione

Quando un pedone raggiunge il fondo della scacchiera, cioè l´ultima riga (la 9 per i bianchi, la prima per i rossi), il giocatore sceglie in quale pezzo (torre, alfiere, cavallo, o cavaliere) il pedone viene promosso.

Cavaliere

Il cavaliere si muove come il re, come disegnato nel diagramma sottostante:

Cavaliere

La differenza rispetto al re è che il cavaliere non è bloccato dal vuoto. Si sposta di una casella anche se fra queste due caselle ci sono caselle vuote. Per esempio, nella posizione seguente:

Cavaliere

il cavaliere può scavalcare le caselle c1, d1 e e1 e muoversi in f1.

Cavaliere

Nello stesso modo quando un cavaliere fa una mossa di spostamento, può spostare piú di un vuoto ma la casella creata deve comunque essere connessa con la scacchiera per almeno un lato.

Per esempio, nella posizione seguente:

Cavaliere

il cavaliere può passare e atterrare nella casella vuota d1:

Cavaliere

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 o se il gioco è finito in parità. Questa parte del progetto dovrà essere consegnata prima di fare lo scritto.

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 sessione Installation per l'istallazione.


Laurent Théry
Last modified: Sat Jan 24 03:56:12 MET 2004