template<typename Domain>
typename Domain::Score;
{ domain.is_terminal(state) } -> std::convertible_to<bool>;
{ domain.evaluate(state) } -> std::convertible_to<typename Domain::Score>;
}
Score type accepted by adversarial search engines.
Required evaluator contract for zero-sum games.
@ Domain
Preserve the order emitted by for_each_successor().
Required evaluator contract for zero-sum games.
evaluate(state) must return a score from the perspective of the player to move in state. This is the key convention that keeps Negamax and Alpha-Beta compact and symmetric.
Definition at line 380 of file Negamax.H.