Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

FCSAStarSolvingAlgorithm< SolvingAlgorithmType > Class Template Reference

A-star method solver.

#include <FCSAStarSolvingAlgorithm.h>

List of all members.

Public Member Functions

 FCSAStarSolvingAlgorithm (FCCommandLineArguments *CommandLine)
 Constructor with command line interface.
virtual ~FCSAStarSolvingAlgorithm ()
 Destructor.
virtual FCSStateSolvingReturnCodes Solve (FCSStateWithLocations *StateWithLocations, int Depth)
 Solve the game.
virtual FCSStateSolvingReturnCodes Resume (int Depth)
 Resume solving a game.

Protected Member Functions

 FCSAStarSolvingAlgorithm ()
 Default constructor.
void InitFCSAStarSolvingAlgorithm ()
 The "real" default constructor.
void InitAStar (FCSStateWithLocations *StateWithLocations)
 Initialize the a-star values.
int AStarRateState (FCSStateWithLocations *StateWithLocations)
 Rate the state.

Private Attributes

PriorityQueue< FCSStateWithLocations > * m_AStarQueue
 Put the states in a priority queue based on their rating.
double m_AStarInitialCardsUnderSequence
 Part of rating the states.
double m_AStarWeights [5]
 Value of the a-star weights.
FCSStateWithLocationsm_FirstStateToCheck
 Saved state for when a-star scan is resumed.


Detailed Description

template<class SolvingAlgorithmType>
class FCSAStarSolvingAlgorithm< SolvingAlgorithmType >

Definition at line 36 of file FCSAStarSolvingAlgorithm.h.


Member Function Documentation

template<class SolvingAlgorithmType>
int FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::AStarRateState FCSStateWithLocations StateWithLocations  )  [protected]
 

Parameters:
StateWithLocations is the state to rate
Returns:
State rating

Definition at line 374 of file FCSAStarSolvingAlgorithm.h.

References FCSCard::Copy(), FCSCard::Create(), FCS_A_STAR_CARDS_UNDER_SEQUENCES_EXPONENT, FCS_A_STAR_SEQS_OVER_RENEGADE_CARDS_EXPONENT, FCSStateWithLocations::GetFoundation(), FCSStateWithLocations::GetFreecellCardNumber(), FCSStateWithLocations::GetStackCard(), FCSStateWithLocations::GetStackLength(), FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_AStarInitialCardsUnderSequence, FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_AStarWeights, and FCSStateWithLocations::m_Depth.

Referenced by FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::Resume(), and FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::Solve().

template<class SolvingAlgorithmType>
void FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::InitAStar FCSStateWithLocations StateWithLocations  )  [protected]
 

Parameters:
StateWithLocations is the start state to initialize the values

Definition at line 339 of file FCSAStarSolvingAlgorithm.h.

References FCSCard::Copy(), FCSCard::Create(), FCS_A_STAR_CARDS_UNDER_SEQUENCES_EXPONENT, FCSStateWithLocations::GetStackCard(), FCSStateWithLocations::GetStackLength(), and FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_AStarInitialCardsUnderSequence.

Referenced by FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::Solve().

template<class SolvingAlgorithmType>
FCSStateSolvingReturnCodes FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::Resume int  Depth  )  [virtual]
 

Parameters:
Depth to continue at depth
Returns:
Solving return code

Definition at line 255 of file FCSAStarSolvingAlgorithm.h.

References FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::AStarRateState(), FCSStateWithLocations::GetFreecellCardNumber(), FCSStateWithLocations::GetStackLength(), FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_AStarQueue, FCSStateWithLocations::m_Depth, FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_FirstStateToCheck, FCSDerivedStatesList::m_NumberOfStates, FCSDerivedStatesList::m_States, FCSStateWithLocations::m_Visited, FCSStateWithLocations::m_VisitIterations, PriorityQueue< Data >::Pop(), and PriorityQueue< Data >::Push().

template<class SolvingAlgorithmType>
FCSStateSolvingReturnCodes FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::Solve FCSStateWithLocations StateWithLocations,
int  Depth
[virtual]
 

Parameters:
StateWithLocations is the start state
Depth is the starting depth
Returns:
Solving return code

Definition at line 153 of file FCSAStarSolvingAlgorithm.h.

References FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::AStarRateState(), FCSStateWithLocations::GetFreecellCardNumber(), FCSStateWithLocations::GetStackLength(), FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::InitAStar(), FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_AStarQueue, FCSStateWithLocations::m_Depth, FCSAStarSolvingAlgorithm< SolvingAlgorithmType >::m_FirstStateToCheck, FCSStateWithLocations::m_MovesToParent, FCSDerivedStatesList::m_NumberOfStates, FCSStateWithLocations::m_Parent, FCSDerivedStatesList::m_States, FCSStateWithLocations::m_Visited, FCSStateWithLocations::m_VisitIterations, PriorityQueue< Data >::Pop(), and PriorityQueue< Data >::Push().


The documentation for this class was generated from the following file:
Generated on Sat Nov 5 11:20:17 2005 for Cpp Freecell Solver by  doxygen 1.4.4