#include #include "MapT.h" #include "PlayerT.h" using namespace std; MapT::MapT(size_t rows, size_t cols): map{rows, cols} {}; size_t MapT::Rows() const{ return map.Rows(); } size_t MapT::Cols() const{ return map.Cols(); } PlayerT * MapT::At(CoordT c) const{ return map[c.X(),c.Y()]; } void MapT::Remove(CoordT coord){ if (map[coord.X(),coord.Y()] != nullptr) { delete map[coord.X(),coord.Y()]; } } void MapT::Add(CoordT coord, PlayerT * player) { map[coord.X(), coord.Y()] = player; } void MapT::Move(CoordT src, CoordT dest){ if (map[dest.X(), dest.Y()] != nullptr) { delete map[dest.X(), dest.Y()]; } map[dest.X(), dest.Y()] = map[src.X(), src.Y()]; map[src.X(), src.Y()] = nullptr ; } CoordT MapT::Up(CoordT present) const{ if (present.x > 0) { --present.x; } else { present.x = map.Rows()-1; } return present; } CoordT MapT::Down(CoordT present) const{ if (present.x < map.Rows()-1) { ++present.x; } else { present.x = 0; } return present; } CoordT MapT::Left(CoordT present) const{ if (present.y > 0) { --present.y; } else { present.y = map.Cols()-1; } return present; } CoordT MapT::Right(CoordT present) const{ if (present.y < map.Cols()-1) { ++present.y; } else { present.y = 0; } return present; }