pos: keep possibility to have opponent moves (NULL move)
This commit is contained in:
@@ -176,7 +176,8 @@ pos_t *pos_get()
|
|||||||
INIT_LIST_HEAD(&pos->pieces[WHITE]);
|
INIT_LIST_HEAD(&pos->pieces[WHITE]);
|
||||||
INIT_LIST_HEAD(&pos->pieces[BLACK]);
|
INIT_LIST_HEAD(&pos->pieces[BLACK]);
|
||||||
|
|
||||||
INIT_LIST_HEAD(&pos->moves);
|
INIT_LIST_HEAD(&pos->moves[WHITE]);
|
||||||
|
INIT_LIST_HEAD(&pos->moves[BLACK]);
|
||||||
pos_clear(pos);
|
pos_clear(pos);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr, "zobaaa\n");
|
fprintf(stderr, "zobaaa\n");
|
||||||
@@ -197,7 +198,8 @@ pos_t *pos_dup(pos_t *pos)
|
|||||||
*new = *pos;
|
*new = *pos;
|
||||||
INIT_LIST_HEAD(&new->pieces[WHITE]);
|
INIT_LIST_HEAD(&new->pieces[WHITE]);
|
||||||
INIT_LIST_HEAD(&new->pieces[BLACK]);
|
INIT_LIST_HEAD(&new->pieces[BLACK]);
|
||||||
INIT_LIST_HEAD(&new->moves);
|
INIT_LIST_HEAD(&new->moves[WHITE]);
|
||||||
|
INIT_LIST_HEAD(&new->moves[BLACK]);
|
||||||
|
|
||||||
/* duplicate piece list */
|
/* duplicate piece list */
|
||||||
for (int color=0; color<2; ++color) {
|
for (int color=0; color<2; ++color) {
|
||||||
|
@@ -27,7 +27,6 @@ typedef struct pos_s {
|
|||||||
castle_t castle;
|
castle_t castle;
|
||||||
u16 clock_50;
|
u16 clock_50;
|
||||||
u16 curmove;
|
u16 curmove;
|
||||||
u16 mobility[2];
|
|
||||||
eval_t eval;
|
eval_t eval;
|
||||||
board_t board[BOARDSIZE];
|
board_t board[BOARDSIZE];
|
||||||
|
|
||||||
@@ -37,8 +36,9 @@ typedef struct pos_s {
|
|||||||
bitboard_t bb[2][BB_END]; /* use: pieces[BLACK][BB_PAWN] */
|
bitboard_t bb[2][BB_END]; /* use: pieces[BLACK][BB_PAWN] */
|
||||||
bitboard_t occupied[2]; /* OR of bb[COLOR][x] */
|
bitboard_t occupied[2]; /* OR of bb[COLOR][x] */
|
||||||
bitboard_t controlled[2];
|
bitboard_t controlled[2];
|
||||||
|
u16 mobility[2];
|
||||||
struct list_head pieces[2];
|
struct list_head pieces[2];
|
||||||
struct list_head moves;
|
struct list_head moves[2];
|
||||||
} pos_t;
|
} pos_t;
|
||||||
|
|
||||||
void bitboard_print(bitboard_t bb);
|
void bitboard_print(bitboard_t bb);
|
||||||
|
Reference in New Issue
Block a user