Empirical
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
emp::StateGridStatus Class Reference

Information about a particular agent on a state grid. More...

#include <StateGrid.h>

Classes

struct  State
 

Public Member Functions

 StateGridStatus ()
 
 StateGridStatus (const StateGridStatus &)=default
 
 StateGridStatus (StateGridStatus &&)=default
 
StateGridStatusoperator= (const StateGridStatus &)=default
 
StateGridStatusoperator= (StateGridStatus &&)=default
 
size_t GetX () const
 
size_t GetY () const
 
size_t GetFacing () const
 
bool IsAt (size_t x, size_t y) const
 
bool WasAt (size_t x, size_t y) const
 
emp::BitVector GetVisited (const StateGrid &grid) const
 Get a BitVector indicating the full history of which positions this organism has traversed. More...
 
StateGridStatusTrackMoves (bool track=true)
 
StateGridStatusSet (size_t _x, size_t _y, size_t _f)
 
StateGridStatusSetX (size_t _x)
 
StateGridStatusSetY (size_t _y)
 
StateGridStatusSetPos (size_t _x, size_t _y)
 
StateGridStatusSetFacing (size_t _f)
 
void Move (const StateGrid &grid, int steps=1)
 Move in the direction currently faced. More...
 
void Rotate (int turns=1)
 Rotate starting from current facing. More...
 
void Randomize (const StateGrid &grid, Random &random)
 Move the current status to a random position and orientation. More...
 
int Scan (const StateGrid &grid)
 Examine state of current position. More...
 
void SetState (StateGrid &grid, int new_state)
 Set the current position in the state grid. More...
 
void PrintHistory (StateGrid &grid, std::ostream &os=std::cout) const
 Print the history of an organim moving around a state grid. More...
 

Protected Member Functions

void UpdateHistory ()
 If we are tracking moves, store the current position in the history. More...
 
void MoveX (const StateGrid &grid, int steps=1)
 Move explicitly in the x direction (regardless of facing). More...
 
void MoveY (const StateGrid &grid, int steps=1)
 Move explicitly in the y direction (regardless of facing). More...
 

Protected Attributes

State cur_state
 Position and facing currently used. More...
 
bool track_moves
 Should we record every move made by this organism? More...
 
emp::vector< Statehistory
 All previous positions and facings in this path. More...
 

Detailed Description

Information about a particular agent on a state grid.

Constructor & Destructor Documentation

emp::StateGridStatus::StateGridStatus ( )
inline
emp::StateGridStatus::StateGridStatus ( const StateGridStatus )
default
emp::StateGridStatus::StateGridStatus ( StateGridStatus &&  )
default

Member Function Documentation

size_t emp::StateGridStatus::GetFacing ( ) const
inline
emp::BitVector emp::StateGridStatus::GetVisited ( const StateGrid grid) const
inline

Get a BitVector indicating the full history of which positions this organism has traversed.

size_t emp::StateGridStatus::GetX ( ) const
inline
size_t emp::StateGridStatus::GetY ( ) const
inline
bool emp::StateGridStatus::IsAt ( size_t  x,
size_t  y 
) const
inline
void emp::StateGridStatus::Move ( const StateGrid grid,
int  steps = 1 
)
inline

Move in the direction currently faced.

void emp::StateGridStatus::MoveX ( const StateGrid grid,
int  steps = 1 
)
inlineprotected

Move explicitly in the x direction (regardless of facing).

void emp::StateGridStatus::MoveY ( const StateGrid grid,
int  steps = 1 
)
inlineprotected

Move explicitly in the y direction (regardless of facing).

StateGridStatus& emp::StateGridStatus::operator= ( const StateGridStatus )
default
StateGridStatus& emp::StateGridStatus::operator= ( StateGridStatus &&  )
default
void emp::StateGridStatus::PrintHistory ( StateGrid grid,
std::ostream &  os = std::cout 
) const
inline

Print the history of an organim moving around a state grid.

void emp::StateGridStatus::Randomize ( const StateGrid grid,
Random random 
)
inline

Move the current status to a random position and orientation.

void emp::StateGridStatus::Rotate ( int  turns = 1)
inline

Rotate starting from current facing.

int emp::StateGridStatus::Scan ( const StateGrid grid)
inline

Examine state of current position.

StateGridStatus& emp::StateGridStatus::Set ( size_t  _x,
size_t  _y,
size_t  _f 
)
inline
StateGridStatus& emp::StateGridStatus::SetFacing ( size_t  _f)
inline
StateGridStatus& emp::StateGridStatus::SetPos ( size_t  _x,
size_t  _y 
)
inline
void emp::StateGridStatus::SetState ( StateGrid grid,
int  new_state 
)
inline

Set the current position in the state grid.

StateGridStatus& emp::StateGridStatus::SetX ( size_t  _x)
inline
StateGridStatus& emp::StateGridStatus::SetY ( size_t  _y)
inline
StateGridStatus& emp::StateGridStatus::TrackMoves ( bool  track = true)
inline
void emp::StateGridStatus::UpdateHistory ( )
inlineprotected

If we are tracking moves, store the current position in the history.

bool emp::StateGridStatus::WasAt ( size_t  x,
size_t  y 
) const
inline

Member Data Documentation

State emp::StateGridStatus::cur_state
protected

Position and facing currently used.

emp::vector<State> emp::StateGridStatus::history
protected

All previous positions and facings in this path.

bool emp::StateGridStatus::track_moves
protected

Should we record every move made by this organism?


The documentation for this class was generated from the following file: