Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: about in_check()

Author: Anthony Cozzie

Date: 09:53:14 06/14/03

Go up one level in this thread


On June 14, 2003 at 12:21:38, Magoo wrote:

>On June 14, 2003 at 11:46:34, Anthony Cozzie wrote:
>
>>On June 14, 2003 at 10:30:58, Magoo wrote:
>>
>>>I did some tests last night, replacing my in_check() function with attack
>>>tables, my thought was that it would be faster, but the result was not that
>>>good, ok i did a fast hack, scanning the whole board because i dont have piece
>>>lists, but my previous x-ray in_check function was huge. But now im wondering if
>>>attack tables (implemented with piece lists) are that much better than x-ray.
>>>
>>>You have to check all pieces, = 8 pieces (king checks).
>>>You have to check if pawns are promoted...  = x pieces.
>>>Check two squares in front of the king.
>>>
>>>And of course, sometimes you have to do some tracing.. (sliding pieces).
>>>In the opening, middlegame there are usually pieces near the king, so the x-ray
>>>based in_check only has to trace a few directions.
>>>This got me thinking that the difference between the two isn't so big, am i
>>>correct? maybe attacks are a few % faster?
>>
>>Could you explain what you are doing? I was under the impression (and it seems
>>to work in Zappa) that in_check() is simply:
>>
>>Get_All_Bishop_Moves(KingSquare), see if there are enemy Bishops/Queens at the
>>tips.
>>....
>>etc.
>>
>>I tried writing an is_check(Position, Move) once, but it turned out to be too
>>annoying.
>
>Hum, get_all_bishop_moves, i don't understand what you mean "at the tips", if
>you generate the moves you would have a BxK move. The way i do it is to trace
>from the king square to all directions and see what the ray hits.
>With attack tables i store the values so that i can compare attacker square -
>king square, i use 0x88 by the way, with this i know if a piece at square x can
>attack square y. If it can i have to trace a ray, the good about this is that
>often you don't have to trace, you dont have to trace at all for Knight, Kings,
>Pawns, the question is how much better attack tables are than brute-force
>tracing.


OK, now I understand.  What I mean by "at the tips" is the bitboard way of doing
things.  Tracing is equivalent to generating al legal moves for a Bishop
(assuming it was on the square where the king is) and seeing what pieces it
could *capture* (tips = farthest away from king).

I don't think I've ever tried what you are talking about.

anthony



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.