pawn definitions in Gull

Discussion of chess software programming and technical issues.

Moderator: Ras

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: 12818
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 += ((5) + ((5) << 16)); //327685

PawnWeak resolves to the following table of 8 numbers:

Code: Select all

const int       PawnWeak[8] =
{
    0, ((15) + ((10) << 16)), ((10) + ((5) << 16)), ((7) + ((4) << 16)), ((10) + ((5) << 16)), ((12) + ((6) << 16)), 0, 0
};
I did not see PawnUR