📄 move_list.cpp
字号:
// list.cpp
// includes
#include "move_list.h"
#include "move.h"
// functions
// list_is_ok()
bool list_is_ok(const list_t *list)
{
if(list == NULL)
return false;
if(list->size < 0 || list->size >= 256)
return false;
return true;
}
// list_remove()
void list_remove(list_t *list, int pos)
{
int i;
for ( i = pos; i < list->size - 1; i++ )
{
list->move[i] = list->move[i + 1];
list->value[i] = list->value[i + 1];
}
list->size--;
}
// list_copy()
void list_copy(list_t *dst, const list_t *src)
{
int i;
dst->size = src->size;
for ( i = 0; i < src->size; i++ )
{
dst->move[i] = src->move[i];
dst->value[i] = src->value[i];
}
}
// list_sort()
void list_sort(list_t *list)
{
int size;
int i, j;
int move, value;
// init
size = list->size;
list->value[size] = -32768;
// insert sort (stable)
for ( i = size - 2; i >= 0; i-- )
{
move = list->move[i];
value = list->value[i];
for ( j = i; value < list->value[j + 1]; j++ )
{
list->move[j] = list->move[j + 1];
list->value[j] = list->value[j + 1];
}
list->move[j] = move;
list->value[j] = value;
}
}
// list_contain()
bool list_contain(const list_t *list, int move)
{
int i;
for ( i = 0; i < list->size; i++ )
{
if(list->move[i] == move)
return true;
}
return false;
}
// list_note()
void list_note(list_t *list)
{
int i, move;
for ( i = 0; i < list->size; i++ )
{
move = list->move[i];
list->value[i] = -move_order(move);
}
}
// list_filter()
void list_filter(list_t *list, board_t *board, move_test_t test, bool keep)
{
int pos;
int i, move, value;
pos = 0;
for ( i = 0; i < LIST_SIZE(list); i++ )
{
move = LIST_MOVE(list, i);
value = LIST_VALUE(list, i);
if((*test)(move,board) == keep)
{
list->move[pos] = move;
list->value[pos] = value;
pos++;
}
}
list->size = pos;
}
// end of list.cpp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -