Author: Uri Blass
Date: 16:27:01 09/12/03
Go up one level in this thread
On September 12, 2003 at 18:52:07, Jeremiah Penery wrote: >On September 12, 2003 at 13:53:53, Uri Blass wrote: > >>On September 12, 2003 at 13:33:36, Gian-Carlo Pascutto wrote: >> >>>I can see what Bob does (credits to him for that), and I can test >>>what he does, and I know it's worse than what I do. >> >>You need first to understand exactly what he does and it is not a simple task. >>I think that most programmers have no time for that task and they prefer to work >>about their program independently. >> >>They may look at Crafty but not try to copy everything there in order to compare >>with Crafty. > >I bet GCP knows better what Crafty is doing than almost anybody else does. He >did, after all, write complicated code for Singular Extensions in Crafty a while >back. > >But even I (and I do not have the skill or knowledge to write an entire chess >program by myself) can understand Crafty to a pretty large extent. I give Bob a >*ton* of credit for writing what, to me, is extremely readable code. I've tried >a few times to read the code of other chess programs and I get lost almost >immediately in the sea of indecipherable variable/function names and the like. >As far as chess programs go, Crafty is *EASY* to read and understand. I can say that there were some things that I understood but I did not try to understand most of the code. Comparing evaluation of Sjeng with evaluation of Crafty means understanding every detail of the evaluation and I did not try to do it. currently I am struggling in the task of implementing pawn hash for movei when I want to hash only information. It is not a simple task for me because I did in the past a lot of incremental evaluation for pawn structure and I had a lot of global BitBoard that I need to get rid of them. I also have no function to calculate full static pawn structure. I have a function to setup position but this function calculate information about number of pawns in every file not in one step after I put all the pieces in the board but incrementally every time that I put a pawn in the board. Another problem is that I have a function to evaluate the evaluation change from a move that is based on the change of the piece square table and the change in part of the pawn structure that is about double pawns (I use this function to decide if to make moves in the qsearch and if the value of the move is not big enough then I do not do it). The reason for this evaluation is that I thought in the past to have incremental evaluation to save time and I thought to calculate both the piece square table and the pawn structure incrementally. I decided after the problems with evaluating only piece square table and double pawns to stop it but incremental evaluation of piece square table+double pawns still survived. Now if I have the information about double pawns only in the hash then I need to change also the function that evaluate moves in order to read the information from the hash and not from the global varaible that I have for double pawns. I hope that I can finish the pawn hash job in the next week so I go back to more important things. Uri
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.