Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
move_evaluator_random_for_concepts.hpp
Go to the documentation of this file.
1#pragma once
2
6#include <memory>
8#include <random>
10
13
14namespace moveselection {
15
20 std::mt19937_64 prng_;
21
22public:
24 static std::unique_ptr<RandomMoveEvaluatorForConcepts> Create(
25 gameboard::PieceColor evaluating_player
26 );
27
30
31 void NotifyIllegalMove();
32
33private:
36};
37
39public:
40 std::unique_ptr<MoveEvaluatorBase> Create(
41 gameboard::PieceColor evaluating_player
42 ) override;
43};
44
45} // namespace moveselection
std::unique_ptr< MoveEvaluatorBase > Create(gameboard::PieceColor evaluating_player) override
gameboard::Move SelectMove(const gameboard::MoveCollection &allowed_moves)
Randomly selects move from collection of allowed moves.
static std::unique_ptr< RandomMoveEvaluatorForConcepts > Create(gameboard::PieceColor evaluating_player)
Instantiates RandomMoveEvaluatorForConcepts in heap.
Defines GamePiece and supporting constants and free functions.
Definitions and implementations of gameboard::Move and other move-related structs.
Selecting a move to execute.
A container for multiple gameboard::Move objects.
A gameboard::BoardSpace pair (start and end).
Defiition of miscellaneous free functions (and implementation of those that are templates).