better comments on perft() and perft2()
This commit is contained in:
36
src/search.c
36
src/search.c
@@ -25,12 +25,21 @@
|
|||||||
* perft() - Perform perft on position
|
* perft() - Perform perft on position
|
||||||
* @pos: &position to search
|
* @pos: &position to search
|
||||||
* @depth: Wanted depth.
|
* @depth: Wanted depth.
|
||||||
* @ply: Depth level where perft is consolidated.
|
* @ply: perft depth level.
|
||||||
*
|
*
|
||||||
* Print perftCalculate the negamax value of @pos. This is an extensive search, with
|
* Run perft on a position. This function displays the available moves at @depth
|
||||||
* absolutely no cutoff.
|
* level for each possible first move, and the total of moves.
|
||||||
*
|
*
|
||||||
* @return: The @pos negamax evaluation.
|
* This version uses the algorithm:
|
||||||
|
* if last depth
|
||||||
|
* return 1;
|
||||||
|
* gen pseudo-legal moves
|
||||||
|
* loop for each legal move
|
||||||
|
* do-move
|
||||||
|
* perft (depth -1)
|
||||||
|
* undo-move
|
||||||
|
*
|
||||||
|
* @return: total moves found at @depth level.
|
||||||
*/
|
*/
|
||||||
u64 perft(pos_t *pos, int depth, int ply)
|
u64 perft(pos_t *pos, int depth, int ply)
|
||||||
{
|
{
|
||||||
@@ -64,6 +73,25 @@ u64 perft(pos_t *pos, int depth, int ply)
|
|||||||
return nodes;
|
return nodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* perft2() - Perform perft on position
|
||||||
|
* @pos: &position to search
|
||||||
|
* @depth: Wanted depth.
|
||||||
|
* @ply: perft depth level.
|
||||||
|
*
|
||||||
|
* Run perft on a position. This function displays the available moves at @depth
|
||||||
|
* level for each possible first move, and the total of moves.
|
||||||
|
*
|
||||||
|
* This version uses the algorithm:
|
||||||
|
* if (king in check)
|
||||||
|
* finish;
|
||||||
|
* if last depth
|
||||||
|
* return 1;
|
||||||
|
* gen pseudo-legal moves
|
||||||
|
* foreach pseudo-legal move...
|
||||||
|
*
|
||||||
|
* @return: total moves found at @depth level.
|
||||||
|
*/
|
||||||
u64 perft2(pos_t *pos, int depth, int ply)
|
u64 perft2(pos_t *pos, int depth, int ply)
|
||||||
{
|
{
|
||||||
int subnodes, nmove = 0;
|
int subnodes, nmove = 0;
|
||||||
|
Reference in New Issue
Block a user