Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: definition of clones: Danchess an Crafty

Author: Dann Corbit

Date: 16:08:38 02/16/04

Go up one level in this thread


On February 15, 2004 at 18:00:37, Bo Persson wrote:

>On February 15, 2004 at 14:43:06, Bob Durrett wrote:
>
>>On February 15, 2004 at 14:29:52, Robert Hyatt wrote:
>>
>><snip>
>>
>>In view of the size and complexity of Crafty I wonder whether or not cloning
>>Crafty is really a good idea for the newbie chess programmer to get started.
>>
>>On the other hand, maybe there are parts of crafty which could be used in the
>>beginning so that the newbie programmer could concentrate on creating his/her
>>own code for the really important parts.
>
>The problem is that the really important parts are those that are hard to write,
>and easiest to copy.
>
>The parts that are simple and non-important, you could just as easily write
>yourself in an evening or three.

The search is more important than the evaluation, in my opinion.

>>Dann Corbit seems to have suggested that starting with an existing search
>>algorithm, such as alpha/beta, might be a prudent way to get started.
>
>That part you can get from a text book, so you don't have to "borrow" it from
>some program source.

If you borrow it from a book, that is exactly the same thing.

> The alpha/beta code is also less than a page long, out of
>the 60k(?) lines of Crafty.

~42000, unless you add in the EGTB stuff of Eugene, in which case it will be
larger:

E:\crafty>copy *.c blob
analyze.c
annotate.c
attacks.c
bench.c
blob.c
book.c
boolean.c
crafty.c
data.c
dgt.c
dgtdrv.c
drawn.c
edit.c
enprise.c
epd.c
epdglue.c
evaluate.c
evtest.c
hash.c
history.c
init.c
input.c
interupt.c
iterate.c
learn.c
main.c
make.c
movgen.c
next.c
nexte.c
nextr.c
option.c
output.c
phase.c
ponder.c
preeval.c
probe.c
quiesce.c
repeat.c
resign.c
root.c
search.c
searchmp.c
searchr.c
setboard.c
singular.c
store.c
swap.c
test.c
testepd.c
thread.c
time.c
unmake.c
utility.c
valid.c
validate.c
x86.c
        1 file(s) copied.

E:\crafty>wc blob
42732 Lines, 181643 Words, 1774587 Characters
E:\crafty>

As you can see DanChess was much smaller:

E:\pgn\winboard-engines\danchess>copy *.cpp blob
board.cpp
board_evaluate.cpp
board_movegenerate.cpp
board_precalculate.cpp
board_recognizer.cpp
board_zobrist.cpp
DanChess.cpp
game.cpp
game_hashtable.cpp
game_opening.cpp
game_probe.cpp
game_search.cpp
game_utils.cpp
main.cpp
move.cpp
swap.cpp
valid.cpp
        1 file(s) copied.

E:\pgn\winboard-engines\danchess>wc blob
7791 Lines, 17959 Words, 246296 Characters
E:\pgn\winboard-engines\danchess>

>>It is not so clear about the position evaluation [and maybe move generator].  I
>>do not read about well known algorithms for position evaluation.
>
>Exactly, so here we have the hard-to-write parts. Using Crafty's evaluation
>function is definitely cloning.

Except that it did not use Crafty's evaluation function.  It did use many of the
terms from Crafty's evaluation function.

>>Some of the input-output and supporting software maybe should be used as-is
>>assuming the copyright owner consents.
>
>But you don't have to, as they are relatively easy to write. If you want to be a
>Winboard/Xboard engine, you can get an interface spec to work from.
>
>
>>
>>Am I on the right track?
>>
>>Bob D.
>
>
>Bo Persson



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.