Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Null - Move

Author: Tony Werten

Date: 01:33:43 07/04/02

Go up one level in this thread


On July 04, 2002 at 04:19:13, Christophe Drieu wrote:

>On July 03, 2002 at 17:39:25, Art Basham wrote:
>
>>Here is a good link to help anyone new here...
>>
>>http://www.seanet.com/~brucemo/topics/nullmove.htm
>>
>>I am still working on it...:-)
>
>Great, but what MakeNullMove() function do ?

Switch side to move, clear en passant, increase current ply ( to make sure that
everything you stack is on the right place ie. all even plycounters of the
killertable contain white to move ) etc.

Basicly everything you do when you do make a move but now without a move. It
helps if you actually have a nullmove. In my program I use from_sq:=o, to_sq:=0,
from_piece:=0, to_piece:=0 defined as klote_zet ( shitty move ) wich I also use
to initiallize best_move at the start if each search.

Tony

>
>#define R   2
>
>int AlphaBeta(int depth, int alpha, int beta)
>{
>    if (depth == 0)
>        return Evaluate();
>    MakeNullMove();
>    val = -AlphaBeta(depth - 1 - R, -beta, -beta + 1);
>    UnmakeNullMove();
>    if (val >= beta)
>        return beta;
>    GenerateLegalMoves();
>    while (MovesLeft()) {
>        MakeNextMove();
>        val = -AlphaBeta(depth - 1, -beta, -alpha);
>        UnmakeMove();
>        if (val >= beta) // Delete these to get straight
>            return beta; // min-max instead of alpha-beta.
>        if (val > alpha)
>            alpha = val;
>    }
>    return alpha;
>}



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.