Teoria dei Giochi

Dama Italiana

  InfoMossa.java

Costruttori della classe
Costruttori

Metodi della classe
setSequenza
compareTo
getMossa



Codice


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;
		}

	}