Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Good NON-BITBOARD move generator?

Author: Pham Hong Nguyen

Date: 08:34:07 08/30/02

Go up one level in this thread


On August 30, 2002 at 08:22:52, Vladimir Medvedev wrote:

>I am thinking on improving data representation and move generator in GreKo.
>Currently it is array/offset based code (very TSCP-like :)
>I believe it is very non-optimal.
>
>But I don't mean to rewrite GreKo from scratch and switch to bitboard
>representation (in the far future, may be... not now...).
>
>Which open source chess engines can give me a good example of NON-BITBOARD move
>generation/board representation ?

Hello,

For non-bitboard world, you may try board representation 0x88 and its
correspondent generator. I don't know any source code but it is not difficult to
convert from mailbox one (TSCP), thought. Another considerable method is to look
moves from pre-generated tables - source is GNU (version 3.x-4.x).

Trying several kinds of move generators is very fun (but need hard working),
from my experience :) However, after dumping much time on them, I realize any
one of them is good enough (if its code is optimal). The main reason is that
move generators doesn't need much time. In my program, it takes around 5-7% of
total time. It means if I can improve them much faster, rewrite in assembly, I
can save maximum 4 % of total time. That number is ok if I have not any other
thing to do. Meanwhile, sometimes rewrite only few lines of evaluation function
(usually 30-40%) can gain the same.

General, even move generators can differ on time consuming (some generate all
legal moves in one pack - very slow, comparing with generating pseudo moves in
some packs) but strengths of programs probably do not depend on them.

Suggest: Don't change data structures and/or board representations if just
because of speeding up move generations.

PHN



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.