23 #ifndef SRC_TYPES_Action_HPP_
24 #define SRC_TYPES_Action_HPP_
74 os_ <<
"[dx,dy]: [" << ac_.
dx <<
',' << ac_.
dy <<
"]";
87 template <
typename ActionType>
99 virtual void setAction(ActionType type_) = 0;
154 default:
dy =0;
dx =0;
166 os_ <<
"[dx,dy]: [" << ac_.
dx <<
',' << ac_.
dy <<
"]";
210 std::random_device
rd;
238 #define A_NORTH mic::types::NESWAction(mic::types::NESW::North)
244 #define A_EAST mic::types::NESWAction(mic::types::NESW::East)
250 #define A_SOUTH mic::types::NESWAction(mic::types::NESW::South)
256 #define A_WEST mic::types::NESWAction(mic::types::NESW::West)
262 #define A_RANDOM mic::types::RandomNESWAction()
268 #define A_EXIT mic::types::ExitAction()
274 #define A_NONE mic::types::NESWAction(mic::types::NESW::None)
Class representing a random N/E/S/W action.
Abstract template class representing an action in 2-D space.
int dy
Increment according to y axis.
Class representing an N/E/S/W action.
virtual void setAction(ActionType type_)=0
std::mt19937_64 rng_mt19937_64
int dx
Increment according to x axis.
Class representing an exit action.
void setAction(NESW type_)
friend std::ostream & operator<<(std::ostream &os_, const NESWAction &ac_)
friend std::ostream & operator<<(std::ostream &os_, const Action2DInterface &ac_)
NESW
Enumeration of possible types of actions in 2D.
Interface class representing an action in 2-D space.