From e5b573438ad11490530bb9bb5b3b16a7db0ac7cf Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Mon, 5 Sep 2022 22:56:26 +0000 Subject: [PATCH 1/2] The caller must now provide environment, grid and entity ids. --- cr.sh | 0 src/entity.cpp | 14 ++++++++----- src/environment.cpp | 26 +++++++++++++---------- src/grid.cpp | 15 ++++++------- src/header/entity.h | 9 ++++---- src/header/environment.h | 7 ++++--- src/header/grid.h | 6 +++--- src/header/location.h | 6 +++--- src/location.cpp | 8 +++---- src/tests.cpp | 44 +++++++++++++++++++-------------------- tests | Bin 99712 -> 107288 bytes 11 files changed, 71 insertions(+), 64 deletions(-) mode change 100644 => 100755 cr.sh mode change 100644 => 100755 tests diff --git a/cr.sh b/cr.sh old mode 100644 new mode 100755 diff --git a/src/entity.cpp b/src/entity.cpp index a04bb21..e493caf 100644 --- a/src/entity.cpp +++ b/src/entity.cpp @@ -4,12 +4,12 @@ #include namespace envlibcpp { - Entity::Entity(std::string entityName) { - id = rand() % 100 + 1; + Entity::Entity(int identifier, std::string entityName) { + id = identifier; name = entityName; environmentId = -1; gridId = -1; - locationId = -1; + locationId = "N/S"; } int Entity::getId() { @@ -28,7 +28,7 @@ namespace envlibcpp { return gridId; } - int Entity::getLocationId() { + std::string Entity::getLocationId() { return locationId; } @@ -44,7 +44,11 @@ namespace envlibcpp { gridId = id; } - void Entity::setLocationId(int id) { + void Entity::setLocationId(std::string id) { locationId = id; } + + void Entity::resetLocationId() { + setLocationId("N/S"); + } } \ No newline at end of file diff --git a/src/environment.cpp b/src/environment.cpp index 8d0656b..8b7afd5 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -3,10 +3,14 @@ #include namespace envlibcpp { - Environment::Environment(std::string envName, int size) { - id = rand() % 100 + 1; + Environment::Environment(int identifier, std::string envName, int size) { + id = identifier; name = envName; - grid = Grid(size); + grid = new Grid(id, size); + } + + Environment::~Environment() { + free(grid); } int Environment::getId() { @@ -17,7 +21,7 @@ namespace envlibcpp { return name; } - Grid& Environment::getGrid() { + Grid* Environment::getGrid() { return grid; } @@ -27,25 +31,25 @@ namespace envlibcpp { void Environment::addEntity(Entity& entity) { entity.setEnvironmentId(id); - grid.addEntity(entity); + grid->addEntity(entity); } void Environment::addEntityToLocation(Entity& entity, Location& location) { entity.setEnvironmentId(id); - grid.addEntityToLocation(entity, location); + grid->addEntityToLocation(entity, location); } void Environment::removeEntity(Entity& entity) { entity.setEnvironmentId(-1); - grid.removeEntity(entity); + grid->removeEntity(entity); } bool Environment::isEntityPresent(Entity& entity) { - return grid.isEntityPresent(entity); + return grid->isEntityPresent(entity); } int Environment::getNumEntities() { - return grid.getNumEntities(); + return grid->getNumEntities(); } void Environment::printInfo() { @@ -54,7 +58,7 @@ namespace envlibcpp { } envlibcpp::Entity& Environment::getFirstEntity() { - for (envlibcpp::Location& location : getGrid().getLocations()) { + for (envlibcpp::Location& location : getGrid()->getLocations()) { if (location.getNumEntities() > 0) { return location.getEntities()[0]; } @@ -63,7 +67,7 @@ namespace envlibcpp { } envlibcpp::Entity& Environment::getEntity(int entityId) { - for (envlibcpp::Location& location : getGrid().getLocations()) { + for (envlibcpp::Location& location : getGrid()->getLocations()) { for (envlibcpp::Entity& entity : location.getEntities()) { if (entity.getId() == entityId) { return entity; diff --git a/src/grid.cpp b/src/grid.cpp index 6d0692f..d86c171 100644 --- a/src/grid.cpp +++ b/src/grid.cpp @@ -3,12 +3,8 @@ #include namespace envlibcpp { - Grid::Grid() { - Grid(4); - } - - Grid::Grid(int gridSize) { - id = rand() % 100 + 1; + Grid::Grid(int identifier, int gridSize) { + id = identifier; size = gridSize; generateLocations(); } @@ -84,7 +80,7 @@ namespace envlibcpp { for (Location& location : locations) { if (location.isEntityPresent(entity)) { location.removeEntity(entity); - entity.setLocationId(-1); + entity.resetLocationId(); } } entity.setGridId(-1); @@ -99,7 +95,7 @@ namespace envlibcpp { return false; } - Location& Grid::getLocation(int locationId) { + Location& Grid::getLocation(std::string locationId) { for (Location& location : locations) { if (location.getId() == locationId) { return location; @@ -116,7 +112,8 @@ namespace envlibcpp { void Grid::generateLocations() { for (int y = 0; y < getSize(); y++) { for (int x = 0; x < getSize(); x++) { - Location location(x, y); + std::string identifier = "" + std::to_string(getId()) + "-" + std::to_string(x) + "-" + std::to_string(y); + Location location(identifier, x, y); locations.push_back(location); } } diff --git a/src/header/entity.h b/src/header/entity.h index 9fcf280..cc4d9c9 100644 --- a/src/header/entity.h +++ b/src/header/entity.h @@ -9,23 +9,24 @@ namespace envlibcpp { // @since August 26th, 2022 class Entity { public: - Entity(std::string entityName); + Entity(int id, std::string entityName); int getId(); std::string getName(); int getEnvironmentId(); int getGridId(); - int getLocationId(); + std::string getLocationId(); void setName(std::string newName); void setEnvironmentId(int id); void setGridId(int id); - void setLocationId(int id); + void setLocationId(std::string id); + void resetLocationId(); envlibcpp::Entity& getEntity(int entityId); private: int id; std::string name; int environmentId; int gridId; - int locationId; + std::string locationId; }; } diff --git a/src/header/environment.h b/src/header/environment.h index c9fcbb3..aab1442 100644 --- a/src/header/environment.h +++ b/src/header/environment.h @@ -11,10 +11,11 @@ namespace envlibcpp { // @since August 26th, 2022 class Environment { public: - Environment(std::string envName, int size); + Environment(int id, std::string envName, int size); + ~Environment(); int getId(); std::string getName(); - Grid& getGrid(); + Grid* getGrid(); void setName(std::string newName); void addEntity(Entity& entity); void addEntityToLocation(Entity& entity, Location& location); @@ -27,7 +28,7 @@ namespace envlibcpp { private: int id; std::string name; - Grid grid; + Grid* grid; }; } diff --git a/src/header/grid.h b/src/header/grid.h index 23e44fe..d74ad38 100644 --- a/src/header/grid.h +++ b/src/header/grid.h @@ -12,8 +12,8 @@ namespace envlibcpp { // @since August 26th, 2022 class Grid { public: - Grid(); - Grid(int gridSize); + Grid() = delete; + Grid(int id, int gridSize); int getId(); std::vector& getLocations(); Location& getFirstLocation(); @@ -28,7 +28,7 @@ namespace envlibcpp { void addEntityToLocation(Entity& entity, Location& location); void removeEntity(Entity& entity); bool isEntityPresent(Entity& entity); - Location& getLocation(int locationId); + Location& getLocation(std::string locationId); Location& getRandomLocation(); private: int id; diff --git a/src/header/location.h b/src/header/location.h index 8080aa5..2607450 100644 --- a/src/header/location.h +++ b/src/header/location.h @@ -12,8 +12,8 @@ namespace envlibcpp { // @since August 26th, 2022 class Location { public: - Location(int xpos, int ypos); - int getId(); + Location(std::string id, int xpos, int ypos); + std::string getId(); int getX(); int getY(); int getNumEntities(); @@ -22,7 +22,7 @@ namespace envlibcpp { bool isEntityPresent(Entity& entity); std::vector& getEntities(); private: - int id; + std::string id; int x; int y; std::vector entities; diff --git a/src/location.cpp b/src/location.cpp index a38b65f..7d5ef53 100644 --- a/src/location.cpp +++ b/src/location.cpp @@ -3,13 +3,13 @@ #include namespace envlibcpp { - Location::Location(int xpos, int ypos) { - id = rand() % 100 + 1; + Location::Location(std::string identifier, int xpos, int ypos) { + id = identifier; x = xpos; y = ypos; } - int Location::getId() { + std::string Location::getId() { return id; } @@ -41,7 +41,7 @@ namespace envlibcpp { if (index != -1) { entities.erase(entities.begin() + index); } - entity.setLocationId(-1); + entity.resetLocationId(); } bool Location::isEntityPresent(Entity& entity) { diff --git a/src/tests.cpp b/src/tests.cpp index 5fdb41c..573c707 100644 --- a/src/tests.cpp +++ b/src/tests.cpp @@ -19,8 +19,8 @@ void testTemplate() { void testPlacingEntityInLocation() { std::cout << "---" << std::endl; std::cout << "Test 1 - Placing entity in location" << std::endl; - Entity entity("Daniel"); - Location location(0, 0); + Entity entity(0, "Daniel"); + Location location("my location id", 0, 0); location.addEntity(entity); assert(location.isEntityPresent(entity) == true); assert(entity.getLocationId() == location.getId()); @@ -30,12 +30,12 @@ void testPlacingEntityInLocation() { void testRemovingEntityFromLocation() { std::cout << "---" << std::endl; std::cout << "Test 2 - Removing entity from location" << std::endl; - Entity entity("Daniel"); - Location location(0, 0); + Entity entity(0, "Daniel"); + Location location("location-0-0", 0, 0); location.addEntity(entity); location.removeEntity(entity); assert(!location.isEntityPresent(entity)); - assert(entity.getLocationId() == -1); + assert(entity.getLocationId() == "N/S"); std::cout << "Success" << std::endl; } @@ -43,8 +43,8 @@ void testGeneratingGrid() { std::cout << "---" << std::endl; std::cout << "Test 3 - Generating grid" << std::endl; int size = 4; - Environment environment("test environment", 4); - int numLocations = environment.getGrid().getLocations().size(); + Environment environment(0, "test environment", 4); + int numLocations = environment.getGrid()->getLocations().size(); int expectedNumLocations = size*size; assert(numLocations == expectedNumLocations); std::cout << "Success" << std::endl; @@ -53,7 +53,7 @@ void testGeneratingGrid() { void testRetrievingLocation() { std::cout << "---" << std::endl; std::cout << "Test 4 - Retrieving location" << std::endl; - Grid grid(5); + Grid grid(0, 5); Location firstLocation = grid.getFirstLocation(); assert(firstLocation.getX() == 0 && firstLocation.getY() == 0); std::cout << "Success" << std::endl; @@ -62,9 +62,9 @@ void testRetrievingLocation() { void testRetrievingLocationAfterModification() { std::cout << "---" << std::endl; std::cout << "Test 5 - Retrieving location after modification" << std::endl; - Grid grid(5); + Grid grid(0, 5); Location firstLocation = grid.getFirstLocation(); - Entity entity = Entity("test"); + Entity entity = Entity(0, "test"); firstLocation = grid.getFirstLocation(); firstLocation.addEntity(entity); assert(firstLocation.getX() == 0 && firstLocation.getY() == 0); @@ -75,8 +75,8 @@ void testRetrievingLocationAfterModification() { void testPlacingEntityInGrid() { std::cout << "---" << std::endl; std::cout << "Test 6 - Placing entity in grid" << std::endl; - Entity entity("Daniel"); - Grid grid(4); + Entity entity(0, "Daniel"); + Grid grid(0, 4); grid.addEntity(entity); assert(grid.isEntityPresent(entity)); assert(entity.getGridId() == grid.getId()); @@ -86,8 +86,8 @@ void testPlacingEntityInGrid() { void testRemovingEntityFromGrid() { std::cout << "---" << std::endl; std::cout << "Test 7 - Removing entity from grid" << std::endl; - Entity entity("Daniel"); - Grid grid(4); + Entity entity(0, "Daniel"); + Grid grid(0, 4); grid.addEntity(entity); grid.removeEntity(entity); assert(!grid.isEntityPresent(entity)); @@ -98,8 +98,8 @@ void testRemovingEntityFromGrid() { void testPlacingEntityInEnvironment() { std::cout << "---" << std::endl; std::cout << "Test 8 - Placing entity in environment" << std::endl; - Entity entity("Daniel"); - Environment environment("Earth", 2); + Entity entity(0, "Daniel"); + Environment environment(0, "Earth", 2); environment.addEntity(entity); assert(environment.isEntityPresent(entity)); assert(entity.getEnvironmentId() == environment.getId()); @@ -109,8 +109,8 @@ void testPlacingEntityInEnvironment() { void testRemovingEntityFromEnvironment() { std::cout << "---" << std::endl; std::cout << "Test 9 - Removing entity from environment" << std::endl; - Entity entity("Daniel"); - Environment environment("Earth", 2); + Entity entity(0, "Daniel"); + Environment environment(0, "Earth", 2); environment.addEntity(entity); environment.removeEntity(entity); assert(!environment.isEntityPresent(entity)); @@ -121,10 +121,10 @@ void testRemovingEntityFromEnvironment() { void testPlacingMultipleEntities() { std::cout << "---" << std::endl; std::cout << "Test 10 - Placing multiple entities" << std::endl; - Entity entity1("Bob"); - Entity entity2("Phil"); - Entity entity3("Clarisse"); - Environment environment("Earth", 6); + Entity entity1(0, "Bob"); + Entity entity2(1, "Phil"); + Entity entity3(2, "Clarisse"); + Environment environment(0, "Earth", 6); environment.addEntity(entity1); environment.addEntity(entity2); environment.addEntity(entity3); diff --git a/tests b/tests old mode 100644 new mode 100755 index 67f87b35b72ab917aa9fa049aebc3c398a94506f..4084c01b9e700e2322e7bd95bf830f770d301886 GIT binary patch literal 107288 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

