ereinionbw.spp
Class SquarePuzzleProblem

java.lang.Object
  |
  +--ereinionbw.spp.SquarePuzzleProblem
All Implemented Interfaces:
SearchProblem

public class SquarePuzzleProblem
extends java.lang.Object
implements SearchProblem

Implementazione di SearchProblem rappresentante il problema dell'8. Ai fini di questa documentazione il rompicapo dell'8 viene indicato anche come SquarePuzzleProblem (SPP).

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

Constructor Summary
SquarePuzzleProblem(int dim)
          Costruttore che alloca un nuovo problema.
 
Method Summary
 SearchState applyOperator(SearchState s, SearchOp op)
          Restituisce lo stato risultante dall'applicare un operatore ad uno stato.
 boolean goalTest(SearchState s)
          Verifica se uno stato � uno stato obiettivo oppure no.
 SearchState initialState()
          Restituisce lo stato iniziale del problema.
 SearchOp[] operatorList(SearchState s)
          Restituisce la lista degli operatori applicabili ad uno stato.
 int pathCost(SearchOp op)
          Restituisce il costo di un operatore.
static void printState(SearchState s)
           
 void randomizeInitState(int ran)
          Questo metodo applica allo stato iniziale un certo numero di mosse casuali, scegliendo di volta in volta tra quelle valide per lo stato risultante.
 void reset(int dim)
          Questo metodo fa essenzialmente due cose: Cambia le dimensioni del problema.
 void setInitState(SquarePuzzleState spp)
          Questo metodo setta lo stato iniziale con i valori fornite da una matrice di interi.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SquarePuzzleProblem

public SquarePuzzleProblem(int dim)
Costruttore che alloca un nuovo problema. lo stato iniziale � inizialemente ordinato come lo stato obiettivo.

Parameters:
dim - le dimensioni del rompicapo.
Method Detail

setInitState

public void setInitState(SquarePuzzleState spp)
Questo metodo setta lo stato iniziale con i valori fornite da una matrice di interi. la casella vuota ja valore 0 mentre le altre hanno valore comprese tra 1 e (dim*dim).


randomizeInitState

public void randomizeInitState(int ran)
Questo metodo applica allo stato iniziale un certo numero di mosse casuali, scegliendo di volta in volta tra quelle valide per lo stato risultante.

Parameters:
ran - il numero di mosse casuali da applicare.

reset

public void reset(int dim)

Parameters:
dim - le nuove dimensioni del rompicapo.

initialState

public SearchState initialState()
Description copied from interface: SearchProblem
Restituisce lo stato iniziale del problema.

Specified by:
initialState in interface SearchProblem
Returns:
lo stato iniziale del problema.

operatorList

public SearchOp[] operatorList(SearchState s)
Description copied from interface: SearchProblem
Restituisce la lista degli operatori applicabili ad uno stato.

Specified by:
operatorList in interface SearchProblem
Parameters:
s - lo stato da verificare.
Returns:
la lista degli operatori applicabili allo stato.

applyOperator

public SearchState applyOperator(SearchState s,
                                 SearchOp op)
Description copied from interface: SearchProblem
Restituisce lo stato risultante dall'applicare un operatore ad uno stato.

Specified by:
applyOperator in interface SearchProblem
Parameters:
s - lo stato a cui applicare l'operatore.
op - l'operatore da applicare.
Returns:
lo stato risultante.

pathCost

public int pathCost(SearchOp op)
Description copied from interface: SearchProblem
Restituisce il costo di un operatore.

Specified by:
pathCost in interface SearchProblem
Parameters:
op - l'operatore di cui va aggiunto il costo.
Returns:
il costo dell'operatore.

goalTest

public boolean goalTest(SearchState s)
Description copied from interface: SearchProblem
Verifica se uno stato � uno stato obiettivo oppure no.

Specified by:
goalTest in interface SearchProblem
Parameters:
s - lo stato da verificare
Returns:
true se � uno stato obiettivo, false altrimenti.

printState

public static void printState(SearchState s)