#include <ow_aisearch_alphabeta.h>
Public Member Functions | |
ow_aisearch_alphabeta (ow_board *owboard) | |
int | search (ow_move prinvar[], ow_board *board, int boardside, int depth) |
~ow_aisearch_alphabeta () | |
Private Member Functions | |
int | _alphabeta (ow_move prinvar[], ow_board *board, int boardside, int depth, int alpha, int beta, int *nodecount) |
int | _alphabeta_rand (ow_move prinvar[], ow_board *board, int boardside, int depth, int alpha, int beta, int *nodecount) |
ow_aisearch_alphabeta::ow_aisearch_alphabeta | ( | ow_board * | owboard | ) |
Creates a new ow_aisearch_alphabeta object width default values.
owboard | Pointer to the board used during the game, where to look for moves. |
ow_aisearch_alphabeta::~ow_aisearch_alphabeta | ( | ) |
Deletes the ow_aisearch_alphabeta object
int ow_aisearch_alphabeta::_alphabeta | ( | ow_move | prinvar[], | |
ow_board * | board, | |||
int | boardside, | |||
int | depth, | |||
int | alpha, | |||
int | beta, | |||
int * | nodecount | |||
) | [private] |
AlphaBeta search algoritm
prinvar | Principal variation found during the IA search. | |
board | Pointer to the board. | |
boardside | Side of the board where to look for best move. | |
depth | Depth of the search algoritm | |
nodecount | Nodes (positions) analyzed during AI search. |
int ow_aisearch_alphabeta::_alphabeta_rand | ( | ow_move | prinvar[], | |
ow_board * | board, | |||
int | boardside, | |||
int | depth, | |||
int | alpha, | |||
int | beta, | |||
int * | nodecount | |||
) | [private] |
AlphaBeta search algoritm (random version) If two nodes have the same evaluation it chooses one randomly.
prinvar | Principal variation found during the IA search. | |
board | Pointer to the board. | |
boardside | Side of the board where to look for best move. | |
depth | Depth of the search algoritm | |
nodecount | Nodes (positions) analyzed during AI search. |
int ow_aisearch_alphabeta::search | ( | ow_move | prinvar[], | |
ow_board * | board, | |||
int | boardside, | |||
int | depth | |||
) | [virtual] |
Abstract method to the search algoritm (alphabeta)
prinvar | Principal variation found during the IA search. | |
board | Pointer to the board. | |
boardside | Side of the board where to look for best move. | |
depth | Depth of the search algoritm |
Reimplemented from ow_aisearch.