Author: Tony Werten
Date: 12:07:16 11/25/01
Go up one level in this thread
On November 25, 2001 at 11:30:51, Michel Langeveld wrote:
>Fixed some errors in the passer code...
>
> //grouping rule
> //isolated pawns
> //passers
> //double and triple pawns
> bool whiteGroup = false;
> bool blackGroup = false;
> int whiteGroups = 0;
> int blackGroups = 0;
> bool whiteIsolated = false;
> bool blackIsolated = false;
>
> for (int i=0; i<8; i++)
> {
> if (evalStructure.whitePawnsPlace[i] > 0)
> {
>
> //double pawns
> if (evalStructure.whitePawnsPlace[i] == 2)
> {
> score -= PAWNDOUBLE_PENALTY;
> }
> if (evalStructure.whitePawnsPlace[i] == 3)
> {
> score -= PAWNTRIPLE_PENALTY;
> }
>
> //passer?
> if (evalStructure.blackPawnsPlace[i] == 0)
> {
> if (
> (i != 0 &&
> evalStructure.blackPawnsPlace[i-1] == 0 &&
connected passed pawns don't pass this test
> evalStructure.whitePawnsPlace[i-1] > 0 &&
> evalStructure.blackPawnsPlace[i-2] == 0) ||
How are passed pawns and not having a pawn 2 files away related ? BTW i-2 can
become -1 here, hope your array runs from -1 to 8.
Tony
> (i != 7 &&
> evalStructure.blackPawnsPlace[i+1] == 0 &&
> evalStructure.whitePawnsPlace[i+1] > 0 &&
> evalStructure.whitePawnsPlace[i+2] == 0)
> )
> {
> score += PAWNPASSER_BONUS;
> }
> }
>
> //grouping rule and isolated pawns
> if (whiteGroup == false)
> {
> whiteGroup = true;
> whiteGroups++;
> score -= PAWNGROUPS_PENALTY; //pawngroup bonus
> whiteIsolated = true;
> score -= PAWNISOLATED_PENALTY; //this pawn is isolated if nomore
>follow
> }
> else
> {
> if (whiteIsolated)
> {
> whiteIsolated = false;
> score += PAWNISOLATED_PENALTY;
> }
> }
> }
> else
> {
> whiteGroup = false;
> whiteIsolated = false;
> }
>
> if (evalStructure.blackPawnsPlace[i] > 0)
> {
> //double pawns
> if (evalStructure.blackPawnsPlace[i] == 2)
> {
> score += PAWNDOUBLE_PENALTY;
> }
> if (evalStructure.blackPawnsPlace[i] == 3)
> {
> score += PAWNTRIPLE_PENALTY;
> }
>
> //passer?
> if (evalStructure.whitePawnsPlace[i] == 0)
> {
> if (
> (i != 0 &&
> evalStructure.whitePawnsPlace[i-1] == 0 &&
> evalStructure.blackPawnsPlace[i-1] > 0 &&
> evalStructure.blackPawnsPlace[i-2] == 0) ||
> (i != 7 &&
> evalStructure.whitePawnsPlace[i+1] == 0 &&
> evalStructure.blackPawnsPlace[i+1] > 0 &&
> evalStructure.blackPawnsPlace[i+2] == 0)
> )
> {
> score -= PAWNPASSER_BONUS;
> }
> }
>
> //grouping rule and isolated pawns
> if (blackGroup == false)
> {
> blackGroup = true;
> blackGroups++;
> score += PAWNGROUPS_PENALTY; //pawngroup bonus
> blackIsolated = true;
> score += PAWNISOLATED_PENALTY; //this pawn is isolated if nomore
>follow
> }
> else
> {
> if (blackIsolated)
> {
> blackIsolated = false;
> score -= PAWNISOLATED_PENALTY;
> }
> }
> }
> else
> {
> blackGroup = false;
> blackIsolated = false;
> }
> }
This page took 0.01 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.