`M!@*f5jVI=&=;@_a17ucz?p!b0WJefeiC^S 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ΝJe3A9mGIJ3fhy8eVmUR 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 From 438187fc5d3f4a4494348e1d0c665e522669e78b Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Mon, 5 Sep 2022 17:44:39 -0600 Subject: [PATCH 2/2] Modified some namespace references. --- cr.sh | 0 src/environment.cpp | 10 +++++----- src/header/entity.h | 2 +- src/header/environment.h | 4 ++-- tests | Bin 5 files changed, 8 insertions(+), 8 deletions(-) mode change 100755 => 100644 cr.sh mode change 100755 => 100644 tests diff --git a/cr.sh b/cr.sh old mode 100755 new mode 100644 diff --git a/src/environment.cpp b/src/environment.cpp index 8b7afd5..26dedd2 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -57,8 +57,8 @@ namespace envlibcpp { std::cout << "Num entities: " << getNumEntities() << std::endl; } - envlibcpp::Entity& Environment::getFirstEntity() { - for (envlibcpp::Location& location : getGrid()->getLocations()) { + Entity& Environment::getFirstEntity() { + for (Location& location : getGrid()->getLocations()) { if (location.getNumEntities() > 0) { return location.getEntities()[0]; } @@ -66,9 +66,9 @@ namespace envlibcpp { throw new std::exception(); } - envlibcpp::Entity& Environment::getEntity(int entityId) { - for (envlibcpp::Location& location : getGrid()->getLocations()) { - for (envlibcpp::Entity& entity : location.getEntities()) { + Entity& Environment::getEntity(int entityId) { + for (Location& location : getGrid()->getLocations()) { + for (Entity& entity : location.getEntities()) { if (entity.getId() == entityId) { return entity; } diff --git a/src/header/entity.h b/src/header/entity.h index cc4d9c9..b3c441e 100644 --- a/src/header/entity.h +++ b/src/header/entity.h @@ -20,7 +20,7 @@ namespace envlibcpp { void setGridId(int id); void setLocationId(std::string id); void resetLocationId(); - envlibcpp::Entity& getEntity(int entityId); + Entity& getEntity(int entityId); private: int id; std::string name; diff --git a/src/header/environment.h b/src/header/environment.h index aab1442..202e374 100644 --- a/src/header/environment.h +++ b/src/header/environment.h @@ -23,8 +23,8 @@ namespace envlibcpp { bool isEntityPresent(Entity& entity); int getNumEntities(); void printInfo(); - envlibcpp::Entity& getFirstEntity(); - envlibcpp::Entity& getEntity(int entityId); + Entity& getFirstEntity(); + Entity& getEntity(int entityId); private: int id; std::string name; diff --git a/tests b/tests old mode 100755 new mode 100644