Computer Chess Club Archives


Search

Terms

Messages

Subject: Problem with eval code for bad trades in crafty

Author: Kai Skibbe

Date: 03:58:55 06/01/00


Today an experimental fritz engine of Gromit3 reaches the following
position against Junior6.

[D]1r6/5B2/n2n4/PN4kp/4P3/8/1K6/R7 w - - 0 48

Here Gromit plays the move Bxh5 with an evaluation of +0.48. Junior says
-5,09 in favour of black. After Rxb5+ Kc3 Kxh5 white is totally lost.
I remember that I have implemented the evaluation code for bad trades
similar to crafty and so it isn´t surprising that Crafty also want to play
Bxh5 with a slightly negative evaluation (-0,28). The code in Crafty is :

if (WhiteMinors != BlackMinors) {
  if (WhiteMajors == BlackMajors) {
    if (WhiteMinors > BlackMinors) {
      if (WhiteMajors==1 && !TotalWhitePawns && TotalBlackPawns) {
        score=0;
        break;

The last if-condition should be :

if( WhiteMajors==1 && !TotalWhitePawns && TotalBlackPawns &&
    1==(WhiteMinors-BlackMinors) )

So the materialscore isn´t set to 0, if one side is more than one minor up.

Now Gromit didn´t play Bxh5 and after Bxh5 Gromit says -4,45 in favour for
black.

Bob, am I missing something or is this a bug in the crafty code ?


Best regards
Kai



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.