pawn definitions in Gull

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

outAtime
Posts: 226
Joined: Sun Mar 08, 2009 3:08 pm
Location: Canada

pawn definitions in Gull

Post by outAtime »

Could someone please explain what are these pawn types in Gull?

1. PawnUp
2. PawnUR
3. PawnWeak

I have tried again and again to read the code but I just cant understand what these pawns are. How would they be defined? I know there are also doubled pawns and isolated pawns, those are simple enough, and I have seen some other programs with weak pawns, but Im not sure what is a weak pawn to Gull. Ive never seen 1. or 2. anywhere else. Thanks.
outAtime
Edsel Apostol
Posts: 803
Joined: Mon Jul 17, 2006 5:53 am
Full name: Edsel Apostol

Re: pawn definitions in Gull

Post by Edsel Apostol »

outAtime wrote:Could someone please explain what are these pawn types in Gull?

1. PawnUp
2. PawnUR
3. PawnWeak

I have tried again and again to read the code but I just cant understand what these pawns are. How would they be defined? I know there are also doubled pawns and isolated pawns, those are simple enough, and I have seen some other programs with weak pawns, but Im not sure what is a weak pawn to Gull. Ive never seen 1. or 2. anywhere else. Thanks.
It's some kind of a backwards pawn computation.

Here's the explanation for black pawns if I've read it correctly:

Code: Select all


		if (not supported by own pawn (chain)) {
			score += PawnUP[rank];
			if (not supportable by pawn push of own pawn) score += PawnUR[rank];
			else {
			    for (pawn pushes that is capable of supporting)
					if (not blocked by other pawns in its way to support) goto weak_b;
				score += PawnUR[rank];
			}
			weak_b:
			if (there's any pawn in the front square || (the front square is attacked by enemy pawn and not attacked by allied pawn) {
				score += PawnWeak[rank];
				if (there is no other pawn in front upto promotion square (in an open file)) score += PawnWeakOp[rank];
			}
		}
Dann Corbit
Posts: 12541
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: pawn definitions in Gull

Post by Dann Corbit »

outAtime wrote:Could someone please explain what are these pawn types in Gull?

1. PawnUp
2. PawnUR
3. PawnWeak

I have tried again and again to read the code but I just cant understand what these pawns are. How would they be defined? I know there are also doubled pawns and isolated pawns, those are simple enough, and I have seen some other programs with weak pawns, but Im not sure what is a weak pawn to Gull. Ive never seen 1. or 2. anywhere else. Thanks.
PawnUp just resolves to a number and the name is used because of the archane score evaluation numbers.

Code: Select all

            score += PawnUP;
becomes:

Code: Select all

            score += (&#40;5&#41; + (&#40;5&#41; << 16&#41;); //327685

PawnWeak resolves to the following table of 8 numbers:

Code: Select all

const int       PawnWeak&#91;8&#93; =
&#123;
    0, (&#40;15&#41; + (&#40;10&#41; << 16&#41;), (&#40;10&#41; + (&#40;5&#41; << 16&#41;), (&#40;7&#41; + (&#40;4&#41; << 16&#41;), (&#40;10&#41; + (&#40;5&#41; << 16&#41;), (&#40;12&#41; + (&#40;6&#41; << 16&#41;), 0, 0
&#125;;
I did not see PawnUR