Computer Chess Club Archives


Search

Terms

Messages

Subject: next release of Crafty 19.12 SE ..

Author: Mike Byrne

Date: 20:22:58 05/04/04


...will get this problem much quicker.  Along with output enhancements while
running under Arena/Winboard

Thanks to Bernhard Bauer for pointing this problem out.

Black(1): [d]R7/3p3p/8/3P2P1/3k4/1p5p/1P1NKP1P/7q w
White(1): go
end-game phase
              clearing hash tables
              time surplus  29.88  time limit 1666:39 (1666:39)
              depth   time  score   variation (1)
starting thread 1
                2     0.00   0.68   1. Nxb3+ Kc4 2. Nd2+ Kxd5
                2     0.00   0.76   1. Ra5 Qxh2 2. Nxb3+
                2->   0.01   0.76   1. Ra5 Qxh2 2. Nxb3+
                3     0.01   0.78   1. Ra5 Ke5 2. Nxb3 Qxh2
                3->   0.01   0.78   1. Ra5 Ke5 2. Nxb3 Qxh2
                4     0.01   0.72   1. Ra5 d6 2. Nxb3+ Ke5 3. Kd3 Qxh2
                4->   0.03   0.72   1. Ra5 d6 2. Nxb3+ Ke5 3. Kd3 Qxh2
                                    (s=4)
                5     0.03   0.53   1. Ra5 Ke5 2. Rc5 d6 3. Nc4+ Kd4 (s=3)
                5->   0.05   0.53   1. Ra5 Ke5 2. Rc5 d6 3. Nc4+ Kd4 (s=2)
                6     0.06   0.49   1. Ra5 Ke5 2. Rc5 d6 3. Nf3+ Ke4 4.
                                    Nd2+ Kf4
                6     0.11   0.74   1. Ra7 d6 2. Rxh7 Qg2 3. Nxb3+ Kxd5
                                    4. g6 Qxg6 5. Rxh3
                6->   0.11   0.74   1. Ra7 d6 2. Rxh7 Qg2 3. Nxb3+ Kxd5
                                    4. g6 Qxg6 5. Rxh3 (s=4)
                7     0.14   0.50   1. Ra7 Kxd5 2. Rxd7+ Ke6 3. Rxh7 Qxh2
                                    4. Rh6+ Kf5 5. g6 (s=3)
                7->   0.22   0.50   1. Ra7 Kxd5 2. Rxd7+ Ke6 3. Rxh7 Qxh2
                                    4. Rh6+ Kf5 5. g6 (s=3)
                8     0.30   0.70   1. Ra7 Kxd5 2. Rxd7+ Ke6 3. Rxh7 Qxh2
                                    4. Nf3 Qg2 5. Nd4+ Kd5 6. Nxb3 (s=2)
                8->   0.42   0.70   1. Ra7 Kxd5 2. Rxd7+ Ke6 3. Rxh7 Qxh2
                                    4. Nf3 Qg2 5. Nd4+ Kd5 6. Nxb3 (s=2)
                9     0.56   0.67   1. Ra7 Kxd5 2. Rxd7+ Kc6 3. Rxh7 Qxh2
                                    4. Nf3 Qg2 5. Nd4+ Kc5 6. Nxb3+ Kc4
                9->   0.87   0.67   1. Ra7 Kxd5 2. Rxd7+ Kc6 3. Rxh7 Qxh2
                                    4. Nf3 Qg2 5. Nd4+ Kc5 6. Nxb3+ Kc4
                                    (s=3)
               10     1.00     -1   1. Ra7
               10     1.36   0.11   1. Ra7 Kxd5 2. Rxd7+ Kc6 3. Rxh7 Qxh2
                                    4. Rh6+ Kd5 5. Nxb3 Qe5+ 6. Kf1 h2
                                    7. g6 Ke4 (s=2)
               10     3.15   0.16   1. Nf3+ Kxd5 2. Rb8 Qa1 3. Rxb3 Qa6+
                                    4. Kd2 Qf1 5. Ke3 Qc1+ 6. Ke2 Qc2+
                                    7. Nd2 Qf5
               10     3.51   0.44   1. Ra1 Qg2 2. Nf3+ Ke4 3. Ra4+ Kxd5
                                    4. Rb4 d6 5. Rxb3 Qg4 6. Rd3+ Kc5 7.
                                    Re3
               10     5.87   0.92   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Nf3+ Kc4 5. Rg4+ Kc5 6. Rg5 d6 7. Rxd5+
                                    Kxd5
               10->   5.87   0.92   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Nf3+ Kc4 5. Rg4+ Kc5 6. Rg5 d6 7. Rxd5+
                                    Kxd5 (s=2)
               11     7.36   0.92   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Nf3+ Kc4 5. Rg4+ Kc5 6. Rg5 d6 7. Rxd5+
                                    Kxd5
               11->   8.15   0.92   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Nf3+ Kc4 5. Rg4+ Kc5 6. Rg5 d6 7. Rxd5+
                                    Kxd5
               12     9.36     +1   1. g6!!
               12    13.30   1.93   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Rg4+ Kc5 5. Rg5 Qxg5 6. Ne4+ Kc4 7.
                                    Nxg5 d5 8. Nxh3
               12->  13.92   1.93   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Rg4+ Kc5 5. Rg5 Qxg5 6. Ne4+ Kc4 7.
                                    Nxg5 d5 8. Nxh3
               13    18.64   1.93   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Rg4+ Kc5 5. Rg5 Qxg5 6. Ne4+ Kc4 7.
                                    Nxg5 d5 8. Nxh3
               13->  20.09   1.93   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Rg4+ Kc5 5. Rg5 Qxg5 6. Ne4+ Kc4 7.
                                    Nxg5 d5 8. Nxh3
               14    26.09   2.10   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Nf3+ Kc4 5. Rg4+ Kc5 6. Rg5 Qxg5 7.
                                    Nxg5 Kc4 8. Nxh3 <HT>
               14->  29.12   2.10   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Qxd5 4.
                                    Nf3+ Kc4 5. Rg4+ Kc5 6. Rg5 Qxg5 7.
                                    Nxg5 Kc4 8. Nxh3 <HT>
               15    41.70   1.71   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Kxd5 4.
                                    Rxg2 hxg2 5. Nf3 Kc4 6. Ng1 d5 7. h4
                                    d4 8. f4 d3+ 9. Kd2
               15->  57.06   1.71   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Kxd5 4.
                                    Rxg2 hxg2 5. Nf3 Kc4 6. Ng1 d5 7. h4
                                    d4 8. f4 d3+ 9. Kd2 (s=2)
               16     2:50   1.71   1. g6 hxg6 2. Ra1 Qg2 3. Rg1 Kxd5 4.
                                    Rxg2 hxg2 5. Nf3 Kc4 6. Ng1 d5 7. h4
                                    d4 8. Kd2 d3 9. f4
