[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: computer-go: Super-Ko



if the hash key is (or roughly is) the number of stones on the board, then
the two versions are equally costly in terms of time.

> -----Original Message-----
> From: John Tromp [mailto:tromp@xxxxxxxxxxxxxxxxx]
> Sent: Friday, 13 July, 2001 09:39
> To: computer-go@xxxxxxxxxxxxxxxxx
> Subject: Re: computer-go: Super-Ko
> 
> 
> > About Super-Ko
> > 
> > How much speed will it take out of a program, 
> > if for every move the total numbers of stones actual on the 
> board is counted and stores in an array,
> > and the Super-Ko is only checked with the prevous board 
> position where the count of stones is equal to the present position ?
> 
> That's still neither as simple nor as fast as looking up the 
> current boardhash
> in a hashtable. E.g. in java you can just define a
> 
>   HashSet oldboards = new HashSet();
> 
> and a new move will violate superko if
> 
>   oldboards.add(board.zobristHash()) == false
> 
> (add() returns true if its argument is not already present)
> this will take constant time.
> 
> regards,
> 
> %!PS                       %  -John Tromp (http://www.cwi.nl/~tromp/)
> 42 42 scale 7 9 translate .07 setlinewidth .5 setgray/c{arc clip fill
> setgray}def 1 0 0 42 1 0 c 0 1 1{0 3 3 90 270 arc 0 0 6 0 -3 3 90 270
> arcn 270 90 c -2 2 4{-6 moveto 0 12 rlineto}for -5 2 5{-3 exch moveto
> 9 0 rlineto}for stroke 0 0 3 1 1 0 c 180 rotate initclip}for showpage
>