Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Move Generator

Author: Andreas Herrmann

Date: 02:31:38 12/20/02

Go up one level in this thread


On December 20, 2002 at 01:34:17, Uri Blass wrote:

>On December 20, 2002 at 01:31:08, Uri Blass wrote:
>
>>On December 19, 2002 at 19:53:46, Andreas Herrmann wrote:
>>
>>>On December 19, 2002 at 19:21:04, Uri Blass wrote:
>>>
>>>>On December 19, 2002 at 18:49:56, Dann Corbit wrote:
>>>>
>>>>>On December 19, 2002 at 18:47:22, Joshua Haglund wrote:
>>>>>
>>>>>>Anyone know of a good site(s) for the programming of a (legal) move generator?
>>>>>
>>>>>You'll find a lot more help looking for a pseudo-legal move generator.  I don't
>>>>>think anyone makes a strictly legal move generator (maybe Uri does...)
>>>>
>>>>I did it and chest also did it and I remember that other programmers also did
>>>>it(Miguel started with legal move generator and I remember that peter makanzi
>>>>also does it(or at least did it in the past)).
>>>>
>>>>pseudo legal move generator is the easy way but I do not think that it is better
>>>>and the fact that chest is the best mate solver suggest that legal move
>>>>generator may be better.
>>>>
>>>>Uri
>>>
>>>Hi Uri,
>>>
>>>but a pseudo legal move generator is faster. You have to check if the king is in
>>>check only if you must evaluate a position.
>>>What is the advantage of a slower legal move generator?
>>>
>>>Andreas
>>
>>The advantage is that I get more knowledge that can be used for better order of
>>moves or extension rules or pruning rules or evaluation.
>>
>>one example is that it is easy for me to check if the king is in check because I
>>update a varaible to know it after every move.
>>Another example is that it is easy for me to check if a piece is pinned to the
>>king because I have an array that tell me for every square if it is pinned.
>>
>>one of the changes that I added to movei to do it faster is adding an array
>>pinnumber[ply] and now I can check if there are pieces that are pinned very
>>fast.
>>
>>I still cannot detect fast the value of the pieces that are pinned and their
>>square so it may be better to change the array again and I think that it is
>>possible that I can use some arrays for information about pins to give all the
>>information when in 99% of the cases only one of them is going to be used.
>>
>>If people have good ideas how to store that information then it may be
>>productive(today I store information only about pinned pieces of the side to
>>move and it also may be faster to store information about pins of both side).
>>
>>Uri
>
>To be more correct today I have an array for the 64 squares but I know that the
>only squares tht I use and can trust are squares of the side to move.
>
>The information that I have in the array today is also the direction of the pin
>in numbers 0-3(-1 is for no pin,0 for pin in the same file,1 for pin in the same
>rank,2 and 3 for pins in diagnols)
>
>Uri

Hi Uri,

sounds interresting, but doesn't cost that too much time to update all these
things during move generation.

Andreas




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.