summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
2943e1c)
This fix a couple of dubious bugs in MVV/LVA
ordering.
Tests seems to confirm now is slightly better.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
{
assert(move_is_ok(mateKiller));
if (generate_move_if_legal(pos, mateKiller, pinned) != MOVE_NONE)
{
assert(move_is_ok(mateKiller));
if (generate_move_if_legal(pos, mateKiller, pinned) != MOVE_NONE)
moves[i].score = pos.see(m);
if (moves[i].score >= 0)
{
moves[i].score = pos.see(m);
if (moves[i].score >= 0)
{
- moves[i].score = move_promotion(m) ? QueenValueMidgame
- : int(pos.midgame_value_of_piece_on(move_to(m)))
- -int(pos.type_of_piece_on(move_from(m)));
- // FIXME second term seems wrong !
+ moves[i].score = HistoryMax;
+ moves[i].score += move_promotion(m) ? QueenValueMidgame
+ : pos.midgame_value_of_piece_on(move_to(m));
void MovePicker::score_qcaptures() {
void MovePicker::score_qcaptures() {
- // Use MVV/LVA ordering.
+ // Use MVV/LVA ordering
for (int i = 0; i < numOfMoves; i++)
{
Move m = moves[i].move;
moves[i].score = move_promotion(m) ? QueenValueMidgame
for (int i = 0; i < numOfMoves; i++)
{
Move m = moves[i].move;
moves[i].score = move_promotion(m) ? QueenValueMidgame
- : int(pos.midgame_value_of_piece_on(move_to(m)))
- -int(pos.midgame_value_of_piece_on(move_to(m))) / 64;
- // FIXME Why second term like that ???
+ : pos.midgame_value_of_piece_on(move_to(m));
{
move = moves[bestIndex].move;\r
moves[bestIndex] = moves[movesPicked++];
{
move = moves[bestIndex].move;\r
moves[bestIndex] = moves[movesPicked++];
- // Remember to change the line below if we decide to hash the qsearch!
- // Maybe also postpone the legality check until after futility pruning?
- // FIXME !!!
- if (/* move != ttMove && */ pos.move_is_legal(move, pinned))
+ if (move != ttMove && pos.move_is_legal(move, pinned))
// move here? FIXME
while (movesPicked < numOfMoves)
{
// move here? FIXME
while (movesPicked < numOfMoves)
{
- move = moves[movesPicked++].move;
- // Remember to change the line below if we decide to hash the qsearch!
- // FIXME !!!
- if (/* move != ttMove && */ pos.move_is_legal(move, pinned))
+ move = moves[movesPicked++].move;
+ if (move != ttMove && pos.move_is_legal(move, pinned))