Author: Gerd Isenberg
Date: 12:48:23 12/03/02
Go up one level in this thread
On December 03, 2002 at 13:44:21, Colin Frayn wrote:
>Here's an interedting position that arose in an ICC game between Beowulf and a
>human player. it's one of those positions where Beowulf knows it's behind, but
>can't possibly realise how bad his position is because he doesn't realise how
>his h7 rook is utterly trapped.
>
>[D]r4k2/2R2p1r/4pBp1/4P2p/pR3P1P/Pb2K1P1/8/8 b - -
>
>I'm not sure how to get round this without adding in some hideously slow code.
>I already have mobility code in for the rook but then it's difficult to
>distinguish between a rook that's in a nice defensive position that it could get
>out of and which will transform itself into an open file fairly quickly after a
>pawn exchange, and something like this where there is no sequence of moves to
>retrieve the rook from its corner.
>
>Cheers,
>Col
Hi Colin,
one possible idea in mind, based on floodfill attacks.
Some bitboard patterns:
1. a set of own immobile, blocked or backward pawns, say bp
2. all controls of enemy pawns or enemy light pieces say edl
3. all squares controlled by enemy and not by own pieces ed2
4. all squares controlled by enemy and only by this rook ed3
but no battery
5. fine rooktargets rok = ~(p|ed1|ed2|ed3);
6. generate all attacks from this rook anding with rok
s1 = getRookAttacks(rook) & rok;
(do a weighted bitcount to evaluate a kind of mobility)
if ( s1 == 0 ) the rook is already trapped
7. do a second parallel attack set generation with s1
s2 = getRookAttacks(s1) & rok;
8. if ((s2 & ~(s1|rook)) == 0) the flood stopped,
and the rook may have some problems (depending on the
bitcount of s1?)
Just some thöughts on the fly...
Regards,
Gerd
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.