13 std::istream &input_stream
15 : evaluating_player_{evaluating_player}
17 , input_stream_{input_stream} {}
21 std::istream &input_stream
23 return std::unique_ptr<HumanMoveEvaluatorForConcepts>(
33 bool legal_move_proposed =
false;
35 while (!legal_move_proposed) {
38 legal_move_proposed =
true;
39 legal_move = proposed_move;
60 std::istream &input_stream
64 bool obtained_syntactically_valid_move =
false;
66 while (!obtained_syntactically_valid_move) {
71 obtained_syntactically_valid_move =
true;
73 result = algebraic_move.ToGameBoardMove();
std::istream & input_stream_
std::unique_ptr< MoveEvaluatorBase > Create(gameboard::PieceColor evaluating_player) override
std::istream & input_stream_
gameboard::Move SelectMove(const gameboard::MoveCollection &allowed_moves)
static std::unique_ptr< HumanMoveEvaluatorForConcepts > Create(gameboard::PieceColor evaluating_player, std::istream &input_stream=std::cin)
HumanMoveEvaluatorForConcepts(gameboard::PieceColor evaluating_player, std::istream &input_stream)
humanplayerio::InputRetrievalMessages io_messages_
gameboard::Move GetSyntacticallyValidMove(std::istream &input_stream)
static const AlgebraicMove Create(const std::vector< AlgebraicBoardSpace > &algebraic_board_spaces)
Selecting a move to execute.
bool IsValidAlgebraicMove(const std::vector< std::string > &tokens)
const std::string GetInput(std::istream &input_stream)
const std::vector< std::string > Tokenize(const std::string &input)
A container for multiple gameboard::Move objects.
bool ContainsMove(const Move &move) const
A gameboard::BoardSpace pair (start and end).