Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: boundschecking

Author: Uri Blass

Date: 10:07:07 11/03/02

Go up one level in this thread


On November 03, 2002 at 11:50:01, Vincent Diepeveen wrote:

>On November 03, 2002 at 11:26:42, Brian Kostick wrote:
>
>for windows there is numega boundschecker.
>
>for linux there is the excellent free boundschecker (C only)
>see for example: http://web.inter.nl.net/hcc/Haj.Ten.Brugge/
>
>however you can also go to the homepage from gcc and then go
>to 'extensions' and download any boundschecker you need for
>use with gcc. it's very good.

Thanks
I see that I can download a trial version of numega boundchecker so
I guess that I am going to try it tomorrow.

I use only windows.

Note that inspite of the unequal number of nodes in debug mode and in release
mode the bug does not seem to prevent it to play well in games.
The difference is small and I see it only after more than 100000 nodes so maybe
the problem is that the random numbers in debug mode are not the same as the
random numbers in release mode.

The latest tested version solved 292 out of 300 in the Wac test suite at 10
seconds per move on AMD1000 mega hertz and it is now tested on the GCP test
suite 300 seconds per position.

The problem with printf happened with another version after I tried to change
the structure of the program and have a seperate function for calculating some
array(The array squareattackking reply the question what piece do I need to put
at square x to get a check against the enemy king and the answer can be
knight,bishop or rook,this array also tells me about indirect checks if the side
to move has no piece in that square)

My last tested version calculates that array every time after generating moves
in the first 2 plies of the qsearch.

I do not want to calculate that array in every case that I generate moves in the
qsearch but only in cases that captures did not help to get a cutoff so I
decided first thing to define a function that calculate the array so I can call
it only when I need it but for some reason after implementing it I got strange
results and the results were clearly different in debug mode and in release
mode.

Adding printf in release mode also changed the results.

Note that I know that there may be better ideas than calculating the array
but the way that I program is to try to do something better and not to try to do
the best in the first step and I think that generating the array when I need it
is better than my previous method (calculating for every move not based on
arrays) and my attack tables are not good enough to tell me if a rook in an
empty square threats the king(I may change them in the future but I prefer first
to improve movei and there is a big room for improvement even without these kind
of attack tables).

Uri



This page took 0.04 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.