Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Bitboard by any simple engine?

Author: Vincent Diepeveen

Date: 07:16:45 05/29/04

Go up one level in this thread


On May 29, 2004 at 04:24:18, Tony Werten wrote:

>On May 28, 2004 at 18:37:29, Bas Hamstra wrote:
>
>>On May 28, 2004 at 16:31:39, Tony Werten wrote:
>>
>>>On May 28, 2004 at 15:32:29, Russell Reagan wrote:
>>>
>>>>On May 28, 2004 at 14:52:09, Slater Wold wrote:
>>>>
>>>>>On May 28, 2004 at 14:19:06, Vincent Diepeveen wrote:
>>>>>
>>>>>>On May 28, 2004 at 12:01:17, Gopikrishna wrote:
>>>>>>
>>>>>>>I would like to know if any simple engine uses bitboard representation.Because
>>>>>>>Crafty's bitboard is complicated and I would like to find some other engine
>>>>>>>using a simpler representation.And also what are the other ways of board
>>>>>>>representation? Thanks.
>>>>>>
>>>>>>If you give your email adress i can ship you diep's move generator with source
>>>>>>code and code to initialize tables.
>>>>>>
>>>>>>Best regards,
>>>>>>Vincent
>>>>>
>>>>>While you're handing it out, slaterwold@earthlink.net.  :)
>>>>
>>>>Here you go.
>>>>
>>>>http://chessprogramming.org/cccsearch/ccc.php?art_id=310440
>>>>
>>>>If you can figure out what is going on, please explain it to the rest of us.
>>>
>>>It's basic idea is the gnuchess move generator, but made much more efficient by
>>>not hopping all through the squares array, but keeping all consequetive moves in
>>>a row.
>>>
>>>It also makes the efficiency of the move generator independant of the board
>>>size.
>>>
>>>Tony
>>
>>The old GNU move generator I know is traversing the board via pointers, *NextDir
>>and *NextSq.
>
>Pointers, array indexes, all the same. Only difference is an extra register.

not at all, sequential looping through data at some processors goes faster than
random jumping through data.

>>But that was relatively slow because it's faster to add something
>>in a register than to do an extra memory access.
>
>Yes, you would have to hop to nextsquare to see how it would go from there. Now
>you only have to look what square we are talking about, and if !nil, you will
>always know that the nextsquare will be given at *sq++
>
>So you basicly made "nextsq" and "location of nextsq" independant of each other,
>thereby making it independant of board representation and making it more
>efficient since you will be traveling through the array in a row, rather than
>randomly accesed.
>
>Tony
>
>>
>>
>>Bas.



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.