Computer Chess Club Archives


Search

Terms

Messages

Subject: "Crafty 17.15 SEa" will be released this morning.

Author: Mike Byrne

Date: 04:44:22 07/31/02


With all new and revised predefined "krafty" levels whcih can be set using the
crafty.rc file.  "krafty" levels are designed to make Crafty play weaker - thus
more enjoyable for lower rated players.

There are now 14 predefined "krafty" levels:

pawngrabber
beginner
novice
simpleton
woodpusher
knight
bishop
player
club
expert
master
im
gm
standard

Here are the results of the two lowest rated "krafty" levels - "pawngrabber" and
"beginner" in a Chessmaster 8000 tournament using the various "Josh"
personalities.

CM8K Personality Ratings

CM8K Performance Results for Crafty Beginner and PawnGrabber modes:

8 Man RR Tournament

CM8K Personality Ratings			        Points

Josh Age 6 	1200				          5.0
Josh Age 7	1365			                  3.5
Josh Age 8 	1600				          8.0
Josh Age 9 	1800				          9.5
Josh Age 12	2100				         10.5
Muldoon 	2300				         14.0

Crafty (“krafty <level>”)
Beginner 	3 wins 3 Draws 8 Losses		        4.5
PawnGrabber	1 win 2 Draws  11 Losses		2.0

Mission Accomplished – Pawngrabber played at a level less than 1200 – which is
good.
            Beginner played somewhere between 1200 and 1300 – which is perfect.

All other levels will play increasing better as their vision (search depth) and
evaluation assessment increases goes up.


