Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: New version of TSCP (1.8)--opening book and hash keys

Author: Uri Blass

Date: 02:42:20 01/30/03

Go up one level in this thread


On January 30, 2003 at 04:57:31, Tom Kerrigan wrote:

>A new version of TSCP is now available on my home page:
>
>http://home.attbi.com/~tckerrigan/
>
>A big change is the addition of an opening book. Many people have asked for this
>feature but until recently I couldn't think of a way to do it that was
>appropriately simple. The new version's opening book code is only 122 lines,
>about half of which are comments. The book that's included with the program
>(book.txt) has 385 opening lines. This feature should make TSCP much more fun
>for humans to play against and it should also make TSCP stronger in the
>tournaments that people run (I've heard of people "busting" TSCP).
>
>I also added hash keys to the program. I've said in the past that I would never
>do this, but TSCP's old repetition detection code was pretty hard to understand
>and I think it was a kinda buggy, too. So I was able to remove that and the new
>brain-dead-simple hash code is < 100 lines. (It does slow the program down by
>~10%, BTW.) Another selling point for hash keys is that serious chess
>programmers will have to learn about hash keys at some point anyway so they
>might as well be in there. It also makes it a little easier for people to add
>hash tables to TSCP.
>
>Well, two pretty big changes to TSCP. I hope you like them. Let me know if you
>have any comments.
>
>-Tom

There is another problem with TSCP.

Tscp does not declare mate when it does a mate so winboard does not stop the
clock

I tried with black the opening 1.e4 f6 2.d4 g5 3.Qh5# and Tscp does not say
checkmate in the 3th move so the clock in winboard continues to run.

This problem is also a problem of first Movei because most of the winboard
sipport code was copied from Tscp but after  peter berger asked me to fix the
problem I did it and Movei claim the result when it delivers a mate(I decided to
claim it in a way that people will know who claimed so if there is a bug of
claiming the wrong result it will be easy to find the program that claimed the
wrong claim.

One of the problems in winboard is that in case of wrong claim about the result
you need to look at the debug file to see who is quilty so I decided to
change my print_result function to the code in the bottom of this post:

Some explanation about the last part of the code:
I have a varaible that is for adjudcation games based on scores in order to help
people to play games faster by not spending time on positions when the result is
clear.

Usually adjudicate=2 and by default adjudicate is always 2 but if people want
they may change that number to save time.

Adjudicate=0 means a win for white and adjudicate=1 means a win for black.


void print_result()
{
	/* is there a legal move? */
	generatepinarray();
	gen();
	if (first_move[ply+1]==first_move[ply])
	{
		if (kingincheck>0)
		{
			if (side == LIGHT)
				printf("0-1 {Movei->Black mates}\n");
			else
				printf("1-0 {Movei->White mates}\n");
		}
		else
			printf("1/2-1/2 {Movei->Stalemate}\n");
	}
	else
	{
		repeat[hply]=reps();
		if (repeat[hply]==10000)
			printf("1/2-1/2 {Movei->Draw by insufficient material}\n");
		else
		if ((repeat[hply]>0)&&(repeat[repeat[hply]-1]>0))
			printf("1/2-1/2 {Movei-> Draw by repetition}\n");
		else if (fifty==fiftyvalue)
		printf("1/2-1/2 {Movei-> Draw by fifty move rule}\n");
	}
	if (adjudicate==0)
		printf("1-0 {Movei adjudication}\n");
		else
		if (adjudicate==1)
			printf("0-1 {Movei adjudication}\n");
}





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.