InfoMossa.java
import java.util.Vector;
/**
* Strutura dati per la gestione delle mosse
*/
public class InfoMossa implements Comparable{
// I) definizione dei campi della classe
String sequenza; // stringa per classificare il tipo di mossa
Vector mossa; // coordinate con il percorso delle mosse
// II) definizione dei costruttori della classe
Indice
/**
* Costruttore che permette di creare una copia di una infoMossa esistente.
*/
public InfoMossa(String sequenza, Vector mossa){
this.sequenza=sequenza; // inizializzazione della sequenza
this.mossa=new Vector(); // inizializzazione del vettore della mossa
int [] coordinate; // array con le coordinate
// ciclo per l'inizializzazione della mossa
for(int i=0; i(4); // creazione della mossa
int[] inizio={startR,startC}; // salvo coordinate di inizio
mossa.add(0,inizio); // aggiungo alla mossa le coordinate
int[] fine={-1,-1}; // salvo coordinate di fine
mossa.add(1,fine); // aggiungo alla mossa le coordinate
}
/**
* Costruttore che permette di creare un oggetto di tipo InfoMossa con la stringa e le coordinate iniziali e finali passate.
*/
public InfoMossa(int startR, int startC, int endR, int endC, String s){
sequenza=s;
mossa=new Vector(4);
int[] inizio={startR,startC};
mossa.add(0,inizio);
int[] fine={endR,endC};
mossa.add(1,fine);
}
// III) definizione dei metodi della classe
Indice
/**
* Metodo per settare l'etichetta della mossa
* @param s etichetta da salvare nella mossa
*/
public void setSequenza(String s){
sequenza=s; // setto l'etichetta
}
/**
* Metodo per aggiungere le coordinate.
* @param endR coordinate x della casella
* @param endC coordinate y della casella
*/
public void addStep(int endR, int endC){
int[] fine={endR,endC}; // setto la coordinate
mossa.add(fine); // aggiungo coordinate nella mossas
}
/**
* Returns the sequenza.
* @return ritorna l'etichetta associata alla mossa
*/
public String getSequenza() {
return sequenza;
}
Indice
/**
* Metodo per il confrono di oggetti
* @param im oggetto da confrontare con quello invocante il metodo.
* @return ritorna il valore del confronto tra gli oggetti in base alle etichette della mossa
* - 0: se le etichette sono uguali e quindi le etichette sono equivalenti;
* - 1: se l'oggetto invocante ha etichetta maggiore di quella da confrontare;
* - -1: se l'oggetto invocante ha etichetta minore di quella da confrontare;
*/
public int compareTo(Object im) {
return(this.sequenza.compareTo(((InfoMossa)im).getSequenza()));
}
Indice
/**
* Metodo che ritorna le coordinate associate alla mossa
* @return ritorna il vettore con le coordinate della mossa
*/
public Vector getMossa(){
return mossa;
}
}
|