Ispired by the thread "Expected CCRL ELO strength of a barebones chess engine?" I would like to see how strong is Stockfish without any evaluation.
I have changed the evaluate function to:
Fulvio wrote: ↑Thu Mar 12, 2020 8:25 pm
Ispired by the thread "Expected CCRL ELO strength of a barebones chess engine?" I would like to see how strong is Stockfish without any evaluation.
I have changed the evaluate function to:
Value Eval::evaluate(Position& pos) {
const int my_moves = (int) MoveList<LEGAL>(pos).size();
StateInfo newSt;
pos.do_null_move(newSt);
const int adv_moves = (int) MoveList<LEGAL>(pos).size();
pos.undo_null_move();
auto res = Value(my_moves - adv_moves);
return res;
}
but it is still too strong and I imagine there are other evaluate functions somewhere else.
Suggestions?
The Stockfish search , in some respects , is more notable than the evaluate function. Take a look at the "#ifdef Weakfish" lines in search.cpp, The Weakfish defines takes it down 500-600 Elo ( to about 2900-3000 ).
Also looks at piece value in types.h , psqt.cpp, material.cpp and pawns.cpp. You might have to be careful since I am sure some of them roll into evaluate at some point.
I believe it was Christophe Theron who first said, "Search is also knowledge."
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.