ereinionbw.spp
Class SquarePuzzleState

java.lang.Object
  |
  +--ereinionbw.spp.SquarePuzzleState
All Implemented Interfaces:
SearchState

public class SquarePuzzleState
extends java.lang.Object
implements SearchState

Implementazione di SearchState rappresentante uno stato per il problema del rompicapo dell'8.

Lo stato � definito come una griglia di questo tipo:
x/yx:0x:1x:2
y:0[1][2][3]
y:1[4][5][6]
y:2[7][8][0]

In particolare quello riportato qui sopra � lo stato ordinato (soddisfa il goal test) con dimensione 3.
La casella vuota � quella di valore 0 (valore contenuto anche nel campo BLANK_VALUE)

Since:
EPR 1.0
Version:
1.1, 13/11/2002
Author:
Ereinion
See Also:
SquarePuzzleOp, SquarePuzzleProblem

Field Summary
static int BLANK_VALUE
          Campo pubblico che indica il valore attribuito alla casella vuota.
static int MAX_DIMENSION
          Campo pubblico che indica il valore massimo per le dimensioni del rompicapo.
static int MIN_DIMENSION
          Campo pubblico che indica il valore minimo per le dimensioni del rompicapo.
 
Constructor Summary
SquarePuzzleState(int dim)
          Crea un nuovo SquarePuzzleState.
SquarePuzzleState(SquarePuzzleState s)
          Crea un nuovo SquarePuzzleState.
 
Method Summary
static int blankX(SquarePuzzleState spp)
          Restituisce la posizione sull'asse x della casella vuota.
static int blankY(SquarePuzzleState spp)
          Restituisce la posizione sull'asse y della casella vuota.
static int dimension(SquarePuzzleState spp)
          Restituisce le dimensioni di uno stato.
 boolean equals(java.lang.Object obj)
          Verifica l'uguaglianza con un oggetto generico.
 boolean equalState(SearchState s)
          Verifica se c'� uguaglianza logica tra due stati.
static int getBox(SquarePuzzleState spp, int x, int y)
          Restituisce il valore si un casella.
 java.lang.String[] stateToLines()
          Crea una rappresentazione sotto forma di alcune stringhe di questo stato (ogni stringa rappresenta una linea distinta).
static void switchBox(SquarePuzzleState spp, int x, int y)
          Scambia una casella con la casella vuota.
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_DIMENSION

public static final int MAX_DIMENSION
Campo pubblico che indica il valore massimo per le dimensioni del rompicapo.

See Also:
Constant Field Values

MIN_DIMENSION

public static final int MIN_DIMENSION
Campo pubblico che indica il valore minimo per le dimensioni del rompicapo.

See Also:
Constant Field Values

BLANK_VALUE

public static final int BLANK_VALUE
Campo pubblico che indica il valore attribuito alla casella vuota.

See Also:
Constant Field Values
Constructor Detail

SquarePuzzleState

public SquarePuzzleState(SquarePuzzleState s)
Crea un nuovo SquarePuzzleState. Il nuovo stato � uguale a quello dato.

Parameters:
s - lo stato da copiare.

SquarePuzzleState

public SquarePuzzleState(int dim)
Crea un nuovo SquarePuzzleState. Il nuovo stato ha dimensioni date ed � ordinato (soddisfa il goal test).

Parameters:
dim - le dimensioni dello stato.
Method Detail

dimension

public static int dimension(SquarePuzzleState spp)
Restituisce le dimensioni di uno stato.

Parameters:
spp - lo stato da considerare.
Returns:
le dimensioni dello stato.

blankX

public static int blankX(SquarePuzzleState spp)
Restituisce la posizione sull'asse x della casella vuota.

Parameters:
spp - lo stato da considerare.
Returns:
la posizione sull'asse x della casella vuota.

blankY

public static int blankY(SquarePuzzleState spp)
Restituisce la posizione sull'asse y della casella vuota.

Parameters:
spp - lo stato da considerare.
Returns:
la posizione sull'asse y della casella vuota.

switchBox

public static void switchBox(SquarePuzzleState spp,
                             int x,
                             int y)
Scambia una casella con la casella vuota.

Parameters:
spp - lo stato da considerare.
x - la posizione sull'asse x della casella da scambiare.
y - la posizione sull'asse y della casella da scambiare.

getBox

public static int getBox(SquarePuzzleState spp,
                         int x,
                         int y)
Restituisce il valore si un casella.

Parameters:
spp - lo stato da considerare.
x - la posizione sull'asse x della casella.
y - la posizione sull'asse y della casella.
Returns:
il valore della casella.

equals

public boolean equals(java.lang.Object obj)
Verifica l'uguaglianza con un oggetto generico. Un oggetto � uguale solo se � uno SquarePuzzleState e ha tutti le casselle in posizione uguale.

Overrides:
equals in class java.lang.Object
Parameters:
obj - l'oggetto da confrontare.

equalState

public boolean equalState(SearchState s)
Description copied from interface: SearchState
Verifica se c'� uguaglianza logica tra due stati.

Specified by:
equalState in interface SearchState
Parameters:
s - lo stato con cui verificare l'uguaglianza.
Returns:
true se i due stati sono logicamente equivalenti, false altrimenti.

stateToLines

public java.lang.String[] stateToLines()
Description copied from interface: SearchState
Crea una rappresentazione sotto forma di alcune stringhe di questo stato (ogni stringa rappresenta una linea distinta).

Specified by:
stateToLines in interface SearchState
Returns:
un array di String che descrivono lo stato.