?              16     3:00   2/24*  1. Ra1
White(1): ?
              time=3:04  cpu=191%  mat=0  n=235182110  fh=87%  nps=1.28M
              ext-> chk=20315681 cap=225067 pp=1382740 1rep=890824 mate=31826
              predicted=1  nodes=235182110  evals=117781781  50move=0
              endgame tablebase-> probes=8  hits=8
              SMP->  split=2014  stop=240  data=6/128  cpu=5:52  elap=3:04

The code essentially adds a 300 point penalty to the side that has no
pieces(major and minor) if there is a outside pawn score.  Since the side with
the piece has a huge advantage in that situation - whether as offender or the
defender.

*snippet of code*
=============================================================
after change
=============================================================


if (tree->pawn_score.outside) {
    int pscore = 0;

    if (tree->pawn_score.outside & 16)
      pscore += 3 * outside_passed[(int) TotalBlackPieces];
    else if (tree->pawn_score.outside & 32)
      pscore -= 3 * outside_passed[(int) TotalWhitePieces];
    if (tree->pawn_score.outside & 2)
      pscore += 2 * outside_passed[(int) TotalBlackPieces];
    else if (tree->pawn_score.outside & 1)
      pscore += outside_passed[(int) TotalBlackPieces];
    if (tree->pawn_score.outside & 8)
      pscore -= 2 * outside_passed[(int) TotalWhitePieces];
    else if (tree->pawn_score.outside & 4)
      pscore -= outside_passed[(int) TotalWhitePieces];
    if (TotalWhitePieces && TotalBlackPieces) score += pscore * passed_scale /
100;   //changed
	else if (TotalWhitePieces && !TotalBlackPieces) score += (pscore * passed_scale
/ 100)+300; //added
	else if (!TotalWhitePieces && TotalBlackPieces) score += (pscore * passed_scale
/ 100)-300;  //added
    else score += 2*pscore * passed_scale / 100; //added
  }



=============================================================
before change
=============================================================
if (tree->pawn_score.outside) {
    int pscore = 0;

    if (tree->pawn_score.outside & 16)
      pscore += 3 * outside_passed[(int) TotalBlackPieces];
    else if (tree->pawn_score.outside & 32)
      pscore -= 3 * outside_passed[(int) TotalWhitePieces];
    if (tree->pawn_score.outside & 2)
      pscore += 2 * outside_passed[(int) TotalBlackPieces];
    else if (tree->pawn_score.outside & 1)
      pscore += outside_passed[(int) TotalBlackPieces];
    if (tree->pawn_score.outside & 8)
      pscore -= 2 * outside_passed[(int) TotalWhitePieces];
    else if (tree->pawn_score.outside & 4)
      pscore -= outside_passed[(int) TotalWhitePieces];
    if (TotalWhitePieces && TotalBlackPieces) score += pscore * passed_scale /
100;
	else if (TotalWhitePieces && !TotalBlackPieces) score += (pscore * passed_scale
/ 100)+300;
	else if (!TotalWhitePieces && TotalBlackPieces) score += (pscore * passed_scale
/ 100)-300;
    else score += 2*pscore * passed_scale / 100;
  }
==================================================================

Best,

Michael



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.