Author: Serge Desmarais
Date: 21:01:27 09/22/98
Go up one level in this thread
On September 20, 1998 at 10:18:22, Robert Hyatt wrote: >On September 20, 1998 at 02:06:21, Serge Desmarais wrote: > >>On September 19, 1998 at 13:19:07, Robert Hyatt wrote: >> >>>On September 19, 1998 at 11:14:40, Guillem Barnolas wrote: >>> >>>> >>>> I am currently developing a pascal chess program which I think will be >>>>quite weak, because to generate legal moves I'm generating all the moves and >>>>then discarding the ones that leave the king in check... Generating only legal >>>>ones seems quite tough.. I now crafty does, but considering it's in C and uses >>>>bitboards, it's quite difficult for me to understand it.. I tried tscp, but it >>>>uses the same technique that me (I should say i use the same that it uses..;) I >>>>have thought of some way of doing this, but seem a little weird... I'll try to >>>>explain in few words... I thought I could go from the king_position looking if >>>>there are friendly pieces blocking possible attacks...(I think I might have seen >>>>this in Crafty or some other program, as X_ray attacks...) and mark those >>>>friendly pieces...afterwards i go through all the board and for non-marked >>>>pieces I generate all the movements.. for pieces marked once I generate captures >>>>to the attacking piece and movements on that direction.. for the pieces marked >>>>more than once I generate no movements... I don't know If this would miss >>>>anything... I haven't implemented it because I'm still fighting with the program >>>>;-D... >>>> >>> >>>this is not really necessary. I generate legal moves only if I start off in >>>check, because it is more efficient (in my code) to generate only legal moves >>>than it is to generate a bunch of moves and cull them one at a time by noting >>>that the king is in check after making them... >>> >>>But for the normal case, I generate all moves, and let the search at the next >>>ply reject a move from this ply if it can capture the king, which means that >>>move was illegal. It doesn't happen often, *except* when you are in check. Then >>>almost all moves are illegal... >> >>[Snip] >> >>Ah! So that is the reason why sometimes I see illegal moves in the end of the PV >>of certain programs? I thought it was caused by the selective extensions! >> >> >>Serge Desmarais > > >I don't think so, but I'm not certain. I don't see how an "illegal" move could >end up on a PV, because it has to be confirmed by the search before it can ever >get backed up as a PV move. It might be possible for the last move in the PV >to be illegal in some programs (never in crafty, however, because after the >last move, I flip sides, and call quiesce() again which produces the PV for >this line, but also generates moves to see if there is another capture, and this >will capture the king and reject the previous move instantly. > >I think "illegal moves" in the PV come from programs that don't back up a PV, >but use the hash table to reconstruct the PV after the fact. This can certainly >produce illegal moves. In crafty, when I have a one-move PV (after a fail high, >for example) the first way I try to get a ponder move is to do a hash probe to >see if I get a hit. I then check this move for legality if I get a hit, and I >do, on occasion, get a hit but the move doesn't pass the legality check... I >output a note in the log files and do see this occasionally... so that doing >this to reconstruct the PV would also produce fishy moves at times. Thank you for the precision! I think I saw this in Fritz 4 (or in Genius, but most probably Fritz). I was analysing a game and while letting it analyze in infinite mode, I reproduced the PV on a wooden board. It was a long PV and it was ending with a pinned piece making an illegal move. I did not save nor do I remember the position, but I was intrigued by the fact and thought at the time that that was because it was in the end of a selective extension which was only considering a small number of moves to extend. Serge Desmarais
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.