Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: La Petite 1.0 (download)

Author: Robert Hyatt

Date: 06:14:36 10/25/99

Go up one level in this thread


On October 25, 1999 at 00:23:56, James Robertson wrote:

>On October 24, 1999 at 23:18:32, Robert Hyatt wrote:
>
>>On October 24, 1999 at 16:02:34, Frank Schneider wrote:
>>
>>>On October 24, 1999 at 10:08:45, Robert Hyatt wrote:
>>>
>>>>On October 24, 1999 at 05:59:40, Frank Schneider wrote:
>>>>
>>>>>
>>>>>I haven't tried the 'strings lapetite.exe', but I believe you that there are
>>>>>lots of strings that were just translated. I agree that is strong evidence
>>>>>that lapetite's I/O is based on Crafty. But is there any evidence that the
>>>>>engine is still a crafty clone?
>>>>>
>>>>>Copying an engine is, from my point of view, much worse than reusing the
>>>>>I/O stuff and structure of the userinterface.
>>>>>
>>>>
>>>>Run the second test I mentioned:  start "La Petite" under a debugger, and
>>>>look for the area where all the 64 bit masks are in memory.  You will find
>>>>patterns like 80000000 00000000, 40000000 00000000, 20000000 00000000, etc.
>>>>then look for the rotated masks which are like the above, but in a different
>>>>order (64 bits, 1 bit set).  Then compare to crafty.exe.  Look at data.c to
>>>>find the pre-initialized scoring array patterns.  See if you can find 'em in
>>>>La Petite.  :)
>>>>
>>>>etc.
>>>I don't have La Petite.
>>>
>>>But I have very similar bit masks in Gromit (only 16 bit, because Gromit
>>>does not use bitboards) and I wonder how to write a bitboard-base program
>>>without such bit masks. Is there anything special about the order of masks
>>>in Crafty that is unlikely to be invented independently by others?
>>
>>there are 64 of the masks that are just 1 bit shifted right slowly but surely.
>>I can't imagine why you would have such masks (notice that they are each 64
>>bits long) if you aren't doing bitmaps.  I have another set that has one bit
>>set in each 64 bit value, but the bit isn't in the 'sliding' pattern, as it is
>>used to update the rotated-left-90-degree board.  Another set of 64 for each
>>of the two 45-degree-rotated boards.  Those are pretty unique to my style of
>>rotating...  There are many other masks as well, including the compact-attacks
>>array of values that _nobody_ would likely have without using the crafty engine
>>(this was the code done by Mark Bromley).
>>
>>
>>
>>>
>>>Do other bit board based programs use such masks? How do they look in
>>>Inmichess? Insomniac (if it uses bit boards)?
>>
>>any bitboard program probably has the 64 masks with the sliding 1, but the
>>other 3 sets are very unlikely, and the compact-attack stuff is probably
>>impossible to reproduce exactly without copying, as there are so many
>>different ways to do the same thing.
>>
>
>I think it is not _that_ unlikely. My rotated bitboard code was written with a
>lot of English (and a little code) advice from Tim Diamond (thanks Tim!). He
>basically explained in _great_ detail how rotated bitboards work, and I
>implemented them with original code. I didn't use the Crafty source at all for
>the early part of my program (I do peek at it sometimes now, and have gotten a
>lot of ideas from it. Thanks Bob! :).
>
>I have the masks with 1 bit shifted, and they should look identical to Crafty's,
>Arasan's, GLChess's, and Galahad's. I have two arrays that simply have set bits
>for any square a knight or king attacks from a certain square. I'll bet all the
>programs I mentioned have these exact arrays (it seems the easiest way to
>generate knight and king moves to me). If they use 0 for A1, the arrays should?
>look identical in memory. As for your rotated masks, they were an integral part
>of Tim's method (which I presume he learned from you....?), so I have them too.
>:) I was poking around in Arasan many months back and thought I saw similar
>masks in Jon's program. Don't know if mine would line up in memory with yours,
>but they serve the same or a similar purpose.
>


That's why I didn't mention the direct attack bitmaps.  They would be very
similar, with the main difference being where the MSB and LSB are on the
real chess board.  MSB=a1 and LSB=h8 for Crafty.  There are three other
choices.

But compact attacks stuff is much more complicated, with many more possible
'choices' to make in how to represent the data.  And then there are eval
tables.

not to mention module names, commands (notice that I didn't mention commands
in the winboard 'set' since everybody is implementing those...)



>Beyond this, I believe you are right. I would be _shocked_ if any programmer
>invented the same mobility, evaluation, etc. etc. etc. arrays invented by any
>other programmer.
>
>James
>
>
>>
>>
>>
>>>
>>>I agree that it is something different if LaPetite uses the same scoring arrays.
>>>Everyone uses them, but finding lots of identical scores would be surprising.
>>>
>>>
>>>I'd really like to see a statement here, where G. Mueller gives her point
>>>of view.
>>>
>>>
>>>Frank
>>
>>
>>So would I.  Because it is so blatant.  But G. Mueller didn't discuss voyager
>>a year ago when she burst upon the scene with a program stronger than almost
>>any new amateur, complete with parallel search...  I doubt we will hear anything
>>now...



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.