Author: KingArt
Date: 16:55:11 11/15/99
Go up one level in this thread
Hi,
Using "illegal moves", I use the following algorithm, which is pretty fast:
move_list=generate_moves()
moves_legal=0
while not empty(move_list)
new_position=next_position(current_position,head(move_list))
move_list=tail(move_list)
-> if king_in_check(new_position)
then continue
else moves_legal++
<search new position and come up with some value>
end while
if moves_legal=0 then
if king_in_check(current_position)
then value=mate
else value=stalemate
Crafty uses this, too.
Greetings,
KingArt
On November 15, 1999 at 18:19:46, leonid wrote:
>Hi,
>
>What kind of moves usually are used in each ply search: legal or illigal?
>
>Legal (in my dictionary) is the move after which king from your side will be not
>left under the fire. Move is legal after the logic for given piece.
>
>Illegal move - move that only take in cosideration the possibility to execute
>move after the logic that correspond to this piece. Here you just don't care
>about the "health insurance" of His Majesty.
>
>I make this question because each next ply can also indicate what illegal move
>must be rejected. If in the next ply king will be taken, this move is illegal.
>
>When I tryed to use the illegal moves logic for soving the inevitable mate
>containing position, logic worked 30% more slowly that logic with legal
>position. I never tryed the logic with illegal moves that search the "positional
>move". This is why I make this question.
>
>Leonid.
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.