Author: Dann Corbit
Date: 18:03:42 04/02/04
Go up one level in this thread
On April 02, 2004 at 21:02:39, Dann Corbit wrote: >On April 02, 2004 at 19:00:47, Dann Corbit wrote: > >>On April 02, 2004 at 18:47:34, Eric Oldre wrote: >> >>>Hi everyone, >>>I've been working on my new chess engine for a few weeks now and am pretty happy >>>with the progress i've made so far. I'm even going to try entering it into >>>Olivier Deville's ChessWar tournament next week. I've set the lofty goal for >>>myself of not taking last place. I give myself a 50/50 shot of reaching it. >>> >>>I've been playing it against some engines here at home and noticed a trend in >>>it's play. It seems to do OK in the middle game, but about the time it get down >>>to having some pawns and 2 minors/rooks it's game starts to fall apart. >>> >>>At this point t is usually about even or sometimes up in material (not against >>>any "elite" engines of course, and i don't see any major weaknesses in it's >>>position, but the opponent either chips away at it's pawns, or gets a promotion. >>>or just mates it. The point is that i don't see any one specific thing that it >>>isn't catching. >>> >>>One thing is that i don't have any special endgame evaluation changes. I plan on >>>making it so that it starts to value the king in the center instead of behind >>>it's pawns. but i don't think that alone will make the difference. >>> >>>So my question is: what suggestions do you have for ways could i improve it's >>>play during the endgame, or would i call it the "middle-endgame" at that point? >> >>If the board is sparse, centralize your king. He'll help a lot. He attacks 8 >>squares, just like a knight, after all. >> >>Give a bonus for the forward pawn squares. >>Give a bonus for passed pawns. >>Give a bigger bonus for unstoppable passed pawns. > >Here is how Beowulf figures out the game stage: > >/* Sorts out what stage of the game the board is in. */ >int GetGamestage(int tpts) >{ > if (tpts > 70) > return Opening; > if (tpts > 62) > return EarlyMid; > if (tpts > 54) > return Middle; > if (tpts > 46) > return LateMid; > if (tpts > 22) > return Endgame; > return LateEnd; >} > >piece value is q=9, r=5, b=n=3, p=1 >tpts is the total points on the board. > >Here are TSCP's king square tables: [snip] Oops. Not sure why so much got pasted. >int king_pcsq[64] = { > -40, -40, -40, -40, -40, -40, -40, -40, > -40, -40, -40, -40, -40, -40, -40, -40, > -40, -40, -40, -40, -40, -40, -40, -40, > -40, -40, -40, -40, -40, -40, -40, -40, > -40, -40, -40, -40, -40, -40, -40, -40, > -40, -40, -40, -40, -40, -40, -40, -40, > -20, -20, -20, -20, -20, -20, -20, -20, > 0, 20, 40, -20, 0, -20, 40, 20 >}; > >int king_endgame_pcsq[64] = { > 0, 10, 20, 30, 30, 20, 10, 0, > 10, 20, 30, 40, 40, 30, 20, 10, > 20, 30, 40, 50, 50, 40, 30, 20, > 30, 40, 50, 60, 60, 50, 40, 30, > 30, 40, 50, 60, 60, 50, 40, 30, > 20, 30, 40, 50, 50, 40, 30, 20, > 10, 20, 30, 40, 40, 30, 20, 10, > 0, 10, 20, 30, 30, 20, 10, 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.