Index   Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

Todo List

Member GoAutoBook::Merge (const GoAutoBook &other)
Handle counts properly? Would need to know the original book the two books we are merging derived from.

Class GoBlock
Avoid cyclic dependency with GoBlock

Member GoBlock::Liberties () const
slow

File GoBoardCheckPerformance.h
check performance on different kinds of positions. check execute/undo move, full board repetition, etc.

Namespace GoBoardWrite
move into its own file

Member GoChainCondition::m_type
replace by class

Member GoChainCondition::UsesLibs () const
make a base class without libs

File GoEyeCount.h

the implementation of seki support is incomplete.

needs unit test cases.

Member GoEyeStatus
there are more cases, see Landman's paper in Games of no Chance.

Member GoEyeUtil::IsSimpleEye (const GoBoard &bd, SgPoint p, SgBlackWhite c)
Add example to documentation where this method fails

Member GoEyeUtil::TestNakade (const SgPointSet &points, const GoBoard &bd, SgBlackWhite color, bool isFullyEnclosed, bool &isNakade, bool &makeNakade, bool &makeFalse, bool &maybeSeki, bool &sureSeki, SgPoint *vital)
: seki support is primitive only. vital is set iff makeNakade or makeFalse

Class GoGame

Remove non-const function Time() and decouple time measurement from tracking the time left at a node. This class should not have to deal with time measurement, instead add a time parameter to AddMove() that informs the game about the time that needs to be subtracted from the time left.

Also ensure in GoGame that the time settings and time left records always reflect the state at the current node. This should be implemented in GoBoardUpdater::Update(), which is used by GoGame.

Member GoGame::CurrentNode () const
changed from protected to public because of getting the current time left.

Class GoPlayer
Remove non-const access to Board(). Currently still needed, because GenMove() has no toPlay argument, so if one wants to generate a move for the color not to play in the current position, one has to call Board().SetToPlay() before the GenMove(). Also, this class makes too many assumptions about the player. Not every player needs a local board for computations or needs to derive from GoBoardSynchronizer to update its state incrementally to the game board.

Member GoPlayer::CurrentNode () const
Rename to something more meaningful, like SearchTraces()

Class GoRegion
Avoid cyclic dependency with GoBlock

Member GoRegion::AllEmptyAreLibs () const
does not test only for boundary block libs, but all libs.

Member GoRegion::ComputeIs1Vital () const
explain the algorithm.

Member GoRegion::Find2FreeLibs (const GoChain *c1, const GoChain *c2, SgPoint *lib1, SgPoint *lib2) const
In future, must respect all other chain conditions active in this region.

Member GoRegion::FindChains (const GoRegionBoard &ra)
There must be faster ways to do this.

Member GoRegion::InteriorEmpty (SgVector< SgPoint > *interiorEmpty, int maxNu) const
does not test only for boundary block libs, but all libs.

Member GoRegionBoard::GenChains ()
currently this only creates 1 chain for each block.

Member GoRegionBoard::m_computedHealthy
in fully incremental mode, this should be determined locally for each block, not globally.

Member GoRegionBoard::s_free
do it in debug only

Member GoRegionFlag
Does not follow naming convention for constants in global namespace; rename to all-uppercase and use prefix GO_

Member GoSearch::CheckDepthLimitReached () const
Remove. Implement it in the subclasses, because it depends on the move generation there.

Class GoSortedMoves
make maxNuMoves a template parameter, use instead of GO_SORTED_MOVES_MAX


Sun Mar 13 2011 Doxygen 1.7.1