Class Territorio

java.lang.Object
  extended by Territorio
All Implemented Interfaces:
java.lang.Comparable

public class Territorio
extends java.lang.Object
implements java.lang.Comparable

Un territorio ha come caratteristiche un nome, un numero di territori confinanti e un numero di armate poste su di esso. Inoltre, ogni territorio appartiente ad un continente, cioè un gruppo di territori posti relativamente vicini, o comunque tutti nella stessa area geografica.

Version:
1.0.0
Author:
Alessio Treglia

Constructor Summary
Territorio(java.lang.String nome, int armate)
          Inizializza un oggetto Territorio.
 
Method Summary
 int compareTo(java.lang.Object ob)
          Esegue il confronto fra i codici hash di due territori.
 boolean confinaCon(Territorio t)
          Verifica la contiguità con un altro territorio.
 int getArmate()
          Restituisce il numero di armate presenti sul territorio.
 java.lang.String getContinente()
          Restituisce il nome del continente del quale fa parte in formato stringa
static int getMinimoArmate()
          Restituisce il numero minimo di armate che devono essere presenti sul territorio.
 java.lang.String getNome()
          Restituisce una stringa contenente il nome del territorio.
 java.util.Set getTerritoriConfinanti()
          Restituisce una collezione di territori confinanti.
 int hashCode()
          Funzione di hash.
 boolean isVuoto()
          Controlla che sul territorio ci siano delle armate
 int maxDadiAttacco()
          Restituisce il numero massimo di dadi che può lanciare in attacco il giocatore che possiede il territorio.
 int maxDadiDifesa()
          Restituisce il numero massimo di dadi che può lanciare in difesa il giocatore che possiede il territorio.
 boolean muovi(int n, Territorio destinazione)
          Sposta un numero di armate verso un territorio confinante.
 boolean puoAttaccare()
          Se sul territorio sono presenti due o più armate, allora si può attaccare da esso.
 boolean puoAttaccare(int n)
          Verifica che un territorio abbia sufficienti armate per attaccare con n dadi
 void setArmate(int n)
          Trasferisce su di esso un n numero di armate.
 void setConfinante(Territorio t)
          Imposta un territorio come confinante.
 void setConfinanti(java.util.Set confinanti)
          Imposta una collezione di territori come confinanti con se stesso.
 boolean setContinente(java.lang.String nome)
          Imposta il nome del continente del quale il territorio fa parte.
 java.lang.String toString()
          Restituisce una descrizione in formato stringa dell'oggetto.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Territorio

public Territorio(java.lang.String nome,
                  int armate)
Inizializza un oggetto Territorio. Imposta un nome (i.e. "cina", "egitto"), e un numero di armate iniziali.

Parameters:
nome - Nome del territorio
armate - Armate iniziali
Method Detail

getNome

public java.lang.String getNome()
Restituisce una stringa contenente il nome del territorio.

Returns:
il nome del territorio in formato String

getArmate

public int getArmate()
Restituisce il numero di armate presenti sul territorio.

Returns:
il numero di armate presenti sul Territorio

getContinente

public java.lang.String getContinente()
Restituisce il nome del continente del quale fa parte in formato stringa

Returns:
il continente del quale fa parte

getTerritoriConfinanti

public java.util.Set getTerritoriConfinanti()
Restituisce una collezione di territori confinanti.

Returns:
un Set contenente i riferimenti ai territori confinanti

setArmate

public void setArmate(int n)
Trasferisce su di esso un n numero di armate.

Parameters:
n - Numero di armate da trasferire sul Territorio

setContinente

public boolean setContinente(java.lang.String nome)
Imposta il nome del continente del quale il territorio fa parte. Verifica che il nome inserito sia un continente accettabile. Restituisce lo stato dell'operazione.

Parameters:
nome - nome del continente
Returns:
true in caso di successo

setConfinante

public void setConfinante(Territorio t)
Imposta un territorio come confinante.

Parameters:
t - Territorio con cui confina

setConfinanti

public void setConfinanti(java.util.Set confinanti)
Imposta una collezione di territori come confinanti con se stesso.

Parameters:
confinanti - Set di territori confinanti

confinaCon

public boolean confinaCon(Territorio t)
Verifica la contiguità con un altro territorio. Se la verifica è positiva restituisce true.

Parameters:
t - Territorio del quale verifica la contiguità
Returns:
true è confinante, false in caso contrario

muovi

public boolean muovi(int n,
                     Territorio destinazione)
Sposta un numero di armate verso un territorio confinante. Controlla che il territorio di destinazione sia confinante e che vengano spostate un numero accettabile di armate (su ogni territorio deve sempre rimanere almeno un'armata di difesa)

Parameters:
n - numero di armate da spostare
destinazione - Territorio verso il quale spostare le armate
Returns:
true in caso di successo

puoAttaccare

public boolean puoAttaccare()
Se sul territorio sono presenti due o più armate, allora si può attaccare da esso.

Returns:
true se sul territorio ci sono almeno due armate. In caso contrario il Territorio può solo difendersi.

puoAttaccare

public boolean puoAttaccare(int n)
Verifica che un territorio abbia sufficienti armate per attaccare con n dadi

Parameters:
n - numero dadi lanciati dall'attacco
Returns:
true se n è un numero accettabile e se vi sono sufficienti armate sul terrritorio

maxDadiAttacco

public int maxDadiAttacco()
Restituisce il numero massimo di dadi che può lanciare in attacco il giocatore che possiede il territorio.

Returns:
numero masssimo di dadi utilizzabili in un attacco

maxDadiDifesa

public int maxDadiDifesa()
Restituisce il numero massimo di dadi che può lanciare in difesa il giocatore che possiede il territorio.

Returns:
numero massimo di dadi utilizzabili per difendersi

isVuoto

public boolean isVuoto()
Controlla che sul territorio ci siano delle armate

Returns:
false se sul Territorio ci sono delle armate

getMinimoArmate

public static int getMinimoArmate()
Restituisce il numero minimo di armate che devono essere presenti sul territorio.

Returns:
il numero minimo di armate che devono essere presenti sul Territorio per poterlo occupare

hashCode

public int hashCode()
Funzione di hash.

Overrides:
hashCode in class java.lang.Object
Returns:
restituisce il codice hash dell'oggetto

compareTo

public int compareTo(java.lang.Object ob)
Esegue il confronto fra i codici hash di due territori.

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
ob - Territorio da confrontare
Returns:
un valore minore, uguale o maggiore di 0 a seconda che l'oggetto chiamante sia minore, uguale o maggiore dell' oggetto del parametro.

toString

public java.lang.String toString()
Restituisce una descrizione in formato stringa dell'oggetto.

Overrides:
toString in class java.lang.Object
Returns:
una String contenente la descrizione dell'oggetto