Index   Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

goboardko.cpp

Go to the documentation of this file.
00001 /** @page goboardko Handling of Ko Moves in Class GoBoard
00002 
00003 @section goboardkodefault Default Settings
00004 
00005 By default moves violating the Ko rule are illegal.
00006 That means that GoBoard::IsLegal will return false.
00007 If they are played anyway, GoBoard::LastMoveInfo will return true
00008 for ::GO_MOVEFLAG_ILLEGAL and ::GO_MOVEFLAG_REPETITION.
00009 
00010 @section goboardkoallow Allowing Ko Moves
00011 
00012 During searches, Ko moves can be made legal with GoBoard::AllowKoRepetition.
00013 In addition, a ko loser has to be set with GoBoard::SetKoLoser.
00014 Then, Ko moves are legal (the ::GO_MOVEFLAG_REPETITION flag is still set).
00015 GoBoard::KoLevel returns the number of (now legal) Ko moves played by the
00016 Ko winner so far.
00017 If GoBoard::KoModifiesHash is true, only up to GoBoard::MAX_KOLEVEL Ko
00018 moves will be legal.
00019 
00020 @section goboardkonotes Oddities in the Current Implementation
00021 
00022 - AllowAnyRepetition overrides AllowKoRepetition.
00023 
00024 - GoBoard::KoModifiesHash has an effect only if AllowKoRepetition.
00025 
00026 - GoBoard::KoLevel is updated both if AllowKoRepetition and AllowAnyRepetition
00027 (does some code rely on this?)
00028 
00029 - GoBoard::KoColor is updated only if AllowKoRepetition
00030 (does some code rely on this?)
00031 
00032 - AllowKoRepetition does not allow two non-alternating Ko moves by the same
00033 player in a row
00034 (does some code rely on this?) */
00035 


Sun Mar 13 2011 Doxygen 1.7.1