Regole generali

Il tempo per portare a termine la prova è di tre ore.
La prova consta un unico esercizio, fare in modo che la classe principale (che contiene il main) dell'esercizio si chiami Esercizio.
Iniziare ogni file sorgente con un commento che contiene il cognome e il nome del candidato (nell'ordine e usando opportunamente maiuscole e minuscole) e il suo numero di matricola (Es: //Bianchi Mario 0000156786).

È permesso l'uso di fogli bianchi per appunti; non è permesso l'uso di alcun tipo di materiale di consultazione tranne la documentazione in linea accedibile attraverso l'ambiente preconfigurato (usando il plugin InfoViewer attivabile con il pulsante nel bordo destro).

Per la compilazione è possibile utilizzare i plugin JCompile e RunIt (accedibili dal menu Plugins), ricordarsi di salvare il file prima della compilazione.

L'elaborato consegnato verrà corretto solo se compilabile senza errori; tutti i file sorgenti vanno salvati nella directory di default presentata dal programma.

La modularizzazione (suddivisione in classi/metodi) e l'uso opportuno di commenti che rendano comprensibile l'elaborato sono parametri utilizzati in sede di valutazione.

Esercizio: dumbHex

Scrivere un programma che accetti in input da riga di comando il nome di un file di testo che deve contenere la rappresentazione di un tavoliere di dumbHex.
DumbHex è una versione semplificata di hex che si gioca su un tavoliere quadrato; le caselle nel tavoliere sono identificabili da una coppia di coordinate che rappresentano la riga e la colonna della casella; le righe sono numerate da 1 a partire dall'alto, le colonne sono numerate da 1 a partire da sinistra. Ad esempio con [3,5] si intende la casella nella terza riga dall'alto e quinta colonna da sinistra.
I giocatori (bianco e nero), a turno, pongono nelle caselle libere del tavoliere una pedina del proprio colore cercando di creare una sequenza connessa di proprie pedine fra due bordi (il bianco fra i bordi superiore e inferiore, in nero fra i bordi destro e sinistro); si intendono connesse due pedine che si trovino o sulle stessa riga o su righe adiacenti e sulla stessa colonna o colonne adiacenti.
Il file che rappresenta il tavoliere deve essere composto di un numero N non definito a priori di linee, ognuna formata da N caratteri. Ogni linea può contenere i caratteri '.', ad indicare una posizione libera, 'O', ad indicare una pedina bianca e '*' ad indicare una pedina nera.
Il programma deve controllare se il gioco la cui rappresentazione è contenuta nel file presenta una connessione che determini la vittoria di uno dei due giocatori e, nel caso, deve visualizzare la lista delle pedine (attraverso le caselle in cui si trovano) che formano la connessione vincente.

Esempio:

Lanciando il programma (con java Esercizio dumbhex.txt), dove il file dumbhex.txt contiene:

.O.**
.O*..
..O..
*..O.
*.O..

si dovrà ottenere in output:

Il bianco vince con la sequenza [1,2],[2,2],[3,3],[4,4],[5,3]