Move & list of moves management. More...
#include "move.h"#include "bit.h"#include "board.h"#include "hash.h"#include "search.h"#include "settings.h"#include "stats.h"#include <limits.h>#include <assert.h>#include <ctype.h>#include <string.h>Classes | |
| struct | MBoard |
| struct | MoveArray |
Typedefs | |
| typedef struct MoveArray | MoveArray |
Functions | |
| int | symetry (int x, const int sym) |
| Get a symetric square coordinate. More... | |
| char * | move_to_string (const int x, const int player, char *s) |
| Print out a move. More... | |
| void | move_print (const int x, const int player, FILE *f) |
| Print out a move. More... | |
| bool | move_wipeout (const Move *move, const Board *board) |
| Check if a move wins 64-0. More... | |
| static void | move_evaluate (Move *move, Search *search, const HashData *hash_data, const int sort_alpha, const int sort_depth) |
| Evaluate a list of move. More... | |
| int | movelist_get_moves (MoveList *movelist, const Board *board) |
| Get moves from a position. More... | |
| void | movelist_print (const MoveList *movelist, const int player, FILE *f) |
| Print out a movelist. More... | |
| Move * | move_next_best (Move *previous_best) |
| Return the next best move from the list. More... | |
| Move * | move_next_most_expensive (Move *previous_best) |
| Return the next best move from the list. More... | |
| Move * | move_next (Move *move) |
| Return the next move from the list. More... | |
| Move * | movelist_best (MoveList *movelist) |
| Return the best move of the list. More... | |
| Move * | movelist_first (MoveList *movelist) |
| Return the first move of the list. More... | |
| void | movelist_evaluate (MoveList *movelist, Search *search, const HashData *hash_data, const int alpha, const int depth) |
| Evaluate a list of move in order to sort it. More... | |
| Move * | movelist_sort_bestmove (MoveList *movelist, const int move) |
| Sort a move as best. More... | |
| void | movelist_sort_cost (MoveList *movelist, const HashData *hash_data) |
| Sort all moves except the first, based on move cost & hash_table storage. More... | |
| void | movelist_sort (MoveList *movelist) |
| Sort all moves. More... | |
| Move * | movelist_exclude (MoveList *movelist, const int move) |
| Exclude a move. More... | |
| bool | movelist_is_empty (const MoveList *movelist) |
| Check if the list is empty. More... | |
| void | line_init (Line *line, const int player) |
| Initialize a sequence of moves. More... | |
| void | line_push (Line *line, const int x) |
| Add a move to the sequence. More... | |
| void | line_pop (Line *line) |
| Remove the last move from a sequence. More... | |
| void | line_copy (Line *dest, const Line *src, const int from) |
| Copy part of a sequence to another sequence. More... | |
| void | line_print (const Line *line, int width, const char *separator, FILE *f) |
| Print a move sequence. More... | |
| char * | line_to_string (const Line *line, int n, const char *separator, char *string) |
| Line to string. More... | |
| static void | movearray_init (MoveArray *array) |
| array initialisation. More... | |
| static void | movearray_delete (MoveArray *array) |
| array supression. More... | |
| static bool | movearray_append (MoveArray *array, const Board *b, const int x) |
| Append a position. More... | |
| void | movehash_init (MoveHash *hash, int bitsize) |
| Initialisation of the hash table. More... | |
| void | movehash_delete (MoveHash *hash) |
| Free the hash table. More... | |
| bool | movehash_append (MoveHash *hash, const Board *b, const int x) |
| Append a position to the hash table. More... | |
Variables | |
| const Move | MOVE_INIT = {0, NOMOVE, -SCORE_INF, 0, NULL} |
| const Move | MOVE_PASS = {0, PASS, -SCORE_INF, 0, NULL} |
| const int | SQUARE_VALUE [] |
Move & list of moves management.
Move & list of moves management - header file.
Copy part of a sequence to another sequence.
| dest | the destination move sequence. |
| src | the source move sequence. |
| from | the point to copy from. |
| void line_init | ( | Line * | line, |
| const int | player | ||
| ) |
Initialize a sequence of moves.
| line | the move sequence. |
| player | color of the first player of the sequence. |
| void line_pop | ( | Line * | line | ) |
Remove the last move from a sequence.
| line | the move sequence. |
| void line_print | ( | const Line * | line, |
| int | width, | ||
| const char * | separator, | ||
| FILE * | f | ||
| ) |
Print a move sequence.
| line | the move sequence. |
| width | width of the line to print (in characters). |
| separator | a string to print between moves. |
| f | output stream. |
| void line_push | ( | Line * | line, |
| const int | x | ||
| ) |
Add a move to the sequence.
| line | the move sequence. |
| x | move coordinate. |
| char* line_to_string | ( | const Line * | line, |
| int | n, | ||
| const char * | separator, | ||
| char * | string | ||
| ) |
Line to string.
| line | the move sequence. |
| n | number of moves to add. |
| separator | a string to print between moves. |
| string | output string receiving the line. |
|
static |
Evaluate a list of move.
Evaluate the moves to sort them. Evaluation is based on, in order of importance:
Return the next move from the list.
| move | previous move. |
Return the next best move from the list.
| previous_best | Last best move. |
Return the next best move from the list.
| previous_best | Last best move. |
| void move_print | ( | const int | x, |
| const int | player, | ||
| FILE * | f | ||
| ) |
Print out a move.
Print the move, using letter case to distinguish player's color, to an output stream.
| x | square coordinate to print. |
| player | player color. |
| f | output stream. |
| char* move_to_string | ( | const int | x, |
| const int | player, | ||
| char * | s | ||
| ) |
Print out a move.
Print the move, using letter case to distinguish player's color, to an output stream.
| x | Square coordinate to print. |
| player | Player color. |
| s | Output string. |
|
static |
array supression.
| array | Array of positions. |
|
static |
array initialisation.
| array | Array of positions. |
| void movehash_init | ( | MoveHash * | hash, |
| int | bitsize | ||
| ) |
Return the best move of the list.
| movelist | The list of move. |
Exclude a move.
| movelist | List of moves to sort. |
| move | Move to exclude. |
Return the first move of the list.
| movelist | The list of move. |
Get moves from a position.
| movelist | movelist. |
| board | board. |
| bool movelist_is_empty | ( | const MoveList * | movelist | ) |
Check if the list is empty.
| movelist | The list of move. |
| void movelist_print | ( | const MoveList * | movelist, |
| const int | player, | ||
| FILE * | f | ||
| ) |
Print out a movelist.
Print the moves, using letter case to distinguish player's color, to an output stream.
| movelist | a list of moves. |
| player | player color. |
| f | output stream. |
| void movelist_sort | ( | MoveList * | movelist | ) |
Sort all moves.
| movelist | List of moves to sort. |
Sort a move as best.
Put the best move at the head of the list.
| movelist | List of moves to sort. |
| move | Best move to to set first. |
Sort all moves except the first, based on move cost & hash_table storage.
| movelist | List of moves to sort. |
| hash_data | Data from the hash table. |
| int symetry | ( | int | x, |
| const int | sym | ||
| ) |
Get a symetric square coordinate.
| x | Square coordinate. |
| sym | Symetry. |
| const int SQUARE_VALUE[] |
1.8.14