Source code for krafty <level> option - require changes in other areas as well

  /*
 ----------------------------------------------------------
|														    |
|   "krafty" command sets the playing level by piece values	|
!															!
|                                                           |
 ----------------------------------------------------------
*/

   else if (OptionMatch("krafty",*args))
   {
	   if (nargs < 2)
	   {

		   Print(4095,"      Usage: krafty <level>\n");
		   Print(4095,"      Valid levels are:\n\n");
		   Print(4095,"      pawngrabber   ->queen <500>, rook <400>, knights
<300>,\n");
		   Print(4095,"                    ->bishops <300>,pawns <250>\n");
           Print(4095,"      beginner      ->queen <550>, rook <400>, knights
<300>,\n");
		   Print(4095,"                    ->bishops <300>,pawns <225>\n");
           Print(4095,"      novice        ->queen <600>, rook <400>, knights
<275>,\n");
		   Print(4095,"                    ->bishops <275>,pawns <200>\n");
		   Print(4095,"      simpleton     ->queen <600>, rook <400>, knights
<275>,\n");
		   Print(4095,"                    ->bishops <275>,pawns <175>\n");
		   Print(4095,"      woodpusher    ->queen <600>, rook <400>, knights
<300>,\n");
		   Print(4095,"                    ->bishops <300>, pawns <150>\n");
		   Print(4095,"      knight        ->queen <650>, rook <400>, knights
<350>,\n");
		   Print(4095,"                    ->bishops <250>, pawns <150>\n");
		   Print(4095,"      bishop        ->queen <650>, rook <400>, bishops
<350>,\n");
		   Print(4095,"                    ->knight <250>, pawns <150>\n");
           Print(4095,"      player        ->queen <650>, rook <400>, bishop &
knights <300>,\n");
		   Print(4095,"                    ->pawns <150>\n");
		   Print(4095,"      club          ->queen <750>, rook <450>, bishop & knights
<300>,\n");
		   Print(4095,"                    ->pawns <125>\n");
		   printf("more...");
           fflush(stdout);
           (void) Read(1,buffer);
		   Print(4095,"      expert        ->queen <1200>, rook <500>, knights
<300>,\n");
		   Print(4095,"                    ->bishops <300>, pawns <125>\n");
		   Print(4095,"      master        ->queen <1100>, rook <500>, bishop &
knights <300>,\n");
		   Print(4095,"                    ->pawns <125>)\n");
           Print(4095,"      im            ->queen <1200>, rook <600>, bishop
<400>,\n");
		   Print(4095,"                    ->knights <400> pawns <110>)\n");
           Print(4095,"      gm            ->queen <950>, rook <500>, bishop
<310>,\n");
		   Print(4095,"                    ->knights <310> pawns <100>)\n");
		   Print(4095,"      standard      ->queen <900>, rook <500>, bishop & knights
<300>,\n");
		   Print(4095,"                    ->pawns <100>)\n\n\n");
    }
	else if (OptionMatch("pawngrabber",args[1]))
	{
		QUEEN_values=500;
		ROOK_values=400;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=250;
		learning=0;							/*learning off*/
		search_depth=2;					/*search depth = 2 ply*/
		book_selection_width=5;			/* wide book*/
		book_random=1;					/*book randomness  on*/
	}
	else if (OptionMatch("beginner",args[1]))
	{
		QUEEN_values=550;
		ROOK_values=400;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=225;
		learning=0;
		search_depth=3;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("novice",args[1]))
	{
		QUEEN_values=600;
		ROOK_values=400;
        BISHOP_values=275;
		KNIGHT_values=275;
		PAWN_values=200;
		learning=0;
		king_safety_asymmetry=50;          /*less king safety awareness - aggressive*/
		king_safety_tropism=150;            /*more agressive*/
		passed_scale=150;					/*passed pawn weighted 50% more*/
		search_depth=4;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("simpleton",args[1]))
	{
		QUEEN_values=600;
		ROOK_values=400;
        BISHOP_values=275;
		KNIGHT_values=275;
		PAWN_values=175;
		learning=0;
		king_safety_asymmetry=-50;			/*more king safety awareness - defensive*/
		king_safety_tropism=80;				/*less aggresive*/
		search_depth=4;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("woodpusher",args[1]))
	{
		QUEEN_values=600;
		ROOK_values=400;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=150;
		passed_scale=150;
		search_depth=5;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("knight",args[1]))
	{
		QUEEN_values=650;
		ROOK_values=400;
        BISHOP_values=250;
		KNIGHT_values=300;
		PAWN_values=150;
		king_safety_asymmetry=-50;
		king_safety_tropism=80;
		learning=0;
		search_depth=5;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("bishop",args[1]))
	{
		QUEEN_values=650;
		ROOK_values=400;
        BISHOP_values=350;
		KNIGHT_values=250;
		PAWN_values=150;
		learning=0;
		king_safety_asymmetry=50;
		king_safety_tropism=150;
		search_depth=5;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("player",args[1]))
	{
		QUEEN_values=650;
		ROOK_values=400;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=150;
		learning=0;
		search_depth=6;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("club",args[1]))
	{
		QUEEN_values=750;
		ROOK_values=450;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=125;
		learning=0;
		king_safety_asymmetry=50;
		king_safety_tropism=150;
		search_depth=7;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("expert",args[1]))
	{
	    QUEEN_values=1200;
		ROOK_values=500;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=125;
		learning=0;
		king_safety_asymmetry=50;
		king_safety_tropism=150;
		passed_scale=150;
		search_depth=8;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("master",args[1]))
	{
	    QUEEN_values=1100;
		ROOK_values=500;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=125;
		learning=0;
		king_safety_asymmetry=-50;
		king_safety_tropism=80;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("im",args[1]))
	{
	    QUEEN_values=1200;
		ROOK_values=600;
        BISHOP_values=400;
		KNIGHT_values=400;
		PAWN_values=110;
		learning=0;
		king_safety_asymmetry=-50;
		king_safety_tropism=120;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("gm",args[1]))
	{
		QUEEN_values=950;
		ROOK_values=500;
        BISHOP_values=310;
		KNIGHT_values=310;
		PAWN_values=100;
		book_selection_width=5;
		book_random=1;
	}
	else if (OptionMatch("standard",args[1]))
	{
	    QUEEN_values=900;
		ROOK_values=500;
        BISHOP_values=300;
		KNIGHT_values=300;
		PAWN_values=100;
		king_safety_asymmetry=0;
		king_safety_tropism=100;
		passed_scale=100;
		pawn_scale=100;
		booster_base=60;
		booster_level=300;				/*booster level=300 is off*/
		book_selection_width=3;             /*narrow book*/
		book_random=0;						/*no randomness*/
	}
	Print(4095,"\n\n\n");
	Print(4095,"  queen value..........................%d\n",QUEEN_values);
    Print(4095,"  rook value...........................%d\n",ROOK_values);
    Print(4095,"  bishop value.........................%d\n",BISHOP_values);
    Print(4095,"  knight value.........................%d\n",KNIGHT_values);
    Print(4095,"  pawn value...........................%d\n",PAWN_values);
	Print(4095,"\n\n\n\n");
   }




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.