Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: To Fabien Letouzey - about Toga

Author: Dann Corbit

Date: 10:07:11 03/17/05

Go up one level in this thread


On March 17, 2005 at 04:31:58, Gabor Szots wrote:

>On March 17, 2005 at 04:26:45, Fabien Letouzey wrote:
>
>>On March 17, 2005 at 03:22:06, Gabor Szots wrote:
>>
>>>Do you agree that after giving you due credit Toga's "author" can claim that
>>>"his" engine is his own intellectual product and can be called a new engine?
>>
>>I will not try to answer moral questions, and can't answer tricky legal ones
>>either (others will).  Please feel free to ask technical questions instead (like
>>how much code is shared between the engines).
>>
>>I leave it to every tester whether he should include Toga in his own tournament.
>> I don't see why I would have a say in the matter, Toga is legal.
>>
>>Fabien.
>
>Thanks, Fabien. Now, how much code is shared between the engines? :-)

Here are all the differences.  They are very, very minor.

E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static /* const */ int
KingSafetyWeight = 256; // 100%
---
eval.cpp:> static /* const */ int KingSafetyWeight = 256; //   256 alter wert
100%
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static const int ShelterOpening
= 192; // 75%
---
eval.cpp:> static const int ShelterOpening = 192; // 75% 192
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static const int
PassedOpeningMin = 10;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static const int
PassedOpeningMax = 70;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static const int
PassedEndgameMin = 20;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static const int
PassedEndgameMax = 140;
---
eval.cpp:>
eval.cpp:> static const int KingSafetyPenalty = 0; // Thomas
eval.cpp:> static const int PassedOpeningMin = 10;
eval.cpp:> static const int PassedOpeningMax = 70; // war 70
eval.cpp:> static const int PassedEndgameMin = 20;
eval.cpp:> static const int PassedEndgameMax = 140; // war 140
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static int  shelter_square
(const board_t * board, int square, int colour);
---
eval.cpp:> static int  shelter_square     (const board_t * board, const
material_info_t * mat_info, int square, int colour);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<    PieceActivityWeight =
(option_get_int("Piece Activity")  * 256 + 50) / 100;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<    KingSafetyWeight    =
(option_get_int("King Safety")     * 256 + 50) / 100;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<    PassedPawnWeight    =
(option_get_int("Passed Pawns")    * 256 + 50) / 100;
---
eval.cpp:> /*   PieceActivityWeight = (option_get_int("Piece Activity")  * 256 +
50) / 100;
eval.cpp:>    KingSafetyWeight    = (option_get_int("King Safety")     * 256 +
50) / 100;
eval.cpp:>    PassedPawnWeight    = (option_get_int("Passed Pawns")    * 256 +
50) / 100; */
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< int eval(const board_t * board)
{
---
eval.cpp:> int eval(const board_t * board, int alpha, int beta) {
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<    // eval
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
---
eval.cpp:>    /* lazy Cutoff von Thomas */
eval.cpp:>    if (mat_info->wt+mat_info->bt >= 15){
eval.cpp:> 	  int lazy_eval;
eval.cpp:> 	  int const lazy_eval_cutoff = 200;
eval.cpp:>
eval.cpp:>       phase = mat_info->phase;
eval.cpp:> 	  lazy_eval = ((opening * (256 - mat_info->phase)) + (endgame *
mat_info->phase)) / 256;
eval.cpp:>
eval.cpp:>      ASSERT(eval>=-ValueEvalInf&&eval<=+ValueEvalInf);
eval.cpp:>
eval.cpp:> 	 if (COLOUR_IS_BLACK(board->turn)) lazy_eval = -lazy_eval;
eval.cpp:> 	 if (lazy_eval - lazy_eval_cutoff >= beta)
eval.cpp:> 		return (lazy_eval);
eval.cpp:> 	 if (lazy_eval + lazy_eval_cutoff <= alpha)
eval.cpp:> 		return (lazy_eval);
eval.cpp:> 	 // ende lazy cuttoff
eval.cpp:> 	}
eval.cpp:>
eval.cpp:>
eval.cpp:>    // eval
eval.cpp:>
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
eval_passer(board,pawn_info,&opening,&endgame);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
eval_pattern(board,&opening,&endgame);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
---
eval.cpp:>    eval_passer(board,pawn_info,&opening,&endgame);
eval.cpp:>    eval_pattern(board,&opening,&endgame);
eval.cpp:>
---
eval.cpp:>
---
eval.cpp:>
---
eval.cpp:>    bool king_is_safe; // Thomas
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       me = White;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       // king
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       penalty_1 =
shelter_square(board,KING_POS(board,me),me);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       // castling
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       penalty_2 = penalty_1;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       if ((board->flags &
FlagsWhiteKingCastle) != 0) {
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          tmp =
shelter_square(board,G1,me);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          if (tmp < penalty_2)
penalty_2 = tmp;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       }
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       if ((board->flags &
FlagsWhiteQueenCastle) != 0) {
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          tmp =
shelter_square(board,B1,me);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          if (tmp < penalty_2)
penalty_2 = tmp;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       }
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
ASSERT(penalty_2>=0&&penalty_2<=penalty_1);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       // penalty
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       penalty = (penalty_1 +
penalty_2) / 2;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       ASSERT(penalty>=0);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       op[me] -= (penalty *
ShelterOpening) / 256;
---
eval.cpp:>       /* Thomas Patternerkennung ob König in Sicherheit ist. */
eval.cpp:>
eval.cpp:> 	  king_is_safe = false;
eval.cpp:>
eval.cpp:> 	  if (board->square[G1] == WK || board->square[H1] == WK){ // kleine
rochade
eval.cpp:> 		  if (board->square[G2] == WP && (board->square[H2] == WP ||
board->square[H3] == WP)){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 		  else if (board->square[F2] == WP && board->square[G3] == WP &&
board->square[H2] == WP){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 	  }
eval.cpp:>
eval.cpp:> 	  else if (board->square[B1] == WK || board->square[A1] == WK){ //
grosse rochade
eval.cpp:> 		  if (board->square[B2] == WP && (board->square[A2] == WP ||
board->square[A3] == WP)){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 		  else if (board->square[C2] == WP && board->square[B3] == WP &&
board->square[A2] == WP){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 	  }
eval.cpp:>
eval.cpp:>
eval.cpp:> 	  if (king_is_safe == false){
eval.cpp:>
eval.cpp:> 		  me = White;
eval.cpp:>
eval.cpp:> 		  // king
eval.cpp:>
eval.cpp:> 		  penalty_1 = shelter_square(board,mat_info,KING_POS(board,me),me);
eval.cpp:>
eval.cpp:> 		  // castling
eval.cpp:>
eval.cpp:>           penalty_2 = penalty_1;
eval.cpp:>
eval.cpp:>           if ((board->flags & FlagsWhiteKingCastle) != 0) {
eval.cpp:>              tmp = shelter_square(board,mat_info,G1,me);
eval.cpp:>              if (tmp < penalty_2) penalty_2 = tmp;
eval.cpp:> 		  }
eval.cpp:>
eval.cpp:>           if ((board->flags & FlagsWhiteQueenCastle) != 0) {
eval.cpp:>              tmp = shelter_square(board,mat_info,B1,me);
eval.cpp:>              if (tmp < penalty_2) penalty_2 = tmp;
eval.cpp:> 		  }
eval.cpp:>
eval.cpp:>           ASSERT(penalty_2>=0&&penalty_2<=penalty_1);
eval.cpp:>
eval.cpp:>           // penalty
eval.cpp:>
eval.cpp:>           penalty = (penalty_1 + penalty_2) / 2;
eval.cpp:>           ASSERT(penalty>=0);
eval.cpp:>
eval.cpp:>           op[me] -= (penalty * ShelterOpening) / 256;
eval.cpp:> 	  }
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       me = Black;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       // king
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       penalty_1 =
shelter_square(board,KING_POS(board,me),me);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       // castling
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       penalty_2 = penalty_1;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       if ((board->flags &
FlagsBlackKingCastle) != 0) {
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          tmp =
shelter_square(board,G8,me);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          if (tmp < penalty_2)
penalty_2 = tmp;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       }
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       if ((board->flags &
FlagsBlackQueenCastle) != 0) {
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          tmp =
shelter_square(board,B8,me);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<          if (tmp < penalty_2)
penalty_2 = tmp;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       }
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
ASSERT(penalty_2>=0&&penalty_2<=penalty_1);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       // penalty
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       penalty = (penalty_1 +
penalty_2) / 2;
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       ASSERT(penalty>=0);
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<       op[me] -= (penalty *
ShelterOpening) / 256;
---
eval.cpp:> 	  king_is_safe = false;
eval.cpp:>
eval.cpp:> 	  if (board->square[G8] == BK || board->square[H8] == BK){ // König
hat rochiert
eval.cpp:> 		  if (board->square[G7] == BP && (board->square[H7] == BP ||
board->square[H6] == BP)){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 		  else if (board->square[F7] == BP && board->square[G6] == BP &&
board->square[H7] == BP){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 	  }
eval.cpp:>
eval.cpp:> 	  else if (board->square[B8] == BK || board->square[A8] == BK){ //
grosse rochade
eval.cpp:> 		  if (board->square[B7] == BP && (board->square[A7] == BP ||
board->square[A6] == BP)){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 		  else if (board->square[C7] == BP && board->square[B6] == BP &&
board->square[A7] == BP){
eval.cpp:> 			  king_is_safe = true;
eval.cpp:> 		  }
eval.cpp:> 	  }
eval.cpp:>
eval.cpp:> 	  if (king_is_safe == false){
eval.cpp:>
eval.cpp:> 	      me = Black;
eval.cpp:>
eval.cpp:>           // king
eval.cpp:>
eval.cpp:>           penalty_1 =
shelter_square(board,mat_info,KING_POS(board,me),me);
eval.cpp:>
eval.cpp:>           // castling
eval.cpp:>
eval.cpp:>           penalty_2 = penalty_1;
eval.cpp:>
eval.cpp:>           if ((board->flags & FlagsBlackKingCastle) != 0) {
eval.cpp:>              tmp = shelter_square(board,mat_info,G8,me);
eval.cpp:>              if (tmp < penalty_2) penalty_2 = tmp;
eval.cpp:> 		  }
eval.cpp:>
eval.cpp:>           if ((board->flags & FlagsBlackQueenCastle) != 0) {
eval.cpp:>              tmp = shelter_square(board,mat_info,B8,me);
eval.cpp:>              if (tmp < penalty_2) penalty_2 = tmp;
eval.cpp:> 		  }
eval.cpp:>
eval.cpp:>           ASSERT(penalty_2>=0&&penalty_2<=penalty_1);
eval.cpp:>
eval.cpp:>           // penalty
eval.cpp:>
eval.cpp:>           penalty = (penalty_1 + penalty_2) / 2;
eval.cpp:>           ASSERT(penalty>=0);
eval.cpp:>
eval.cpp:>           op[me] -= (penalty * ShelterOpening) / 256;
eval.cpp:> 	  }
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:< static int shelter_square(const
board_t * board, int square, int colour) {
---
eval.cpp:> static int shelter_square(const board_t * board, const
material_info_t * mat_info, int square, int colour) {
E:\pgn\winboard-engines\fruit_20\src\eval.cpp:<    penalty +=
shelter_file(board,file,rank,colour) * 2;
---
eval.cpp:>    penalty += shelter_file(board,file,rank,colour) * 2;   /* Bauer
vor dem König und in welchem Abstand? */
---
eval.cpp:>    /* Thomas
eval.cpp:>    Wenn viele Leichtfiguren auf dem Brett sind dann wir der fehlende
Bauernschutz bestraft */
eval.cpp:>
eval.cpp:>    if (mat_info->pv[COLOUR_OPP(colour)] > 1600)
eval.cpp:> 	   penalty = (penalty * (mat_info->pv[COLOUR_OPP(colour)]/16)) /
100;
eval.cpp:>
E:\pgn\winboard-engines\fruit_20\src\eval.h:< extern int  eval      (const
board_t * board);
---
eval.h:> extern int  eval      (const board_t * board, int alpha, int beta);
E:\pgn\winboard-engines\fruit_20\src\hash.h:< #define KEY_INDEX(key)
(uint32(key))
---
hash.h:> #define KEY_INDEX(key) uint32(key)
E:\pgn\winboard-engines\fruit_20\src\main.cpp:<    printf("Fruit 2.0 UCI by
Fabien Letouzey\n");
---
main.cpp:>    printf("Toga II 0.93 UCI based on Fruit\n");
---
material.cpp:> static const int OpeningExchangePenalty = 40; /* Thomas penalty
für den tausch von Leichtfiguren gegen Bauern */
material.cpp:> static const int EndgameExchangePenalty = 40;
material.cpp:>
material.cpp:>
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    MaterialWeight =
(option_get_int("Material") * 256 + 50) / 100;
---
material.cpp:> /*   MaterialWeight = (option_get_int("Material") * 256 + 50) /
100; */
---
material.cpp:>    int owf,obf,ewf,ebf;
---
material.cpp:>    info->wt = wt;   /* Thomas */
material.cpp:>    info->bt = bt;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    opening += wp *
PawnOpening;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    opening += wn *
KnightOpening;
---
material.cpp:>    /* Thomas */
material.cpp:>    owf = wn*KnightOpening + wb*BishopOpening + wr*RookOpening +
wq*QueenOpening;
material.cpp:>    info->pv[White] = owf;
material.cpp:>    opening += owf;
material.cpp:>    opening += wp * PawnOpening;
material.cpp:> /*   opening += wn * KnightOpening;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    opening += wq *
QueenOpening;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    opening -= bp *
PawnOpening;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    opening -= bn *
KnightOpening;
---
material.cpp:>    opening += wq * QueenOpening; */
material.cpp:>
material.cpp:>    obf = bn*KnightOpening + bb*BishopOpening + br*RookOpening +
bq*QueenOpening;
material.cpp:>    info->pv[Black] = obf;
material.cpp:>    opening -= obf;
material.cpp:>    opening -= bp * PawnOpening;
material.cpp:>
material.cpp:>     /* penalty für den Tausch von Leichtfiguren gegen Bauern */
material.cpp:>    if ((wt-wp) > (bt-bp) && owf > obf)
material.cpp:> 	   opening += OpeningExchangePenalty;
material.cpp:>    else if ((bt-bp) > (wt-wp) && obf > owf)
material.cpp:> 	   opening -= OpeningExchangePenalty;
material.cpp:>
material.cpp:> /*   opening -= bn * KnightOpening;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    opening -= bq *
QueenOpening;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    endgame += wp *
PawnEndgame;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    endgame += wn *
KnightEndgame;
---
material.cpp:>    opening -= bq * QueenOpening; */
material.cpp:>
material.cpp:>    ewf = wn*KnightEndgame + wb*BishopEndgame + wr*RookEndgame +
wq*QueenEndgame;
material.cpp:>    endgame += wp * PawnEndgame;
material.cpp:>    endgame += ewf;
material.cpp:> /*   endgame += wn * KnightEndgame;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    endgame += wq *
QueenEndgame;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    endgame -= bp *
PawnEndgame;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    endgame -= bn *
KnightEndgame;
---
material.cpp:>    endgame += wq * QueenEndgame; */
material.cpp:>
material.cpp:>    ebf = bn*KnightEndgame + bb*BishopEndgame + br*RookEndgame +
bq*QueenEndgame;
material.cpp:>    endgame -= bp * PawnEndgame;
material.cpp:>    endgame -= ebf;
material.cpp:>    /* penalty für den Tausch von Leichtfiguren gegen Bauern */
material.cpp:>    if ((wt-wp) > (bt-bp) && ewf > ebf)
material.cpp:> 	   endgame += EndgameExchangePenalty;
material.cpp:>    else if ((bt-bp) > (wt-wp) && ebf > ewf)
material.cpp:> 	   endgame -= EndgameExchangePenalty;
material.cpp:> /*   endgame -= bn * KnightEndgame;
E:\pgn\winboard-engines\fruit_20\src\material.cpp:<    endgame -= bq *
QueenEndgame;
---
material.cpp:>    endgame -= bq * QueenEndgame; */
---
material.h:>    int wt;    /* Thomas */
material.h:>    int bt;
material.h:>    int pv[ColourNb]; /* Materialsumme der Figuren ohne Bauern und
könig */
unable to open %s
move_check.cp
unable to open %s
move_evasion.
unable to open %s
move_evasion.
unable to open %s
move_legal.cp
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Hash", true, "16",
"spin", "min 1 max 1024", NULL },
---
option.cpp:>    { "Hash", true, "100", "spin", "min 1 max 1024", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "NullMove Pruning",
true, "Fail High", "combo", "var Always var Fail High var Never", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "NullMove Reduction",
true, "3",         "spin",  "min 1 max 3", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Verification Search",
true, "Endgame",   "combo", "var Always var Endgame var Never", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Verification Reduction",
true, "5",         "spin",  "min 1 max 6", NULL },
---
option.cpp:> /*   { "NullMove Pruning",       false, "Fail High", "combo", "var
Always var Fail High var Never", NULL },
option.cpp:>    { "NullMove Reduction",     false, "3",         "spin",  "min 1
max 3", NULL },
option.cpp:>    { "Verification Search",    false, "Endgame",   "combo", "var
Always var Endgame var Never", NULL },
option.cpp:>    { "Verification Reduction", false, "5",         "spin",  "min 1
max 6", NULL }, */
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "History Pruning",
true, "true", "check", "", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "History Move Number",
true, "3",    "spin",  "min 1 max 10",  NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "History Threshold",
true, "60",   "spin",  "min 0 max 100", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Futility Pruning", true,
"false", "check", "", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Futility Margin",  true,
"50",    "spin",  "min 0 max 500", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Delta Pruning", true,
"false", "check", "", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Delta Margin",  true,
"50",    "spin",  "min 0 max 500", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Quiescence Check Plies",
true, "1", "spin", "min 0 max 2", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Material",        true,
"100", "spin", "min 0 max 400", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Piece Activity",  true,
"100", "spin", "min 0 max 400", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "King Safety",     true,
"100", "spin", "min 0 max 400", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Pawn Structure",  true,
"100", "spin", "min 0 max 400", NULL },
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    { "Passed Pawns",    true,
"100", "spin", "min 0 max 400", NULL },
---
option.cpp:> /*   { "History Pruning",     false, "true", "check", "", NULL },
option.cpp:>    { "History Move Number", false, "3",    "spin",  "min 1 max 10",
 NULL },
option.cpp:>    { "History Threshold",   false, "60",   "spin",  "min 0 max
100", NULL },
option.cpp:>
option.cpp:>    { "Futility Pruning", false, "false", "check", "", NULL },
option.cpp:>    { "Futility Margin",  false, "50",    "spin",  "min 0 max 500",
NULL },
option.cpp:>
option.cpp:>    { "Delta Pruning", false, "false", "check", "", NULL },
option.cpp:>    { "Delta Margin",  false, "50",    "spin",  "min 0 max 500",
NULL },
option.cpp:>
option.cpp:>    { "Quiescence Check Plies", false, "1", "spin", "min 0 max 2",
NULL },
option.cpp:>
option.cpp:>    { "Material",        false, "100", "spin", "min 0 max 400", NULL
},
option.cpp:>    { "Piece Activity",  false, "100", "spin", "min 0 max 400", NULL
},
option.cpp:>    { "King Safety",     false, "100", "spin", "min 0 max 400", NULL
},
option.cpp:>    { "Pawn Structure",  false, "100", "spin", "min 0 max 400", NULL
},
option.cpp:>    { "Passed Pawns",    false, "100", "spin", "min 0 max 400", NULL
},  */
E:\pgn\winboard-engines\fruit_20\src\option.cpp:<    if (opt == NULL)
my_fatal("option_get(): unknown option \"%s\"\n",var);
---
option.cpp:>    if (opt == NULL) my_fatal("option_get(): error in option
\"%s\"\n",var);
E:\pgn\winboard-engines\fruit_20\src\pawn.cpp:< static const int
PassedOpeningMin = 10;
E:\pgn\winboard-engines\fruit_20\src\pawn.cpp:< static const int
PassedOpeningMax = 70; // was 50
E:\pgn\winboard-engines\fruit_20\src\pawn.cpp:< static const int
PassedEndgameMin = 20;
E:\pgn\winboard-engines\fruit_20\src\pawn.cpp:< static const int
PassedEndgameMax = 140; // was 100
---
pawn.cpp:> /*static const int PassedOpeningMin = 10;
pawn.cpp:> static const int PassedOpeningMax = 50; // was 50
pawn.cpp:> static const int PassedEndgameMin = 20;
pawn.cpp:> static const int PassedEndgameMax = 100; // was 100 */
E:\pgn\winboard-engines\fruit_20\src\pawn.cpp:<    PawnStructureWeight =
(option_get_int("Pawn Structure") * 256 + 50) / 100;
---
pawn.cpp:> /*   PawnStructureWeight = (option_get_int("Pawn Structure") * 256 +
50) / 100; */
---
pawn.cpp:> 		 /* Thomas Vorrückbonus der Bauern */
pawn.cpp:> 		 opening[me] += (rank-Rank2) * 2; // +2 für jede Reihe
pawn.cpp:>          endgame[me] += (rank-Rank2) * 2; // +2 für jede Reihe
pawn.cpp:>
E:\pgn\winboard-engines\fruit_20\src\posix.cpp:<          printf("info string
GetStdHandle() failed, error=%lu\n",(unsigned long)error);
---
posix.cpp:>          printf("info string GetStdHandle() failed,
error=%d\n",error);
E:\pgn\winboard-engines\fruit_20\src\posix.cpp:<          printf("info string
GetConsoleMode() failed, error=%lu\n", (unsigned long)error);
---
posix.cpp:>          printf("info string GetConsoleMode() failed,
error=%d\n",error);
E:\pgn\winboard-engines\fruit_20\src\posix.cpp:<             printf("info string
PeekNamedPipe() failed, error=%lu\n", (unsigned long)error);
---
posix.cpp:>             printf("info string PeekNamedPipe() failed,
error=%d\n",error);
E:\pgn\winboard-engines\fruit_20\src\posix.cpp:<       if (UseDebug && val < 0)
printf("info string PeekNamedPipe(): val=%lu\n",(unsigned long)val);
---
posix.cpp:>       if (UseDebug && val < 0) printf("info string PeekNamedPipe():
val=%d\n",val);
E:\pgn\winboard-engines\fruit_20\src\protocol.cpp:< #define VERSION "2.0"
---
protocol.cpp:> #define VERSION "0.93"
E:\pgn\winboard-engines\fruit_20\src\protocol.cpp:<       send("id name Fruit "
VERSION);
E:\pgn\winboard-engines\fruit_20\src\protocol.cpp:<       send("id author Fabien
Letouzey");
---
protocol.cpp:>       send("id name Toga II based on Fruit " VERSION);
protocol.cpp:>       send("id author Thomas");
E:\pgn\winboard-engines\fruit_20\src\pst.cpp:<    PieceActivityWeight =
(option_get_int("Piece Activity") * 256 + 50) / 100;
E:\pgn\winboard-engines\fruit_20\src\pst.cpp:<    KingSafetyWeight    =
(option_get_int("King Safety")    * 256 + 50) / 100;
E:\pgn\winboard-engines\fruit_20\src\pst.cpp:<    PawnStructureWeight =
(option_get_int("Pawn Structure") * 256 + 50) / 100;
---
pst.cpp:> /* PieceActivityWeight = (option_get_int("Piece Activity") * 256 + 50)
/ 100;
pst.cpp:>    KingSafetyWeight    = (option_get_int("King Safety")    * 256 + 50)
/ 100;
pst.cpp:>    PawnStructureWeight = (option_get_int("Pawn Structure") * 256 + 50)
/ 100; */
unable to open %s
search_full.c
E:\pgn\winboard-engines\fruit_20\src\trans.cpp:< static const int DateSize = 16;
---
trans.cpp:> static const int DateSize = 16;  // Thomas war 16



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.