Allora la struttura del progetto deve prendere spunto da quest'altro programma..Spero possa aiutarci/vi.


public class Arbitro
{
public static void main(String args[]) {
// crea il campo di gioco
Campo campo = new Campo(Integer.parseInt(args[1]),Integer.parseInt(args[2]));
campo.popola();
int giocatori = Integer.parseInt(args[0]);
System.out.println("Sessione di gioco con " + giocatori + " giocatori");
for (int i=0;i<giocatori;i++) {
// crea il numero di giocatori richiesto
Giocatore player = new Giocatore(i,campo);
player.start();
}
}
}


public class Giocatore extends Thread
{
private Campo campo; // campo di gioco
private int number; // identificativo del giocatore
private int score;
public Giocatore(int n,Campo c) {
number = n;
campo = c;
score = 0; // score accumulato dal giocatore
}
public void run() {
int value;
int i = (int) (Math.random()*campo.getRow());
int j = (int) (Math.random()*campo.getColumn());
System.out.println("Selezione del giocatore " + number + " = (" + i + "," + j + ")");
boolean stop = false;
while (!stop) {
value = campo.seleziona(number,i,j);
if (value!=-1)
score += value;
else
stop = true;
}
System.out.println("Giocatore " + number + " termina con score = " + score);
}
}

class Campo
{
public static final int MAX_SCORE = 5;
private int last; // ultimo ad aver giocato
private int count; // numero di elementi della matrice occupati
private int row; // righe del campo
private int column; // colonne del campo
private int[][] field; // campo di gioco
public Campo(int r, int c) { // costruttore
count = 0;
last = -1;
row = r;
column = c;
field = new int[row][column];
}
public int getRow() {
return row;
}
public int getColumn() {
return column;
}
// dispone gli obiettivi sul campo di gioco. È simulato con celle di valore diverso
public void popola() {
int score;
for (int i=0;i<row;i++)
for (int j=0;j<column;j++) {
score = (int) (MAX_SCORE * Math.random());
field[i][j] = score;
if (score!=0)
count++;
}
}


// metodo di accesso al campo di gioco
public synchronized int seleziona(int number,int i,int j) {
// non puo' giocare due volte di seguito
while (number==last) {
try {
wait();
}
catch (InterruptedException e) {
System.out.println("Thread " + number + "interrotto");
}
}
int value = field[i][j];
field[i][j] = 0;
last = number;
System.out.println("Score per giocatore " + number + " = " + value);
count --; // decrementa il numero di elementi ancora presenti
if (count<=0) {
System.out.println("Sessione di gioco terminata");
value = -1;
}
notifyAll();
return value;
}
}


VEdiamo un po'...Il prof. mi ha detto che è un programmino semplicissimo..Possibile che nessuno in questo popo' di forum possa darmi una mano???