I still have trouble thinking of an example of how that might happen, yet still look reasonable...michiguel wrote:You have, for instance, a PST with values that are symmetric horizontally and vertically, but not diagonally. In absence of pawns that is not desirable. That will be detected by steve's test. I kind of like the idea.bob wrote:It would be difficult for me to think how I might pass the first 4 tests, and then have a bug with respect to diagonal flipping.sje wrote:Also, for positions with no pawns it might be useful to reflect the board about the lines y = x and y = -x to see if the evaluation changes.
Miguel
testing eval
Moderator: Ras
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: testing eval
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
Re: testing eval
Here is my problem:
I get so much info in the debug window its practically useless, and if I add code to also output the board position then it just crashes. I don't really need to know the value of this mobility every time the code passes, just once, for the position on the board.... maybe i've put the printf in the wrong place? Thanks.
Code: Select all
case (bbishop):
score -= 325;
score -= end_bishop[i];
score -= end_black_bishop_fmobility(i) * bmef;
score -= end_black_bishop_bmobility(i) * bmeb;
printf ("bishop fmobility: %d\n", end_black_bishop_fmobility(i));
/* bishop pair bonus: */
bb++;
if (bb == 2) {
score -= 50;
}
break;
outAtime
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: testing eval
My "evtest" code is not doing a search. So I get one score info dump per different position. And in my code, I don't dump anything if the 4 scores match (flip, flop and flip/flop scores)outAtime wrote:Here is my problem:
I get so much info in the debug window its practically useless, and if I add code to also output the board position then it just crashes. I don't really need to know the value of this mobility every time the code passes, just once, for the position on the board.... maybe i've put the printf in the wrong place? Thanks.Code: Select all
case (bbishop): score -= 325; score -= end_bishop[i]; score -= end_black_bishop_fmobility(i) * bmef; score -= end_black_bishop_bmobility(i) * bmeb; printf ("bishop fmobility: %d\n", end_black_bishop_fmobility(i)); /* bishop pair bonus: */ bb++; if (bb == 2) { score -= 50; } break;