Author: Anthony Cozzie
Date: 16:01:15 03/21/03
Go up one level in this thread
Debugging Suggestion (from the desk of Vincent Diepeveen, actually):
Make a header file for sharper with code that looks like so:
#ifdef _DEBUG_LOGGING_ENABLED_
#define print_ab_entry printf("ndid: %d new subcall of alpha-beta, windows =
etc");
#endif
#else
#define print_ab_entry
#endif
This way my source still looks good without thousands of #ifdefs in the code,
and I can turn on debugging and log everything zappa does: every hash probe,
every recursive call, etc.  You can use grep to look at the file, e.g.:
grep 000000001 zappa_debug_log
000000001: calling PVS, childid = 000000001, move= Nd4, A=800, B=900, D=3,
check=1
000000001: PVS returns, score=835
000000001: calling PVS, childid = 000000003, move= Ne3, A=835, B=900, D=2,
check=0
000000001: PVS returns, score=625
Then, suppose there is an error with the evaluation of Ne3, I type grep
000000003 zappa_debug_log and I can rapidly zero in on the problem.
One of the problems with alpha-beta is that it will 'hide' errors from you.
Your program almost certainly has bugs in the hashing (it took me *8 months* to
iron out everything in zappa and I still don't completely trust the hash table),
and probably other bugs.
anthony
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.