mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Fun with lambdas
Use lambda functions instead of has_positive_value() and toggle_case() No functional change.
This commit is contained in:
parent
f54c44e6be
commit
2ca2c3f35b
3 changed files with 4 additions and 11 deletions
|
@ -49,10 +49,6 @@ namespace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unary predicate used by std::partition to split positive values from remaining
|
|
||||||
// ones so as to sort the two sets separately, with the second sort delayed.
|
|
||||||
inline bool has_positive_value(const ExtMove& move) { return move.value > VALUE_ZERO; }
|
|
||||||
|
|
||||||
// Picks the best move in the range (begin, end) and moves it to the front.
|
// Picks the best move in the range (begin, end) and moves it to the front.
|
||||||
// It's faster than sorting all the moves in advance when there are few
|
// It's faster than sorting all the moves in advance when there are few
|
||||||
// moves e.g. possible captures.
|
// moves e.g. possible captures.
|
||||||
|
@ -247,7 +243,7 @@ void MovePicker::generate_next_stage() {
|
||||||
case QUIETS_1_S1:
|
case QUIETS_1_S1:
|
||||||
endQuiets = end = generate<QUIETS>(pos, moves);
|
endQuiets = end = generate<QUIETS>(pos, moves);
|
||||||
score<QUIETS>();
|
score<QUIETS>();
|
||||||
end = std::partition(cur, end, has_positive_value);
|
end = std::partition(cur, end, [](const ExtMove& m) { return m.value > VALUE_ZERO; });
|
||||||
insertion_sort(cur, end);
|
insertion_sort(cur, end);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -1147,10 +1147,6 @@ bool Position::is_draw() const {
|
||||||
/// Position::flip() flips position with the white and black sides reversed. This
|
/// Position::flip() flips position with the white and black sides reversed. This
|
||||||
/// is only useful for debugging e.g. for finding evaluation symmetry bugs.
|
/// is only useful for debugging e.g. for finding evaluation symmetry bugs.
|
||||||
|
|
||||||
static char toggle_case(char c) {
|
|
||||||
return char(islower(c) ? toupper(c) : tolower(c));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Position::flip() {
|
void Position::flip() {
|
||||||
|
|
||||||
string f, token;
|
string f, token;
|
||||||
|
@ -1168,7 +1164,8 @@ void Position::flip() {
|
||||||
ss >> token; // Castling availability
|
ss >> token; // Castling availability
|
||||||
f += token + " ";
|
f += token + " ";
|
||||||
|
|
||||||
std::transform(f.begin(), f.end(), f.begin(), toggle_case);
|
std::transform(f.begin(), f.end(), f.begin(),
|
||||||
|
[](char c) { return char(islower(c) ? toupper(c) : tolower(c)); });
|
||||||
|
|
||||||
ss >> token; // En passant square
|
ss >> token; // En passant square
|
||||||
f += (token == "-" ? token : token.replace(1, 1, token[1] == '3' ? "6" : "3"));
|
f += (token == "-" ? token : token.replace(1, 1, token[1] == '3' ? "6" : "3"));
|
||||||
|
|
|
@ -81,7 +81,7 @@ void init(OptionsMap& o) {
|
||||||
std::ostream& operator<<(std::ostream& os, const OptionsMap& om) {
|
std::ostream& operator<<(std::ostream& os, const OptionsMap& om) {
|
||||||
|
|
||||||
for (size_t idx = 0; idx < om.size(); ++idx)
|
for (size_t idx = 0; idx < om.size(); ++idx)
|
||||||
for (auto it : om)
|
for (auto& it : om)
|
||||||
if (it.second.idx == idx)
|
if (it.second.idx == idx)
|
||||||
{
|
{
|
||||||
const Option& o = it.second;
|
const Option& o = it.second;
|
||||||
|
|
Loading…
Add table
Reference in a new issue