Author: Albert Bertilsson
Date: 02:17:47 07/04/03
Hi setting professionals! A while ago there was a thread about very few amatures have the possibility to change the settings of the program, I certainly think that there can be a lot to gain for amatures with this possibility. I seriously doubt that there are many people taking interest in doing this for many of the weak engines out there (like Sharper). I might be wrong so I give anyone the chance to have a say about Sharpers evaluation settings, currently it's not possible to set them using a config file, but if anyone would like to try a setting I'll compile a couple of exe files to give him something to play with. Even if you don't want to develop your own Sharper setting, you might notice something wicked in the current setting just by looking at it, and if you do just let me know (or tweak your program to exploit it when playing Sharper =)) /Regards Albert EvaluationConstants.h -------------------------- #pragma once /* Pieces are these: 0 = Empty 1 = Black pawn 2 = White pawn 3 = Knight 4 = Bishop 5 = Rook 6 = Queen 7 = King */ const Int16 PieceValue[Types] = {0, 100, 100, 300, 325, 500, 900, 10000}; const Int16 DoubleBishopBonus = 30; //King safety /* The king safety is calculated in king safety units, the real value is looked up in the KingSafety-table. If the king safety should be negative, the same table is used, but the value is substracted instead of added. King safety is not used during the end game. */ const Int32 PawnShieldFactor = 2; //ks += PawnsInShield * PawnShieldFactor; const Int32 NoPlayerPawnOnFilePenalty = 2; //if (NoPlayerPawnOnFile) ks -= NoPlayerPawnOnFilePenalty; const Int32 NoOpponentPawnOnFilePenalty = 2; //if (NoOpponentPawnOnFile) ks -= NoOpponentPawnOnFilePenalty; const Int32 EmptySquaresLimit = 3; const Int32 EmptySquaresFactor = 1; //ks += (EmptySquares - EmptySquaresLimit) * EmptySquaresFactor; //Meaning: For each empty square more than EmptySquaresLimit around the king award EmtpySquaresFactor as bonus. //I'm not really sure this is a good thing as a lonely king might be bad, on the other hand this avoids the king //getting crowded. const Int16 KingSafety[] = {3, 5, 9, 14, 20, 26, 32, 39, 46, 54, 62, 70, 79, 88, 98, 108, 120, 132, 146, 160, 176, 192}; /* PST values: This is a very important table to Sharper due to lack of evaluation of pawns etc. Note that squares are numbered like this: A1, B1, C1, D1, E1, F1, G1, H1, A2, ... A8, B8, C8, D8, E8, F8, G8, H8, Due to the use of 0x88 move generation there is a board next to the real board, just fill in zero there. */ const Int8 PSTPhases[PhaseCount][Types][Squares] = { //Opening phase { {//Empty opening 0, }, {//BPawn opening 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 35, 35, 35, 35, 35, 35, 30, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 25, 25, 25, 25, 25, 15, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 15, 15, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 12, 12, 12, 12, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0,-20,-20, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//WPawn opening 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0,-20,-20, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 12, 12, 12, 12, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 15, 15, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 25, 25, 25, 25, 25, 15, 0, 0, 0, 0, 0, 0, 0, 0, 30, 35, 35, 35, 35, 35, 35, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Knight opening 0, 6, 8, 8, 8, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 12, 12, 12, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 12, 12, 12, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 8, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Bishop opening 0, 8, -5, 8, 8, -5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -5, 8, 8, -5, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Rook opening 5, 10, 15, 20, 20, 15, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 15, 20, 20, 15, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Queen opening 0, 9, 9, 20, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 12, 12, 12, 12, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 12, 9, 9, 9, 9, 12, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 12, 9, 9, 9, 9, 12, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 12, 9, 9, 9, 9, 12, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 12, 9, 9, 9, 9, 12, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 12, 12, 12, 12, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 20, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//King opening 0, 7, 10,-10, -5,-10, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, -10,-10,-10,-10,-10,-10,-10,-10, 0, 0, 0, 0, 0, 0, 0, 0, -20,-20,-20,-20,-20,-20,-20,-20, 0, 0, 0, 0, 0, 0, 0, 0, -20,-20,-20,-20,-20,-20,-20,-20, 0, 0, 0, 0, 0, 0, 0, 0, -10,-10,-10,-10,-10,-10,-10,-10, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 10,-10, -5,-10, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, }, }, //Middle game { {//Empty middle 0, }, {//BPawn middle 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 35, 35, 35, 35, 35, 35, 30, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 25, 25, 25, 25, 25, 15, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 15, 15, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 12, 12, 12, 12, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0,-20,-20, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//WPawn middle 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0,-20,-20, 0, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 0, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 12, 12, 12, 12, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 15, 15, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 15, 25, 25, 25, 25, 25, 25, 15, 0, 0, 0, 0, 0, 0, 0, 0, 30, 35, 35, 35, 35, 35, 35, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Knight middle 0, 6, 8, 8, 8, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 12, 12, 12, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 12, 12, 12, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 8, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Bishop middle 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Rook middle 0, 10, 15, 20, 20, 15, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 10, 15, 15, 10, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 15, 10, 0, 10, 10, 0, 10, 15, 0, 0, 0, 0, 0, 0, 0, 0, 20, 15, 10, 0, 0, 10, 15, 20, 0, 0, 0, 0, 0, 0, 0, 0, 20, 15, 10, 0, 0, 10, 15, 20, 0, 0, 0, 0, 0, 0, 0, 0, 15, 10, 0, 10, 10, 0, 10, 15, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 10, 15, 15, 10, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 15, 20, 20, 15, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Queen middle 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 13, 13, 13, 13, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 13, 13, 13, 13, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//King middle 0, 7, 10, -5, -5, -5, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, -10,-10,-10,-10,-10,-10,-10,-10, 0, 0, 0, 0, 0, 0, 0, 0, -10,-10,-10,-10,-10,-10,-10,-10, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 10, -5, -5, -5, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, }, }, //End phase { {//Empty end 0, }, {//BPawn end 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 45, 45, 45, 45, 45, 45, 30, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, 15, 0, 0, 0, 0, 0, 0, 0, 0, 10, 15, 15, 15, 15, 15, 15, 10, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//WPawn end 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -5, -5, -5, -5, -5, -5, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 10, 15, 15, 15, 15, 15, 15, 10, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 30, 30, 30, 15, 0, 0, 0, 0, 0, 0, 0, 0, 30, 45, 45, 45, 45, 45, 45, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Knight end 0, 6, 8, 8, 8, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 12, 12, 12, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 16, 16, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 12, 12, 12, 12, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 8, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Bishop end 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 13, 13, 13, 13, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 13, 13, 13, 13, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Rook end 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//Queen end 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 13, 13, 13, 13, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 17, 20, 20, 17, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 15, 17, 17, 15, 13, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 13, 13, 13, 13, 10, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {//King end -16, -8, -4, 0, 0, -4, -8,-16, 0, 0, 0, 0, 0, 0, 0, 0, -8, -4, 4, 8, 8, 4, -4, -8, 0, 0, 0, 0, 0, 0, 0, 0, -4, 4, 12, 16, 16, 12, 4, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 24, 24, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 24, 24, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 4, 12, 16, 16, 12, 4, -4, 0, 0, 0, 0, 0, 0, 0, 0, -8, -4, 4, 8, 8, 4, -4, -8, 0, 0, 0, 0, 0, 0, 0, 0, -16, -8, -4, 0, 0, -4, -8,-16, 0, 0, 0, 0, 0, 0, 0, 0, }, } }; --------------------------
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.