Domino

Released under the GNU General Public License


-What's new

-System requirement

-Il programma

-Extensions

-Le regole




What's new

Versione 1.0 (22/09/2005)

- prima versone del programma


System requirement

Java Runtime Environment Standard Edition versione 1.5 o superiore
risoluzione 1024x768 o superiore



Il programma


Il programma per mette di giocare a Domino contro 2, 3 o 4 avversari controllati dal pc

Di default è presente  una sola AI (CpuPlayer)  ma il programma può caricare dinamicamente AI prodotte da terzi da assegnare a diversi giocatori in modo da rendere le partite più imprevedibili

L'interfaccia dell'estensione è descritta nella sezione successiva

Per avviare il programma digitare "java -jar Domino.jar" o doppio click sul file se l'estensione .jar è associata al programma JRE

Nel caso di 3 giocatori la 14esima carta è assegnata casualmente


Extensions

Il programma può caricare, per ogni singolo giocatore, delle AI esterne che rispettino l'interfaccia definita dalla classe astratta Domino.Giocatore

Il gioco prima di iniziare una nuova partita cerca nella sua directory classi che estendono Domino.Giocatore e se queste sono presenti vengono caricate nella lista delle AI disponibili per i 4 giocatori controllabili dal computer

la classe deve avere un nome diverso da "CpuPlayer" , "RandomPlayer" , "LocalPlayer" e "NetPlayer"

creare un nuovo file (ad esempio NuovaCPU.java) nella stessa directory dove è presente il file Domino.jar con la seguente struttura e compilarlo con il comando "javac -cp Domino.jar NuovaCPU.java" il file class generato verrà rilevato dal programma ogni volta che sarà eseguito

la sua struttura deve essere cosi

import Domino.*;

public class NuovaCPU extends Giocatore{

public static String about(){

return "Informazioni sull'estensione";

}

public NuovaCPU(String nome,Domino d){
 
       //nome: il nome nel giocatore
        //d: il tavolo da gioco che vede il giocatore  

        super(nome,d);
}

public Carta getCarta(){

/*         
Metodo astratto da implementare che restituirà la carta
oppure null se non può giocare una carta valida
Per un maggiore realismo, prima dell'istruzione return
si può assegnare alla variabile protected int id il numero
corrispondente alla carta giocata

I metodi da usare sono:

this.nValid()              
che restituisce il numero di carte giocabili
         
This.isValidAdd(int c)
che restituisce true se la carta può essere giocata

This.esisteC(int c)
che resituisce true se la carta è stata giocata

This.esisteC(int s,int v)
che resituisce true se la carta di seme s e valore v è stata giocata
*/

}

}

/*
un oggetto di tipo Carta ha i seguenti campi

public final int carta;
public final int valore;
public final int seme;

che definiscono l'id della carta (da 1 a 40)
il suo valore (da 1 a 10)
e il suo seme (da 1 a 4)


public boolean valid;
public int pr;

che possono essere usati per assegnare attributi di validità e priorità alle carte

*/




Le regole

Si può giocare in 3, 4, 5 giocatori.
Distribuite le carte,nel caso di 4 o 5 giocatori ,chi ha il 5 di quadri lo pone sul tavolo mentre nel caso di 3 giocatori inizia chi ha una carta in più
Le carte giocate sono poste ordinatamente in modo da formare file dello stesso seme.
Si gioca in senso orario, ogni giocatore mette una carta oppure passa.
Ogni giocatore deve cercare di attaccare una carta adiacente a quelle in tavola, oppure un 5. Se non si hanno carte da depositare in tavola si passa.
Si continua così finchè tutti i giocatori rimangono senza carte, lo scopo è finire le carte il prima possibile