class IntermediateStrategyInfo: public StrategyInfo { public: Move getMove(GameState state); private: Move removePile(int pile, GameState state); Move evenPiles(GameState state); bool allNonEmpty(GameState state); bool oneNonEmpty(GameState state); bool allDifferent(GameState state); int theDifferentPile(GameState state); };
getMove implements a more intelligent move strategy than its superclass's version.
The rest of the methods are private (unadvertised) methods called by getMove.