From 21ff8e96d44cd18b881b4240ee2e88b6e4697947 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Sat, 13 Jul 2024 14:58:24 +0300 Subject: [PATCH 01/20] new: - Added `PopulateIslandService` class to handle initial population of the island. feat: - Integrated `PopulateIslandService` in `SimulationService` to populate the island before starting the simulation. - Introduced `createPrototypes` method in `SimulationService` to create organism prototypes using the updated `OrganismFactory`. - Added support for reading `new_master_config.yaml` in `OrganismFactory` for dynamic organism creation. - New 'OrganismFactory' class patch: - Modified `SimulationService` to run the `populateIsland` method once before starting the periodic task execution. - Updated `MapCreator` class to initialize the island and populate it using the updated service. - Refactored `await` method in `SimulationService` to improve readability and error handling. deleted: - Unused files --- island/src/main/java/org/island/Main.java | 21 +-- .../java/org/island/abilities/Eatable.java | 7 - .../java/org/island/abilities/Movable.java | 7 - .../org/island/abilities/Reproducible.java | 7 - .../main/java/org/island/animals/Animal.java | 169 ------------------ .../java/org/island/animals/GrassEater.java | 11 -- .../java/org/island/animals/Predator.java | 13 -- .../org/island/animals/grasseaters/Boar.java | 12 -- .../island/animals/grasseaters/Buffalo.java | 12 -- .../animals/grasseaters/Caterpillar.java | 13 -- .../org/island/animals/grasseaters/Deer.java | 12 -- .../org/island/animals/grasseaters/Duck.java | 12 -- .../org/island/animals/grasseaters/Goat.java | 12 -- .../org/island/animals/grasseaters/Horse.java | 13 -- .../org/island/animals/grasseaters/Mouse.java | 12 -- .../island/animals/grasseaters/Rabbit.java | 13 -- .../org/island/animals/grasseaters/Sheep.java | 12 -- .../org/island/animals/predators/Bear.java | 12 -- .../org/island/animals/predators/Eagle.java | 12 -- .../org/island/animals/predators/Fox.java | 12 -- .../org/island/animals/predators/Python.java | 15 -- .../org/island/animals/predators/Wolf.java | 12 -- .../main/java/org/island/entity/Group.java | 17 +- .../main/java/org/island/entity/Organism.java | 136 +++----------- .../java/org/island/entity/Simulation.java | 15 -- .../main/java/org/island/location/Island.java | 15 +- .../java/org/island/location/Location.java | 39 +--- .../main/java/org/island/plants/Growable.java | 5 - .../src/main/java/org/island/plants/Herb.java | 11 -- .../main/java/org/island/plants/Plant.java | 13 -- .../src/main/java/org/island/repo/Limit.java | 12 -- .../main/java/org/island/repo/MapCreator.java | 89 --------- .../java/org/island/repo/OrganismFactory.java | 41 +++++ .../java/org/island/repo/OrganismInfo.java | 37 ---- .../island/repo/factory/EntityFactory.java | 79 -------- .../java/org/island/repo/factory/Factory.java | 11 -- .../island/repo/factory/OrganismFactory.java | 23 --- .../grasseaters/BoarFactory.java | 42 ----- .../grasseaters/BuffaloFactory.java | 43 ----- .../grasseaters/CaterpillarFactory.java | 42 ----- .../grasseaters/DeerFactory.java | 43 ----- .../grasseaters/DuckFactory.java | 42 ----- .../grasseaters/GoatFactory.java | 42 ----- .../grasseaters/HorseFactory.java | 42 ----- .../grasseaters/MouseFactory.java | 42 ----- .../grasseaters/RabbitFactory.java | 41 ----- .../grasseaters/SheepFactory.java | 42 ----- .../predators/BearFactory.java | 41 ----- .../predators/EagleFactory.java | 42 ----- .../predators/FoxFactory.java | 42 ----- .../predators/PythonFactory.java | 42 ----- .../predators/WolfFactory.java | 41 ----- .../factory/plant_factories/HerbFactory.java | 42 ----- ...roduceTaskService.java => EatService.java} | 7 +- .../org/island/services/EatTaskService.java | 20 --- ...gryTaskService.java => HungryService.java} | 20 +-- .../org/island/services/KillTaskService.java | 18 -- .../org/island/services/MoveTaskService.java | 3 +- .../services/OrganismWorkerService.java | 23 +-- .../services/PopulateIslandService.java | 31 ++++ .../island/services/SimulationService.java | 68 +++++++ .../services/SimulationWorkerService.java | 58 ------ .../java/org/island/services/TaskService.java | 2 + .../main/java/org/island/settings/Config.java | 16 +- .../org/island/settings/CreatureConfig.java | 24 +++ .../java/org/island/settings/Default.java | 81 +-------- .../main/java/org/island/util/Fullness.java | 8 - .../java/org/island/view/ConsoleView.java | 17 +- .../animals_initial_parameters_config.yaml | 68 ------- .../configuration/eat_chances_config.yaml | 68 ------- .../resources/configuration/icons_config.yaml | 18 -- .../configuration/island_config.yaml | 4 - .../configuration/lifecycle_config.yaml | 4 - 73 files changed, 250 insertions(+), 1943 deletions(-) delete mode 100644 island/src/main/java/org/island/abilities/Eatable.java delete mode 100644 island/src/main/java/org/island/abilities/Movable.java delete mode 100644 island/src/main/java/org/island/abilities/Reproducible.java delete mode 100644 island/src/main/java/org/island/animals/Animal.java delete mode 100644 island/src/main/java/org/island/animals/GrassEater.java delete mode 100644 island/src/main/java/org/island/animals/Predator.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Boar.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Buffalo.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Caterpillar.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Deer.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Duck.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Goat.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Horse.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Mouse.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Rabbit.java delete mode 100644 island/src/main/java/org/island/animals/grasseaters/Sheep.java delete mode 100644 island/src/main/java/org/island/animals/predators/Bear.java delete mode 100644 island/src/main/java/org/island/animals/predators/Eagle.java delete mode 100644 island/src/main/java/org/island/animals/predators/Fox.java delete mode 100644 island/src/main/java/org/island/animals/predators/Python.java delete mode 100644 island/src/main/java/org/island/animals/predators/Wolf.java delete mode 100644 island/src/main/java/org/island/entity/Simulation.java delete mode 100644 island/src/main/java/org/island/plants/Growable.java delete mode 100644 island/src/main/java/org/island/plants/Herb.java delete mode 100644 island/src/main/java/org/island/plants/Plant.java delete mode 100644 island/src/main/java/org/island/repo/Limit.java delete mode 100644 island/src/main/java/org/island/repo/MapCreator.java create mode 100644 island/src/main/java/org/island/repo/OrganismFactory.java delete mode 100644 island/src/main/java/org/island/repo/OrganismInfo.java delete mode 100644 island/src/main/java/org/island/repo/factory/EntityFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/Factory.java delete mode 100644 island/src/main/java/org/island/repo/factory/OrganismFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BoarFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BuffaloFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/CaterpillarFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DeerFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DuckFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/GoatFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/HorseFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/MouseFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/RabbitFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/SheepFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/predators/BearFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/predators/EagleFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/predators/FoxFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/predators/PythonFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/animal_factories/predators/WolfFactory.java delete mode 100644 island/src/main/java/org/island/repo/factory/plant_factories/HerbFactory.java rename island/src/main/java/org/island/services/{ReproduceTaskService.java => EatService.java} (53%) delete mode 100644 island/src/main/java/org/island/services/EatTaskService.java rename island/src/main/java/org/island/services/{HungryTaskService.java => HungryService.java} (80%) delete mode 100644 island/src/main/java/org/island/services/KillTaskService.java create mode 100644 island/src/main/java/org/island/services/PopulateIslandService.java create mode 100644 island/src/main/java/org/island/services/SimulationService.java delete mode 100644 island/src/main/java/org/island/services/SimulationWorkerService.java create mode 100644 island/src/main/java/org/island/settings/CreatureConfig.java delete mode 100644 island/src/main/java/org/island/util/Fullness.java delete mode 100644 island/src/main/resources/configuration/animals_initial_parameters_config.yaml delete mode 100644 island/src/main/resources/configuration/eat_chances_config.yaml delete mode 100644 island/src/main/resources/configuration/icons_config.yaml delete mode 100644 island/src/main/resources/configuration/island_config.yaml delete mode 100644 island/src/main/resources/configuration/lifecycle_config.yaml diff --git a/island/src/main/java/org/island/Main.java b/island/src/main/java/org/island/Main.java index ac08ae9..fb1c0d1 100644 --- a/island/src/main/java/org/island/Main.java +++ b/island/src/main/java/org/island/Main.java @@ -1,28 +1,21 @@ package org.island; -import org.island.entity.Simulation; import org.island.location.Island; -import org.island.repo.MapCreator; -import org.island.repo.factory.EntityFactory; -import org.island.repo.factory.Factory; -import org.island.services.SimulationWorkerService; +import org.island.services.PopulateIslandService; +import org.island.services.SimulationService; import org.island.settings.Config; import org.island.view.ConsoleView; import org.island.view.View; - public class Main { public static void main(String[] args) { System.out.printf("Hello and Welcome to the Island Simulation!"); Config config = Config.getConfig(); - Factory entityFactory = new EntityFactory(); - MapCreator mapCreator = new MapCreator(entityFactory); - Island island = mapCreator.createIsland(config); - View view = new ConsoleView(island, entityFactory); - Simulation game = new Simulation(island, entityFactory, view); - SimulationWorkerService gameWorker = new SimulationWorkerService(game); + Island island = new Island(config); + PopulateIslandService populateIslandService = new PopulateIslandService(); + View view = new ConsoleView(island); + SimulationService gameWorker = new SimulationService(view, island, config.getPeriod(), populateIslandService); gameWorker.start(); - } -} \ No newline at end of file +} diff --git a/island/src/main/java/org/island/abilities/Eatable.java b/island/src/main/java/org/island/abilities/Eatable.java deleted file mode 100644 index e7d4174..0000000 --- a/island/src/main/java/org/island/abilities/Eatable.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.island.abilities; - -import org.island.location.Location; - -public interface Eatable { - public void eat(Location location); -} diff --git a/island/src/main/java/org/island/abilities/Movable.java b/island/src/main/java/org/island/abilities/Movable.java deleted file mode 100644 index d49f742..0000000 --- a/island/src/main/java/org/island/abilities/Movable.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.island.abilities; - -import org.island.location.Location; - -public interface Movable { - public void move(Location location); -} diff --git a/island/src/main/java/org/island/abilities/Reproducible.java b/island/src/main/java/org/island/abilities/Reproducible.java deleted file mode 100644 index 742a8af..0000000 --- a/island/src/main/java/org/island/abilities/Reproducible.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.island.abilities; - -import org.island.location.Location; - -public interface Reproducible { - public void reproduce(Location location); -} diff --git a/island/src/main/java/org/island/animals/Animal.java b/island/src/main/java/org/island/animals/Animal.java deleted file mode 100644 index 77df6d9..0000000 --- a/island/src/main/java/org/island/animals/Animal.java +++ /dev/null @@ -1,169 +0,0 @@ -package org.island.animals; - -import lombok.AllArgsConstructor; -import lombok.Data; -import org.island.abilities.Eatable; -import org.island.abilities.Movable; -import org.island.entity.Organism; -import org.island.exceptions.OrganismNotFound; -import org.island.location.Location; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; -import org.island.repo.maps.Ration; -import org.island.repo.maps.Residents; -import org.island.util.Randomizer; - -import java.util.*; -import java.util.stream.Collectors; - -public abstract class Animal extends Organism implements Eatable, Movable { - - public Animal(OrganismInfo info, Limit limit) { - super(info, limit); - } - - - public void move(Location currentLocation) { - int speed = getSpeed(); - int countOfSteps = Randomizer.random(speed); - - Location destination = findDestinationLocation(countOfSteps, currentLocation); - - if (moveTo(destination)) { - remove(currentLocation); - } - } - - - public void eat(Location location) { - location.getLock().lock(); - - try { - Ration ration = getRation(); - double currentWeight = getCurrentWeight(); - double deltaWeight = getMaxWeight() - currentWeight; - Residents residents = location.getResidents(); - Organism prey = getTarget(ration, residents); - String preyType = prey.getType(); - - if (prey.isAlive()) { - int chanceToKill = ration.get(preyType); - int predatorTry = Randomizer.random(0, 100); - - if (predatorTry <= chanceToKill) { - prey.getDead(); - } else return; - } - - double currentTargetWeight = prey.getCurrentWeight(); - double predatorFinalWeight; - - if (deltaWeight > currentTargetWeight) { - predatorFinalWeight = currentWeight + currentTargetWeight; - prey.setCurrentWeight(0); - } else { - predatorFinalWeight = currentWeight + deltaWeight; - prey.setCurrentWeight(currentTargetWeight - deltaWeight); - } - - setCurrentWeight(predatorFinalWeight); - } finally { - location.getLock().unlock(); - } - } - - public boolean findSomeFood(Ration ration, Residents residents) { - return residents - .entrySet() - .stream() - .filter(resident -> resident.getValue().size() > 0) - .map(Map.Entry::getKey) - .anyMatch(ration::containsKey); - } - - private Organism getTarget(Ration ration, Residents residents) { - Set preys = residents - .entrySet() - .stream() - .filter(resident -> resident.getValue().size() > 0) - .filter(resident -> ration.containsKey(resident.getKey())) - .max(Comparator.comparingInt(resident -> ration.get(resident.getKey()))) - .orElseThrow(() -> new OrganismNotFound("target / prey not found")) - .getValue(); - - return preys - .stream() - .skip(Randomizer.random(0, preys.size())) - .iterator() - .next(); - - } - - private List getAvailableDirections(Set visitedLocations, Location destination){ - return destination - .getDirections() - .stream() - .filter(location -> !visitedLocations.contains(location)) - .collect(Collectors.toList()); - } - - private Location findDestinationLocation(int countOfSteps, Location location){ - Set visitedLocations = new HashSet<>(); - Location destination = location; - - while(countOfSteps > 0){ - visitedLocations.add(destination); - List directions = getAvailableDirections(visitedLocations, destination); - int countOfDirections = directions.size(); - - if (countOfDirections > 0){ - int selectedDirection = Randomizer.random(0, countOfDirections); - destination = directions.get(selectedDirection); - } - countOfSteps--; - } - return destination; - } - - private boolean moveTo(Location destination){ - destination.getLock().lock(); - - try{ - String type = getType(); - Residents residents = destination.getResidents(); - Set sameKindOrganisms = residents.get(type); - int countOfSameKindOrganisms = sameKindOrganisms.size(); - int maxCount = getMaxPopulation(); - if (countOfSameKindOrganisms < maxCount){ - return sameKindOrganisms.add(this); - } else return false; - } finally { - destination.getLock().unlock(); - } - } - - private void remove(Location location){ - location.getLock().lock(); - - try{ - Residents residents = location.getResidents(); - String type = getType(); - Set sameKindOrganisms = residents.get(type); - if (organismStillAvailable(location)){ - sameKindOrganisms.remove(this); - } - } finally { - location.getLock().unlock(); - } - } - - private boolean organismStillAvailable(Location location){ - Residents residents = location.getResidents(); - String type = getType(); - Set organismStillAvailable = residents.get(type); - return organismStillAvailable.contains(this); - } - - - -} diff --git a/island/src/main/java/org/island/animals/GrassEater.java b/island/src/main/java/org/island/animals/GrassEater.java deleted file mode 100644 index ea83b25..0000000 --- a/island/src/main/java/org/island/animals/GrassEater.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.island.animals; - -import org.island.abilities.Eatable; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public abstract class GrassEater extends Animal { - public GrassEater(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/Predator.java b/island/src/main/java/org/island/animals/Predator.java deleted file mode 100644 index 6086ded..0000000 --- a/island/src/main/java/org/island/animals/Predator.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.island.animals; - -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public abstract class Predator extends Animal { - - public Predator(OrganismInfo info, Limit limit){ - super(info, limit); - } - -} - diff --git a/island/src/main/java/org/island/animals/grasseaters/Boar.java b/island/src/main/java/org/island/animals/grasseaters/Boar.java deleted file mode 100644 index b6f7c23..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Boar.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Boar extends GrassEater { - - public Boar(OrganismInfo info, Limit limit) { - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Buffalo.java b/island/src/main/java/org/island/animals/grasseaters/Buffalo.java deleted file mode 100644 index a0550b7..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Buffalo.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Buffalo extends GrassEater { - - public Buffalo(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Caterpillar.java b/island/src/main/java/org/island/animals/grasseaters/Caterpillar.java deleted file mode 100644 index 07b5600..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Caterpillar.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Caterpillar extends GrassEater { - - public Caterpillar(OrganismInfo info, Limit limit){ - super(info, limit); - } - -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Deer.java b/island/src/main/java/org/island/animals/grasseaters/Deer.java deleted file mode 100644 index bdc79b6..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Deer.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Deer extends GrassEater { - - public Deer(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Duck.java b/island/src/main/java/org/island/animals/grasseaters/Duck.java deleted file mode 100644 index f6672ae..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Duck.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Duck extends GrassEater { - - public Duck(OrganismInfo info, Limit limit) { - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Goat.java b/island/src/main/java/org/island/animals/grasseaters/Goat.java deleted file mode 100644 index 9ff0f3a..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Goat.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Goat extends GrassEater { - - public Goat(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Horse.java b/island/src/main/java/org/island/animals/grasseaters/Horse.java deleted file mode 100644 index ee5026c..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Horse.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Horse extends GrassEater { - - public Horse(OrganismInfo info, Limit limit) { - super(info, limit); - } -} - diff --git a/island/src/main/java/org/island/animals/grasseaters/Mouse.java b/island/src/main/java/org/island/animals/grasseaters/Mouse.java deleted file mode 100644 index 5c393bc..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Mouse.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Mouse extends GrassEater { - - public Mouse(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Rabbit.java b/island/src/main/java/org/island/animals/grasseaters/Rabbit.java deleted file mode 100644 index 6d74392..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Rabbit.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Rabbit extends GrassEater { - - public Rabbit(OrganismInfo info, Limit limit){ - super(info, limit); - } - -} diff --git a/island/src/main/java/org/island/animals/grasseaters/Sheep.java b/island/src/main/java/org/island/animals/grasseaters/Sheep.java deleted file mode 100644 index 2ea16b9..0000000 --- a/island/src/main/java/org/island/animals/grasseaters/Sheep.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.grasseaters; - -import org.island.animals.GrassEater; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Sheep extends GrassEater { - - public Sheep(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/predators/Bear.java b/island/src/main/java/org/island/animals/predators/Bear.java deleted file mode 100644 index 720fcea..0000000 --- a/island/src/main/java/org/island/animals/predators/Bear.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.predators; - -import org.island.animals.Predator; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Bear extends Predator { - - public Bear(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/predators/Eagle.java b/island/src/main/java/org/island/animals/predators/Eagle.java deleted file mode 100644 index aeb1aec..0000000 --- a/island/src/main/java/org/island/animals/predators/Eagle.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.predators; - -import org.island.animals.Predator; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Eagle extends Predator { - - public Eagle(OrganismInfo info, Limit limit) { - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/predators/Fox.java b/island/src/main/java/org/island/animals/predators/Fox.java deleted file mode 100644 index 4823eb0..0000000 --- a/island/src/main/java/org/island/animals/predators/Fox.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.predators; - -import org.island.animals.Predator; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Fox extends Predator { - - public Fox(OrganismInfo info, Limit limit) { - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/predators/Python.java b/island/src/main/java/org/island/animals/predators/Python.java deleted file mode 100644 index 9ad9582..0000000 --- a/island/src/main/java/org/island/animals/predators/Python.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.island.animals.predators; - -import org.island.abilities.Eatable; -import org.island.abilities.Movable; -import org.island.abilities.Reproducible; -import org.island.animals.Predator; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Python extends Predator { - - public Python(OrganismInfo info, Limit limit) { - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/animals/predators/Wolf.java b/island/src/main/java/org/island/animals/predators/Wolf.java deleted file mode 100644 index b2de8a2..0000000 --- a/island/src/main/java/org/island/animals/predators/Wolf.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.animals.predators; - - -import org.island.animals.Predator; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Wolf extends Predator { - public Wolf(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/entity/Group.java b/island/src/main/java/org/island/entity/Group.java index 6fe9e01..0ab11ae 100644 --- a/island/src/main/java/org/island/entity/Group.java +++ b/island/src/main/java/org/island/entity/Group.java @@ -1,5 +1,10 @@ package org.island.entity; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@Getter public enum Group { WOLF("Wolf", 0), PYTHON("Python", 1), @@ -21,18 +26,6 @@ public enum Group { private final String type; private final int groupId; - public int getGroupId(){ - return groupId; - } - - public String getType(){ - return type; - } - - Group(String type, int groupId){ - this.type = type; - this.groupId = groupId; - } } diff --git a/island/src/main/java/org/island/entity/Organism.java b/island/src/main/java/org/island/entity/Organism.java index e68ff8d..f081518 100644 --- a/island/src/main/java/org/island/entity/Organism.java +++ b/island/src/main/java/org/island/entity/Organism.java @@ -1,118 +1,26 @@ package org.island.entity; -import lombok.Data; -import org.island.abilities.Reproducible; -import org.island.location.Location; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.EntityFactory; -import org.island.repo.maps.Ration; -import org.island.repo.maps.Residents; -import org.island.util.Fullness; - -import java.util.Objects; -import java.util.Set; - -@Data -public abstract class Organism implements Reproducible { - private final OrganismInfo info; - private final Limit limit; - - public Organism(OrganismInfo info, Limit limit){ - this.info = info; - this.limit = limit; - } - - public String getType(){ - return info.getType(); - } - - public int getGroupId(){ - return info.getGroupId(); - } - - public boolean isAlive(){ - return info.isAlive(); - } - - public double getCurrentWeight(){ - return info.getCurrentWeight(); - } - - public void setCurrentWeight(double currentWeight){ - info.setCurrentWeight(currentWeight); - } - - public String getIcon(){ - return info.getIcon(); - } - - public Fullness getFullness(){ - return info.getFullness(); - } - public void setFullness(Fullness fullness){ - info.setFullness(fullness); - } - - public Ration getRation(){ - return info.getRation(); - } - - public double getMaxWeight(){ - return limit.getMaxWeight(); - } - - public int getMaxPopulation(){ - return limit.getMaxPopulation(); - } - - public int getSpeed(){ - return limit.getSpeed(); - } - - public void getDead(){ - info.setAlive(false); - } - - @Override - public void reproduce(Location location) { - location.getLock().lock(); - try { - Residents residents = location.getResidents(); - String type = getType(); - Set sameOrganisms = residents.get(type); - int maxLimit = getMaxPopulation(); - - if(sameOrganisms.contains(this) && sameOrganisms.size() >= 2 && sameOrganisms.size() < maxLimit){ - Organism organism = EntityFactory.getFactory().create(type); - sameOrganisms.add(organism); - } - } finally { - location.getLock().unlock(); - } - } - - public void killOrganism(Location location){ - location.getLock().lock(); - try{ - String type = getType(); - location.getResidents().get(type).remove(this); - } finally { - location.getLock().unlock(); - } - } - - @Override - public boolean equals(Object o){ - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Organism organism = (Organism) o; - return Objects.equals(info, organism.info); - } - - @Override - public int hashCode(){ - return Objects.hash(info); - } +import lombok.*; +import org.island.repo.maps.Ration; +import org.island.services.utils.Fullness; + +@Builder +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode +public class Organism { + private String type; + private int groupId; + private int organismId; + private boolean isAlive; + private double currentWeight; + private String icon; + private Fullness fullness; + private Ration ration; + private double maxWeight; + private int maxPopulation; + private int speed; } diff --git a/island/src/main/java/org/island/entity/Simulation.java b/island/src/main/java/org/island/entity/Simulation.java deleted file mode 100644 index 35861a5..0000000 --- a/island/src/main/java/org/island/entity/Simulation.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.island.entity; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.island.location.Island; -import org.island.repo.factory.Factory; -import org.island.view.View; - -@Getter -@RequiredArgsConstructor -public class Simulation { - private final Island island; - private final Factory entityFactory; - private final View view; -} diff --git a/island/src/main/java/org/island/location/Island.java b/island/src/main/java/org/island/location/Island.java index 270923c..52ca09d 100644 --- a/island/src/main/java/org/island/location/Island.java +++ b/island/src/main/java/org/island/location/Island.java @@ -1,6 +1,7 @@ package org.island.location; -import lombok.Data; +import lombok.Getter; +import org.island.settings.Config; /* 06/15/2024: Island Class: Manages the entire island grid using a 2-dimensional array of Location objects. @@ -9,16 +10,12 @@ and toString() methods for all fields in the class. */ -@Data +@Getter public class Island { - private Location[][] grid; + private final Location[][] GRID; - public Island(int numRows, int numCols){ - this.grid = new Location[numRows] [numCols]; - } - - public Location[][] getIslandGrid(){ - return grid; + public Island(Config config) { + this.GRID = new Location[config.getRows()] [config.getColumns()]; } } diff --git a/island/src/main/java/org/island/location/Location.java b/island/src/main/java/org/island/location/Location.java index 8347b27..00f6c05 100644 --- a/island/src/main/java/org/island/location/Location.java +++ b/island/src/main/java/org/island/location/Location.java @@ -1,11 +1,6 @@ package org.island.location; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import org.island.animals.Animal; -import org.island.plants.Plant; +import lombok.*; import org.island.repo.maps.Residents; import java.util.List; @@ -24,36 +19,12 @@ and toString() methods for all fields in the class. */ @Data -@AllArgsConstructor +@RequiredArgsConstructor +@ToString public class Location { private final int row; private final int column; - - @Getter private List directions; - - @Setter - private final Residents residents; - - @Getter - private final Lock lock; - - public Location(int row, int column){ - this.row = row; - this.column = column; - this.residents = new Residents(); - this.lock = new ReentrantLock(true); - } - - public void setDirection(List directions){ - this.directions = directions; - } - - @Override - public String toString(){ - return "Location" + "[" + row + "]" + "[" + column + "]"; - } - - private Plant plant; - private Animal animal; + private Residents residents; + private Lock lock; } diff --git a/island/src/main/java/org/island/plants/Growable.java b/island/src/main/java/org/island/plants/Growable.java deleted file mode 100644 index 1b6d211..0000000 --- a/island/src/main/java/org/island/plants/Growable.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.island.plants; - -public interface Growable { - public void grow(); -} diff --git a/island/src/main/java/org/island/plants/Herb.java b/island/src/main/java/org/island/plants/Herb.java deleted file mode 100644 index d20f7f8..0000000 --- a/island/src/main/java/org/island/plants/Herb.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.island.plants; - -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public class Herb extends Plant { - - public Herb(OrganismInfo info, Limit limit) { - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/plants/Plant.java b/island/src/main/java/org/island/plants/Plant.java deleted file mode 100644 index 7f45f3d..0000000 --- a/island/src/main/java/org/island/plants/Plant.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.island.plants; - - -import org.island.entity.Organism; -import org.island.repo.Limit; -import org.island.repo.OrganismInfo; - -public abstract class Plant extends Organism { - - public Plant(OrganismInfo info, Limit limit){ - super(info, limit); - } -} diff --git a/island/src/main/java/org/island/repo/Limit.java b/island/src/main/java/org/island/repo/Limit.java deleted file mode 100644 index 84ab5a6..0000000 --- a/island/src/main/java/org/island/repo/Limit.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.repo; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class Limit { - private double maxWeight; - private int maxPopulation; - private int speed; -} diff --git a/island/src/main/java/org/island/repo/MapCreator.java b/island/src/main/java/org/island/repo/MapCreator.java deleted file mode 100644 index 6402935..0000000 --- a/island/src/main/java/org/island/repo/MapCreator.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.island.repo; - -import org.island.entity.Organism; -import org.island.location.Island; -import org.island.location.Location; -import org.island.repo.factory.Factory; -import org.island.repo.maps.Residents; -import org.island.settings.Config; -import org.island.util.Randomizer; - -import java.util.*; - -public class MapCreator { - - private final Factory entityFactory; - private int rows; - private int columns; - - public MapCreator(Factory factory) { - this.entityFactory = factory; - } - - public Island createIsland(Config config) { - this.rows = config.getRows(); - this.columns = config.getColumns(); - - Island island = new Island(rows, columns); - - createEmptyGrid(island); - populateIsland(island); - findLocationNeighbors(island); - - return island; - } - - private void createEmptyGrid(Island island) { - Location[][] grid = island.getIslandGrid(); - - for (int row = 0; row < grid.length; row++) { - for (int column = 0; column < grid[row].length; column++) { - grid[row][column] = new Location(row, column); - } - } - } - - private void populateIsland(Island island) { - Location[][] grid = island.getIslandGrid(); - Map prototypes = entityFactory.getPrototypes(); - - for (Location[] value : grid) { - for (Location location : value) { - Residents residents = location.getResidents(); - - for (Organism organism : prototypes.values()) { - String type = organism.getType(); - int maxCount = organism.getMaxPopulation(); - int count = Randomizer.random(maxCount / 2, maxCount); - Set organismSet = new HashSet<>(); - - for (int i = 0; i < count; i++) { - organismSet.add(entityFactory.create(type)); - } - residents.put(type, organismSet); - } - } - } - } - - private void findLocationNeighbors(Island island) { - Location[][] grid = island.getIslandGrid(); - for (int row = 0; row < grid.length; row++) { - for (int col = 0; col < grid[row].length; col++) { - Location location = grid[row][col]; - List neighbours = findNeighbors(row, col, grid); - location.setDirection(neighbours); - } - } - } - - private List findNeighbors(int row, int col, Location[][] grid) { - List result = new ArrayList<>(); - if (row > 0) result.add(grid[row - 1][col]); - if (col > 0) result.add(grid[row][col - 1]); - if (row < rows - 1) result.add(grid[row + 1][col]); - if (col < columns - 1) result.add(grid[row][col + 1]); - - return result; - } -} diff --git a/island/src/main/java/org/island/repo/OrganismFactory.java b/island/src/main/java/org/island/repo/OrganismFactory.java new file mode 100644 index 0000000..ed495bd --- /dev/null +++ b/island/src/main/java/org/island/repo/OrganismFactory.java @@ -0,0 +1,41 @@ +package org.island.repo; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import lombok.SneakyThrows; +import org.island.settings.CreatureConfig; +import org.island.entity.Group; +import org.island.entity.Organism; + +import java.io.InputStream; + +public class OrganismFactory { + private static final CreatureConfig config; + + private OrganismFactory() { + } + + static { + ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); + InputStream inputStream = OrganismFactory.class.getClassLoader().getResourceAsStream("new_master_config.yaml"); + try { + config = mapper.readValue(inputStream, CreatureConfig.class); + } catch (Exception e) { + throw new RuntimeException("Failed to load configuration", e); + } + } + + @SneakyThrows + public static Organism createOrganism(Group group) { + CreatureConfig.AnimalParams params = config.getLimits().get(group.getType()); + return Organism.builder() + .type(group.getType()) + .groupId(group.getGroupId()) + .icon(config.getIcons().get(group.getType())) + .maxWeight(params.getMaxWeight()) + .maxPopulation(params.getMaxPopulation()) + .speed(params.getSpeed()) + .build(); + + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/repo/OrganismInfo.java b/island/src/main/java/org/island/repo/OrganismInfo.java deleted file mode 100644 index db9d604..0000000 --- a/island/src/main/java/org/island/repo/OrganismInfo.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.island.repo; - - -import lombok.*; -import org.island.repo.maps.Ration; -import org.island.util.Fullness; - -import java.util.Objects; - -@Builder -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class OrganismInfo { - private String type; - private int groupId; - private int organismId; - private boolean isAlive; - private double currentWeight; - private String icon; - private Fullness fullness; - private Ration ration; - - @Override - public boolean equals(Object o){ - if(this == o) return true; - if(o ==null || getClass() != o.getClass()) return false; - OrganismInfo that = (OrganismInfo) o; - return groupId == that.groupId && organismId == that.organismId; - } - - @Override - public int hashCode(){ - return Objects.hash(groupId, organismId); - } -} diff --git a/island/src/main/java/org/island/repo/factory/EntityFactory.java b/island/src/main/java/org/island/repo/factory/EntityFactory.java deleted file mode 100644 index bcb3e63..0000000 --- a/island/src/main/java/org/island/repo/factory/EntityFactory.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.island.repo.factory; - -import lombok.AllArgsConstructor; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.factory.animal_factories.grasseaters.*; -import org.island.repo.factory.animal_factories.predators.*; -import org.island.repo.factory.plant_factories.HerbFactory; - -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Map; - -@AllArgsConstructor -public class EntityFactory implements Factory{ - private static EntityFactory FACTORY; - - private final Map factoryMap; - private final Map prototypes; - - public EntityFactory(){ - factoryMap = createFactoryMap(); - prototypes = createPrototypes(); - } - - public static EntityFactory getFactory(){ - if (FACTORY == null){ - FACTORY = new EntityFactory(); - } - return FACTORY; - } - - @Override - public Map getPrototypes() { - return prototypes; - } - - @Override - public Organism create(String type) { - OrganismFactory factory = factoryMap.get(type); - Organism organism = factory.create(type); - if (organism != null){ - return organism; - } else throw new IllegalArgumentException("Wrong type of creation - " + type); - } - - private Map createFactoryMap(){ - Map factories = new LinkedHashMap<>(){{ - put(Group.WOLF.getType(), new WolfFactory()); - put(Group.PYTHON.getType(), new PythonFactory()); - put(Group.FOX.getType(), new FoxFactory()); - put(Group.BEAR.getType(), new BearFactory()); - put(Group.EAGLE.getType(), new EagleFactory()); - put(Group.HORSE.getType(), new HorseFactory()); - put(Group.DEER.getType(), new DeerFactory()); - put(Group.RABBIT.getType(), new RabbitFactory()); - put(Group.MOUSE.getType(), new MouseFactory()); - put(Group.GOAT.getType(), new GoatFactory()); - put(Group.SHEEP.getType(), new SheepFactory()); - put(Group.BOAR.getType(), new BoarFactory()); - put(Group.BUFFALO.getType(), new BuffaloFactory()); - put(Group.DUCK.getType(), new DuckFactory()); - put(Group.CATERPILLAR.getType(), new CaterpillarFactory()); - put(Group.HERB.getType(), new HerbFactory()); - }}; - return Collections.unmodifiableMap(factories); - } - private Map createPrototypes(){ - Map result = new LinkedHashMap<>(); - - for (Map.Entry pair : factoryMap.entrySet()){ - String type = pair.getKey(); - Organism organism = pair.getValue().create(type); - result.put(type, organism); - } - return Collections.unmodifiableMap(result); - } - -} diff --git a/island/src/main/java/org/island/repo/factory/Factory.java b/island/src/main/java/org/island/repo/factory/Factory.java deleted file mode 100644 index a7d74a4..0000000 --- a/island/src/main/java/org/island/repo/factory/Factory.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.island.repo.factory; - -import org.island.entity.Organism; - -import java.util.Map; - -public interface Factory { - Organism create(String type); - Map getPrototypes(); - -} diff --git a/island/src/main/java/org/island/repo/factory/OrganismFactory.java b/island/src/main/java/org/island/repo/factory/OrganismFactory.java deleted file mode 100644 index 7607fa0..0000000 --- a/island/src/main/java/org/island/repo/factory/OrganismFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.island.repo.factory; - -import org.island.entity.Organism; -import org.island.repo.Limit; -import org.island.repo.maps.Ration; -import org.island.settings.Config; -import org.island.util.Fullness; - -import java.io.ObjectInputFilter; - -public abstract class OrganismFactory { - protected int groupId; - protected String type; - protected Config config = Config.getConfig(); - protected boolean isAlive = true; - protected double currentWeight; - protected Fullness fullness = Fullness.ALL_RIGHT; - protected Ration ration; - protected Limit limit; - protected String icon; - - public abstract Organism create(String type); -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BoarFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BoarFactory.java deleted file mode 100644 index 23c2504..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BoarFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Boar; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class BoarFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public BoarFactory() { - groupId = Group.BOAR.getGroupId(); - type = Group.BOAR.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Boar(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BuffaloFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BuffaloFactory.java deleted file mode 100644 index 0436906..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/BuffaloFactory.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Boar; -import org.island.animals.grasseaters.Buffalo; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class BuffaloFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public BuffaloFactory(){ - groupId = Group.BUFFALO.getGroupId(); - type = Group.BUFFALO.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type){ - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Buffalo(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/CaterpillarFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/CaterpillarFactory.java deleted file mode 100644 index 3c950d0..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/CaterpillarFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Caterpillar; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class CaterpillarFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public CaterpillarFactory() { - groupId = Group.CATERPILLAR.getGroupId(); - type = Group.CATERPILLAR.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Caterpillar(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DeerFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DeerFactory.java deleted file mode 100644 index e62e6c3..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DeerFactory.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Deer; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class DeerFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public DeerFactory() { - groupId = Group.DEER.getGroupId(); - type = Group.DEER.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Deer(organismInfo, limit); - } -} - diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DuckFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DuckFactory.java deleted file mode 100644 index d2850a5..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/DuckFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Duck; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class DuckFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public DuckFactory() { - groupId = Group.DUCK.getGroupId(); - type = Group.DUCK.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Duck(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/GoatFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/GoatFactory.java deleted file mode 100644 index 183f448..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/GoatFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Mouse; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class GoatFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public GoatFactory(){ - groupId = Group.GOAT.getGroupId(); - type = Group.GOAT.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type){ - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Mouse(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/HorseFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/HorseFactory.java deleted file mode 100644 index 4d3afb7..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/HorseFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Horse; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class HorseFactory extends OrganismFactory { - - public static final AtomicInteger ID = new AtomicInteger(0); - - public HorseFactory(){ - groupId = Group.HORSE.getGroupId(); - type = Group.HORSE.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type){ - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Horse(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/MouseFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/MouseFactory.java deleted file mode 100644 index 6f6369c..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/MouseFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Mouse; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class MouseFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public MouseFactory(){ - groupId = Group.MOUSE.getGroupId(); - type = Group.MOUSE.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type){ - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Mouse(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/RabbitFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/RabbitFactory.java deleted file mode 100644 index 9a46b3f..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/RabbitFactory.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Rabbit; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class RabbitFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public RabbitFactory() { - groupId = Group.RABBIT.getGroupId(); - type = Group.RABBIT.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Rabbit(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/SheepFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/SheepFactory.java deleted file mode 100644 index 8812093..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/grasseaters/SheepFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.grasseaters; - -import org.island.animals.grasseaters.Sheep; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class SheepFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public SheepFactory() { - groupId = Group.SHEEP.getGroupId(); - type = Group.SHEEP.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Sheep(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/predators/BearFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/predators/BearFactory.java deleted file mode 100644 index d93ca86..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/predators/BearFactory.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.island.repo.factory.animal_factories.predators; - -import org.island.animals.predators.Bear; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class BearFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public BearFactory(){ - groupId = Group.BEAR.getGroupId(); - type = Group.BEAR.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type){ - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Bear(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/predators/EagleFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/predators/EagleFactory.java deleted file mode 100644 index aac7467..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/predators/EagleFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.predators; - -import org.island.animals.predators.Eagle; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class EagleFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public EagleFactory(){ - groupId = Group.EAGLE.getGroupId(); - type = Group.EAGLE.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Eagle(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/predators/FoxFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/predators/FoxFactory.java deleted file mode 100644 index b7485d4..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/predators/FoxFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.predators; - -import org.island.animals.predators.Fox; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class FoxFactory extends OrganismFactory { - - public static final AtomicInteger ID = new AtomicInteger(0); - - public FoxFactory() { - groupId = Group.FOX.getGroupId(); - type = Group.FOX.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() *config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Fox(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/predators/PythonFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/predators/PythonFactory.java deleted file mode 100644 index a1200c4..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/predators/PythonFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.animal_factories.predators; - -import org.island.animals.predators.Python; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class PythonFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public PythonFactory() { - groupId = Group.PYTHON.getGroupId(); - type = Group.PYTHON.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Python(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/repo/factory/animal_factories/predators/WolfFactory.java b/island/src/main/java/org/island/repo/factory/animal_factories/predators/WolfFactory.java deleted file mode 100644 index 2beddb7..0000000 --- a/island/src/main/java/org/island/repo/factory/animal_factories/predators/WolfFactory.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.island.repo.factory.animal_factories.predators; - -import org.island.animals.predators.Wolf; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class WolfFactory extends OrganismFactory { - private final static AtomicInteger ID = new AtomicInteger(0); - - public WolfFactory() { - groupId = Group.WOLF.getGroupId(); - type = Group.WOLF.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type) { - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Wolf(organismInfo, limit); - - } -} diff --git a/island/src/main/java/org/island/repo/factory/plant_factories/HerbFactory.java b/island/src/main/java/org/island/repo/factory/plant_factories/HerbFactory.java deleted file mode 100644 index c3903ef..0000000 --- a/island/src/main/java/org/island/repo/factory/plant_factories/HerbFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.island.repo.factory.plant_factories; - -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.plants.Herb; -import org.island.repo.OrganismInfo; -import org.island.repo.factory.OrganismFactory; - -import java.util.concurrent.atomic.AtomicInteger; - -public class HerbFactory extends OrganismFactory { - - private static final AtomicInteger ID = new AtomicInteger(0); - - public HerbFactory(){ - groupId = Group.HERB.getGroupId(); - type = Group.HERB.getType(); - limit = config.getLimit(type); - currentWeight = limit.getMaxWeight() * config.getStartWeightFactor(); - ration = config.getRation(type); - icon = config.getIcon(type); - } - - @Override - public Organism create(String type){ - - int organismId = ID.getAndIncrement(); - - OrganismInfo organismInfo = OrganismInfo.builder() - .type(type) - .groupId(groupId) - .organismId(organismId) - .isAlive(isAlive) - .currentWeight(currentWeight) - .icon(icon) - .fullness(fullness) - .ration(ration) - .build(); - - return new Herb(organismInfo, limit); - } -} diff --git a/island/src/main/java/org/island/services/ReproduceTaskService.java b/island/src/main/java/org/island/services/EatService.java similarity index 53% rename from island/src/main/java/org/island/services/ReproduceTaskService.java rename to island/src/main/java/org/island/services/EatService.java index 12b1317..6ef877d 100644 --- a/island/src/main/java/org/island/services/ReproduceTaskService.java +++ b/island/src/main/java/org/island/services/EatService.java @@ -3,14 +3,15 @@ import org.island.entity.Organism; import org.island.location.Location; -public class ReproduceTaskService extends TaskService { - public ReproduceTaskService(Organism organism, Location location) { +//TODO Переписать +public class EatService extends TaskService { + + public EatService(Organism organism, Location location) { super(organism, location); } @Override public void run() { - organism.reproduce(location); } } diff --git a/island/src/main/java/org/island/services/EatTaskService.java b/island/src/main/java/org/island/services/EatTaskService.java deleted file mode 100644 index dda0504..0000000 --- a/island/src/main/java/org/island/services/EatTaskService.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.island.services; - -import org.island.animals.Animal; -import org.island.entity.Organism; -import org.island.location.Location; - -public class EatTaskService extends TaskService { - - public EatTaskService(Organism organism, Location location) { - super(organism, location); - } - - @Override - public void run() { - if (organism instanceof Animal) { - Animal animal = (Animal) organism; - animal.eat(location); - } - } -} diff --git a/island/src/main/java/org/island/services/HungryTaskService.java b/island/src/main/java/org/island/services/HungryService.java similarity index 80% rename from island/src/main/java/org/island/services/HungryTaskService.java rename to island/src/main/java/org/island/services/HungryService.java index 95e417d..b3a1908 100644 --- a/island/src/main/java/org/island/services/HungryTaskService.java +++ b/island/src/main/java/org/island/services/HungryService.java @@ -1,22 +1,22 @@ package org.island.services; -import org.island.animals.Animal; +import lombok.RequiredArgsConstructor; import org.island.entity.Organism; import org.island.location.Location; +import org.island.services.utils.Fullness; import org.island.settings.Config; -import org.island.util.Fullness; -public class HungryTaskService extends TaskService { +//TODO Переписать +@RequiredArgsConstructor +public class HungryService { + private final KillService killService; private static final double WELL_FED = 0.75; //TODO need different logic private static final double ALL_RIGHT = WELL_FED - 0.2; public static final double HUNGRY = ALL_RIGHT - 0.4; - public HungryTaskService(Organism organism, Location location) { - super(organism, location); - } - @Override + public void run() { double currentWeight = organism.getCurrentWeight(); double maxWeight = organism.getMaxWeight(); @@ -34,14 +34,14 @@ public void run() { animal.setFullness(Fullness.ALL_RIGHT); } else if (weightRatio >= HUNGRY && weightRatio < ALL_RIGHT && fullness != Fullness.HUNGRY) { animal.setFullness(Fullness.HUNGRY); - } else if (weightRatio < HUNGRY && fullness != Fullness.WILL_BE_FINE) { - animal.setFullness(Fullness.WILL_BE_FINE); + } else if (weightRatio < HUNGRY && fullness != Fullness.DEATH) { + animal.setFullness(Fullness.DEATH); } } double deathThreshold = config.getDeathThreshold(); if (weightRatio < deathThreshold) { - organism.killOrganism(location); + killService.killOrganism(location); } else { organism.setCurrentWeight(weightNextDay); } diff --git a/island/src/main/java/org/island/services/KillTaskService.java b/island/src/main/java/org/island/services/KillTaskService.java deleted file mode 100644 index 65bd9ee..0000000 --- a/island/src/main/java/org/island/services/KillTaskService.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.island.services; - -import org.island.entity.Organism; -import org.island.location.Location; - -public class KillTaskService extends TaskService { - - public KillTaskService(Organism organism, Location location) { - super(organism, location); - } - - @Override - public void run() { - if (organism.isAlive()) { - organism.getDead(); - } - } -} diff --git a/island/src/main/java/org/island/services/MoveTaskService.java b/island/src/main/java/org/island/services/MoveTaskService.java index 55da14b..d038776 100644 --- a/island/src/main/java/org/island/services/MoveTaskService.java +++ b/island/src/main/java/org/island/services/MoveTaskService.java @@ -1,9 +1,10 @@ package org.island.services; -import org.island.animals.Animal; import org.island.entity.Organism; import org.island.location.Location; + +//TODO Переписать public class MoveTaskService extends TaskService { public MoveTaskService(Organism organism, Location location) { diff --git a/island/src/main/java/org/island/services/OrganismWorkerService.java b/island/src/main/java/org/island/services/OrganismWorkerService.java index 4de4417..93622f7 100644 --- a/island/src/main/java/org/island/services/OrganismWorkerService.java +++ b/island/src/main/java/org/island/services/OrganismWorkerService.java @@ -1,6 +1,5 @@ package org.island.services; -import org.island.animals.Animal; import org.island.entity.Organism; import org.island.exceptions.OrganismOperationFail; import org.island.location.Island; @@ -14,11 +13,13 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.CountDownLatch; + +//TODO Переписать public class OrganismWorkerService implements Runnable { private final Organism organism; private final Island island; - private final Queue tasks = new ConcurrentLinkedQueue<>(); - private final Queue hungryTasks = new ConcurrentLinkedQueue<>(); + private final Queue tasks = new ConcurrentLinkedQueue<>(); + private final Queue hungryTasks = new ConcurrentLinkedQueue<>(); private final CountDownLatch latch; public OrganismWorkerService(Organism organism, Island island, CountDownLatch latch) { @@ -29,7 +30,7 @@ public OrganismWorkerService(Organism organism, Island island, CountDownLatch la @Override public void run() { - Location[][] grid = island.getIslandGrid(); + Location[][] grid = island.getGRID(); for (Location[] row : grid) { for (Location location : row) { try { @@ -50,9 +51,9 @@ private void processOneLocation(Location location) { location.getLock().lock(); try { for (Organism organism : organisms) { - TaskService task = chooseAction(organism, location, residents); + org.island.services.TaskService task = chooseAction(organism, location, residents); tasks.add(task); - TaskService hungry = new HungryTaskService(organism, location); + org.island.services.TaskService hungry = new HungryService(organism, location); hungryTasks.add(hungry); } } finally { @@ -74,17 +75,17 @@ private TaskService chooseAction(Organism organism, Location location, Residents if (organism instanceof Animal) { Animal animal = (Animal) organism; task = switch (organism.getFullness()) { - case WELL_FED -> new ReproduceTaskService(organism, location); - case ALL_RIGHT -> new MoveTaskService(organism, location); + case WELL_FED -> new ReproductionService(organism, location); + case ALL_RIGHT -> new org.island.services.MoveTaskService(organism, location); case HUNGRY -> { Ration myRation = organism.getRation(); boolean haveFoodHere = animal.findSomeFood(myRation, residents); - yield haveFoodHere ? new EatTaskService(organism, location) : new MoveTaskService(organism, location); + yield haveFoodHere ? new EatService(organism, location) : new org.island.services.MoveTaskService(organism, location); } - case WILL_BE_FINE -> new KillTaskService(organism, location); + case DEATH -> new KillService(organism, location); }; } else { - task = new ReproduceTaskService(organism, location); + task = new ReproductionService(organism, location); } return task; } diff --git a/island/src/main/java/org/island/services/PopulateIslandService.java b/island/src/main/java/org/island/services/PopulateIslandService.java new file mode 100644 index 0000000..6fab65d --- /dev/null +++ b/island/src/main/java/org/island/services/PopulateIslandService.java @@ -0,0 +1,31 @@ +package org.island.services; + +import lombok.RequiredArgsConstructor; +import org.island.entity.Group; +import org.island.entity.Organism; +import org.island.location.Island; +import org.island.location.Location; +import org.island.repo.OrganismFactory; +import org.island.repo.maps.Residents; +import org.island.util.Randomizer; + +import java.util.HashSet; +import java.util.Set; + +@RequiredArgsConstructor +public class PopulateIslandService { + public void populateIsland(Island island) { + Location[][] grid = island.getGRID(); + for (Location[] locations : grid) { + for (Location location : locations) { + Group randomGroup = Group.values()[Randomizer.random(Group.values().length - 1)]; + Organism organism = OrganismFactory.createOrganism(randomGroup); + Residents residents = location.getResidents(); + Set organisms = residents.getOrDefault(randomGroup.getType(), new HashSet<>()); + organisms.add(organism); + residents.put(randomGroup.getType(), organisms); + } + } + } + +} diff --git a/island/src/main/java/org/island/services/SimulationService.java b/island/src/main/java/org/island/services/SimulationService.java new file mode 100644 index 0000000..16d02c3 --- /dev/null +++ b/island/src/main/java/org/island/services/SimulationService.java @@ -0,0 +1,68 @@ +package org.island.services; + +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import org.island.entity.Organism; +import org.island.location.Island; +import org.island.repo.OrganismFactory; +import org.island.entity.Group; +import org.island.view.View; + +import java.util.Collections; +import java.util.Map; +import java.util.List; +import java.util.LinkedHashMap; +import java.util.concurrent.*; + +@RequiredArgsConstructor +public class SimulationService extends Thread { + private final View view; + private final Island island; + private final int period; + private final PopulateIslandService populateIslandService; + + @Override + @SneakyThrows + public void run() { + + populateIslandService.populateIsland(island); + view.showMap(); + view.showStatistics(); + ScheduledExecutorService mainPool = Executors.newScheduledThreadPool(1); + Map prototypes = createPrototypes(); + CountDownLatch latch = new CountDownLatch(prototypes.size()); + + List workers = prototypes + .values() + .stream() + .map(organism -> new OrganismWorkerService(organism, island, latch)) + .toList(); + + mainPool.scheduleWithFixedDelay(() -> { + ExecutorService servicePool = Executors.newFixedThreadPool(4); + workers.forEach(servicePool::submit); + servicePool.shutdown(); + + + try { + if (servicePool.awaitTermination(3, TimeUnit.SECONDS)) { + view.showMap(); + view.showStatistics(); + } + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + + }, period, period, TimeUnit.MILLISECONDS); + } + + private Map createPrototypes() { + Map result = new LinkedHashMap<>(); + for (Group group : Group.values()) { + Organism organism = OrganismFactory.createOrganism(group); + result.put(group.getType(), organism); + } + return Collections.unmodifiableMap(result); + } +} diff --git a/island/src/main/java/org/island/services/SimulationWorkerService.java b/island/src/main/java/org/island/services/SimulationWorkerService.java deleted file mode 100644 index 9cc9c99..0000000 --- a/island/src/main/java/org/island/services/SimulationWorkerService.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.island.services; - -import org.island.entity.Organism; -import org.island.entity.Simulation; -import org.island.settings.Config; -import org.island.view.View; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.*; -import java.util.stream.Collectors; - -public class SimulationWorkerService extends Thread { - private final Simulation simulation; - private final int period; - - public SimulationWorkerService(Simulation simulation) { - this.simulation = simulation; - this.period = Config.getConfig().getPeriod(); - } - - @Override - public void run() { - View view = simulation.getView(); - view.showMap(); - view.showStatistics(); - ScheduledExecutorService mainPool = Executors.newScheduledThreadPool(1); - Map prototypes = simulation.getEntityFactory().getPrototypes(); - CountDownLatch latch = new CountDownLatch(prototypes.size()); - - List workers = prototypes - .values() - .stream() - .map(organism -> new OrganismWorkerService(organism, simulation.getIsland(), latch)) - .collect(Collectors.toList()); - - mainPool.scheduleWithFixedDelay(() -> { - ExecutorService servicPool = Executors.newFixedThreadPool(4); - workers.forEach(servicPool::submit); - servicPool.shutdown(); - await(view, servicPool); - - }, period, period, TimeUnit.MILLISECONDS); - } - - private void await(View view, ExecutorService servicePool) { - try { - if (servicePool.awaitTermination(3, TimeUnit.SECONDS)) { - view.showMap(); - view.showStatistics(); - } - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - - -} diff --git a/island/src/main/java/org/island/services/TaskService.java b/island/src/main/java/org/island/services/TaskService.java index 88a809a..6c0d297 100644 --- a/island/src/main/java/org/island/services/TaskService.java +++ b/island/src/main/java/org/island/services/TaskService.java @@ -4,6 +4,8 @@ import org.island.entity.Organism; import org.island.location.Location; + +//TODO Нужно использовать для стратегии при вызове симуляции @RequiredArgsConstructor public abstract class TaskService implements Runnable { protected final Organism organism; diff --git a/island/src/main/java/org/island/settings/Config.java b/island/src/main/java/org/island/settings/Config.java index b4ce0a7..715d7ea 100644 --- a/island/src/main/java/org/island/settings/Config.java +++ b/island/src/main/java/org/island/settings/Config.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.ObjectReader; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import org.island.entity.Group; -import org.island.repo.Limit; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; @@ -17,8 +16,10 @@ import org.island.repo.maps.FoodMap; import org.island.repo.maps.Ration; -import java.util.Map; + + +//TODO оставить только про остров, по идее в пропертю @Getter @Setter(AccessLevel.PROTECTED) public final class Config { @@ -29,7 +30,6 @@ public final class Config { private int columns; private int period; private int[][] rationTable; - private Map limits; private Map icons; private FoodMap foodMap; private double startWeightFactor; @@ -55,9 +55,7 @@ public static Config getConfig() { return CONFIG; } - public Limit getLimit(String type) { - return limits.get(type); - } + public String getIcon(String type) { return icons.get(type); @@ -91,12 +89,6 @@ private FoodMap createFoodMap(int[][] rationTable) { } private void loadDefaultSetting() { - rows = Default.ROWS; - columns = Default.COLUMNS; - period = Default.PERIOD; - rationTable = Default.RATION_TABLE; - limits = Default.LIMITS; - icons = Default.ICONS; startWeightFactor = Default.START_WEIGHT_FACTOR; weightDecreaseFactor = Default.WEIGHT_DECREASE_FACTOR; deathThreshold = Default.DEATH_THRESHOLD; diff --git a/island/src/main/java/org/island/settings/CreatureConfig.java b/island/src/main/java/org/island/settings/CreatureConfig.java new file mode 100644 index 0000000..a7541c7 --- /dev/null +++ b/island/src/main/java/org/island/settings/CreatureConfig.java @@ -0,0 +1,24 @@ +package org.island.settings; + + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +@Getter +@Setter +public class CreatureConfig { + private Map limits; + private Map icons; + private Map> foodMap; + + @Getter + @Setter + public static class AnimalParams { + private double maxWeight; + private int maxPopulation; + private int speed; + + } +} diff --git a/island/src/main/java/org/island/settings/Default.java b/island/src/main/java/org/island/settings/Default.java index 43aacb9..c64f0ca 100644 --- a/island/src/main/java/org/island/settings/Default.java +++ b/island/src/main/java/org/island/settings/Default.java @@ -1,16 +1,12 @@ package org.island.settings; -import org.island.repo.Limit; - import java.util.Map; import static java.util.Map.entry; +//TODO Засунуть в ямл public final class Default { - public static final int ROWS = 100; - public static final int COLUMNS = 20; - public static final int PERIOD = 500; //in milliseconds, period for one iteration public static final double START_WEIGHT_FACTOR = 0.75; //maxWeight for newly created/born organism public static final double WEIGHT_DECREASE_FACTOR = 0.02; // weight decreasing every iteration if organism not eat public static final double DEATH_THRESHOLD = 0.1; // ratio of organism current weight to it's max weight, when reached organism kills / die @@ -18,79 +14,4 @@ public final class Default { private Default() { } - /* - int[K1][K2] = V ,where: - K1 - Creature groupId; - K2 - Target groupId; - V - chance to eat. - */ - - public static final int[][] RATION_TABLE = { - {0, 0, 0, 0, 0, 10, 15, 60, 80, 60, 70, 15, 10, 40, 0, 0}, - {0, 0, 15, 0, 0, 0, 0, 20, 40, 0, 0, 0, 0, 10, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 70, 90, 0, 0, 0, 0, 60, 40, 0}, - {0, 80, 0, 0, 0, 40, 80, 80, 90, 70, 70, 50, 20, 10, 0, 0}, - {0, 0, 10, 0, 0, 0, 0, 90, 90, 0, 0, 0, 0, 80, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 90, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - }; - - /* - Map LIMITS,where: - K - organism String type; - V - limits of this organism Limit(double maxWeight, int maxPopulation, int speed). - */ - //TODO: needs to simplify it, maybe through reflection API - public static final Map LIMITS = Map.ofEntries( - entry("Wolf", new Limit(50, 30, 3)), - entry("Python", new Limit(15, 30, 1)), - entry("Fox", new Limit(8, 30, 2)), - entry("Bear", new Limit(500, 5, 2)), - entry("Eagle", new Limit(6, 20, 3)), - entry("Horse", new Limit(400, 20, 4)), - entry("Deer", new Limit(300, 20, 4)), - entry("Rabbit", new Limit(2, 150, 2)), - entry("Mouse", new Limit(0.05, 500, 1)), - entry("Goat", new Limit(60, 140, 3)), - entry("Sheep", new Limit(70, 140, 3)), - entry("Boar", new Limit(400, 50, 2)), - entry("Buffalo", new Limit(700, 10, 3)), - entry("Duck", new Limit(1, 200, 4)), - entry("Caterpillar", new Limit(0.01, 1000, 0)), - entry("Herb", new Limit(10, 200, 0)) - ); - - /* - Map ICONS,where: - K - organism String type; - V - organism icon. - */ - public static final Map ICONS = Map.ofEntries( - entry("Wolf", "🐺"), - entry("Python", "🐍"), - entry("Fox", "🦊"), - entry("Bear", "🐻"), - entry("Eagle", "🦅"), - entry("Horse", "🐎"), - entry("Deer", "🦌"), - entry("Rabbit", "🐇"), - entry("Mouse", "🐁"), - entry("Goat", "🦌"), - entry("Sheep", "🐑"), - entry("Boar", "🐗"), - entry("Buffalo", "🐃"), - entry("Duck", "🦆"), - entry("Caterpillar", "🐛"), - entry("Herb", "☘") - ); - } diff --git a/island/src/main/java/org/island/util/Fullness.java b/island/src/main/java/org/island/util/Fullness.java deleted file mode 100644 index 93c422b..0000000 --- a/island/src/main/java/org/island/util/Fullness.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.island.util; - -public enum Fullness { - WELL_FED, - ALL_RIGHT, - HUNGRY, - WILL_BE_FINE -} diff --git a/island/src/main/java/org/island/view/ConsoleView.java b/island/src/main/java/org/island/view/ConsoleView.java index 3cf6b2f..167672c 100644 --- a/island/src/main/java/org/island/view/ConsoleView.java +++ b/island/src/main/java/org/island/view/ConsoleView.java @@ -1,16 +1,15 @@ package org.island.view; -import org.island.animals.GrassEater; -import org.island.animals.Predator; +import lombok.RequiredArgsConstructor; import org.island.entity.Organism; import org.island.location.Island; import org.island.location.Location; -import org.island.repo.factory.Factory; import org.island.repo.maps.Residents; import org.island.settings.Config; import java.util.*; - +//TODO Переписать +@RequiredArgsConstructor public class ConsoleView implements View { public static final int HEIGHT_DIAGRAM = 10; @@ -18,13 +17,9 @@ public class ConsoleView implements View { public static final int POPULATION_AVERAGE = POPULATION_HIGH - 40; private final Island island; - private final Factory factory; + private int day = 0; - public ConsoleView(Island island, Factory factory) { - this.island = island; - this.factory = factory; - } @Override public void showStatistics() { @@ -32,7 +27,7 @@ public void showStatistics() { Map statsGrassEaters = new HashMap<>(); Map statsPlants = new HashMap<>(); - Location[][] grid = island.getGrid(); + Location[][] grid = island.getGRID(); for (Location[] row : grid) { for (Location location : row) { @@ -66,7 +61,7 @@ public void showMap() { StringBuilder out = new StringBuilder("\n"); Map prototypes = factory.getPrototypes(); List organisms = new ArrayList<>(prototypes.values()); - Location[][] grid = island.getGrid(); + Location[][] grid = island.getGRID(); int organismsCount = organisms.size(); Map currentPopulation = countOrganisms(organisms, grid); drawDiagram(out, organisms, organismsCount, currentPopulation); diff --git a/island/src/main/resources/configuration/animals_initial_parameters_config.yaml b/island/src/main/resources/configuration/animals_initial_parameters_config.yaml deleted file mode 100644 index 09502a5..0000000 --- a/island/src/main/resources/configuration/animals_initial_parameters_config.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# Initial parameters for Organism's like Animal and Plant -limits: - Wolf: - maxWeight: 50.0 - maxPopulation: 30 - speed: 3 - Python: - maxWeight: 15.0 - maxPopulation: 30 - speed: 1 - Fox: - maxWeight: 8.0 - maxPopulation: 30 - speed: 2 - Bear: - maxWeight: 500.0 - maxPopulation: 5 - speed: 2 - Eagle: - maxWeight: 6.0 - maxPopulation: 20 - speed: 3 - Horse: - maxWeight: 400.0 - maxPopulation: 20 - speed: 4 - Deer: - maxWeight: 300.0 - maxPopulation: 20 - speed: 4 - Rabbit: - maxWeight: 2.0 - maxPopulation: 150 - speed: 2 - Mouse: - maxWeight: 0.05 - maxPopulation: 500 - speed: 1 - Goat: - maxWeight: 60.0 - maxPopulation: 140 - speed: 3 - Sheep: - maxWeight: 70.0 - maxPopulation: 140 - speed: 3 - Boar: - maxWeight: 400.0 - maxPopulation: 50 - speed: 2 - Buffalo: - maxWeight: 700.0 - maxPopulation: 10 - speed: 3 - Duck: - maxWeight: 1.0 - maxPopulation: 200 - speed: 4 - Caterpillar: - maxWeight: 0.01 - maxPopulation: 1000 - speed: 0 - Plant: - maxWeight: 10.0 - maxPopulation: 200 - speed: 0 - - diff --git a/island/src/main/resources/configuration/eat_chances_config.yaml b/island/src/main/resources/configuration/eat_chances_config.yaml deleted file mode 100644 index 81e2e69..0000000 --- a/island/src/main/resources/configuration/eat_chances_config.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# Chance of eating food -foodMap: - Wolf: - Horse: 10 - Deer: 15 - Rabbit: 60 - Mouse: 80 - Goat: 60 - Sheep: 70 - Boar: 15 - Buffalo: 10 - Duck: 40 - Python: - Fox: 15 - Rabbit: 20 - Mouse: 40 - Duck: 10 - Fox: - Rabbit: 70 - Mouse: 90 - Duck: 60 - Caterpillar: 40 - Bear: - Python: 80 - Horse: 40 - Deer: 80 - Rabbit: 80 - Mouse: 90 - Goat: 70 - Sheep: 70 - Boar: 50 - Buffalo: 20 - Eagle: - Fox: 10 - Rabbit: 90 - Mouse: 90 - Duck: 80 - Horse: - Plant: 100 - Deer: - Plant: 100 - Rabbit: - Plant: 100 - Mouse: - Caterpillar: 90 - Plant: 100 - Goat: - Plant: 100 - Sheep: - Plant: 100 - Boar: - Mouse: 50 - Caterpillar: 90 - Plant: 100 - Buffalo: - Plant: 100 - Duck: - Caterpillar: 90 - Plant: 100 - Caterpillar: - Plant: 100 - - - - - - - diff --git a/island/src/main/resources/configuration/icons_config.yaml b/island/src/main/resources/configuration/icons_config.yaml deleted file mode 100644 index 3f7593f..0000000 --- a/island/src/main/resources/configuration/icons_config.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# Icons of animals for displaying stats on a screen after each iteration -icons: - Wolf: "🐺" - Python: "🐍" - Fox: "🦊" - Bear: "🐻" - Eagle: "🦅" - Horse: "🐎" - Deer: "🦌" - Rabbit: "🐇" - Mouse: "🐁" - Goat: "🦌" - Sheep: "🐑" - Boar: "🐗" - Buffalo: "🐃" - Duck: "🦆" - Caterpillar: "🐛" - Plant: "☘" \ No newline at end of file diff --git a/island/src/main/resources/configuration/island_config.yaml b/island/src/main/resources/configuration/island_config.yaml deleted file mode 100644 index e4b8abf..0000000 --- a/island/src/main/resources/configuration/island_config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# Island parameters defined the location/area and iteration time (milliseconds) -rows: 100 -columns: 20 -period: 500 \ No newline at end of file diff --git a/island/src/main/resources/configuration/lifecycle_config.yaml b/island/src/main/resources/configuration/lifecycle_config.yaml deleted file mode 100644 index bc92b14..0000000 --- a/island/src/main/resources/configuration/lifecycle_config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# Parameters of life cycle -startWeightFactor: 0.70 -weightDecreaseFactor: 0.03 -deathThreshold: 0.1 \ No newline at end of file From 608a264edbd9ff8724633688981c923201f281aa Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 17 Jul 2024 18:53:11 +0300 Subject: [PATCH 02/20] new: Added Config class for managing island simulation configuration from a YAML file using Jackson ObjectMapper. Includes fields for IslandConfig, SimulationConfig, and AnimalParamsConfig, with lazy initialization using a Singleton pattern (ConfigHolder). Implemented updateFromFile() method for reading and updating configuration from new_master_config.yaml, ensuring thread safety and proper resource management with try-with-resources. --- island/README.md | 2 +- island/src/main/java/org/island/Main.java | 44 ++++- .../java/org/island/entity/EOrganisms.java | 29 +++ .../main/java/org/island/entity/Group.java | 31 --- .../{Organism.java => OrganismDTO.java} | 9 +- .../island/exceptions/OrganismNotFound.java | 18 -- .../exceptions/OrganismOperationFail.java | 19 -- .../{repo => factory}/OrganismFactory.java | 25 ++- .../java/org/island/location/Location.java | 30 --- .../island/{location => model}/Island.java | 6 +- .../main/java/org/island/model/Location.java | 18 ++ .../java/org/island/repo/maps/FoodMap.java | 12 -- .../java/org/island/repo/maps/Ration.java | 12 -- .../java/org/island/repo/maps/Residents.java | 15 -- .../island/services/AnimalDeathService.java | 11 ++ .../island/services/AnimalFeedingService.java | 11 ++ .../island/services/AnimalMatingService.java | 11 ++ .../services/AnimalMovementService.java | 13 ++ .../org/island/services/DeathService.java | 8 + .../java/org/island/services/EatService.java | 17 -- .../org/island/services/FeedingService.java | 8 + .../org/island/services/HungryService.java | 49 ----- .../org/island/services/MatingService.java | 8 + .../org/island/services/MoveTaskService.java | 25 --- .../org/island/services/MovementService.java | 8 + .../services/OrganismWorkerService.java | 93 --------- .../services/PopulateIslandService.java | 31 --- .../island/services/SimulationService.java | 68 ------- .../java/org/island/services/TaskService.java | 15 -- ...atureConfig.java => AnimalParameters.java} | 5 +- .../main/java/org/island/settings/Config.java | 104 ++-------- .../java/org/island/settings/Default.java | 17 -- .../settings/IslandSimulationConfig.java | 28 +++ .../org/island/simulation/Simulation.java | 29 +++ .../java/org/island/view/ConsoleView.java | 165 +--------------- .../configuration/new_master_config.yaml | 159 ---------------- .../src/main/resources/new_master_config.yaml | 179 ++++++++++++++++++ 37 files changed, 439 insertions(+), 893 deletions(-) create mode 100644 island/src/main/java/org/island/entity/EOrganisms.java delete mode 100644 island/src/main/java/org/island/entity/Group.java rename island/src/main/java/org/island/entity/{Organism.java => OrganismDTO.java} (70%) delete mode 100644 island/src/main/java/org/island/exceptions/OrganismNotFound.java delete mode 100644 island/src/main/java/org/island/exceptions/OrganismOperationFail.java rename island/src/main/java/org/island/{repo => factory}/OrganismFactory.java (55%) delete mode 100644 island/src/main/java/org/island/location/Location.java rename island/src/main/java/org/island/{location => model}/Island.java (63%) create mode 100644 island/src/main/java/org/island/model/Location.java delete mode 100644 island/src/main/java/org/island/repo/maps/FoodMap.java delete mode 100644 island/src/main/java/org/island/repo/maps/Ration.java delete mode 100644 island/src/main/java/org/island/repo/maps/Residents.java create mode 100644 island/src/main/java/org/island/services/AnimalDeathService.java create mode 100644 island/src/main/java/org/island/services/AnimalFeedingService.java create mode 100644 island/src/main/java/org/island/services/AnimalMatingService.java create mode 100644 island/src/main/java/org/island/services/AnimalMovementService.java create mode 100644 island/src/main/java/org/island/services/DeathService.java delete mode 100644 island/src/main/java/org/island/services/EatService.java create mode 100644 island/src/main/java/org/island/services/FeedingService.java delete mode 100644 island/src/main/java/org/island/services/HungryService.java create mode 100644 island/src/main/java/org/island/services/MatingService.java delete mode 100644 island/src/main/java/org/island/services/MoveTaskService.java create mode 100644 island/src/main/java/org/island/services/MovementService.java delete mode 100644 island/src/main/java/org/island/services/OrganismWorkerService.java delete mode 100644 island/src/main/java/org/island/services/PopulateIslandService.java delete mode 100644 island/src/main/java/org/island/services/SimulationService.java delete mode 100644 island/src/main/java/org/island/services/TaskService.java rename island/src/main/java/org/island/settings/{CreatureConfig.java => AnimalParameters.java} (91%) delete mode 100644 island/src/main/java/org/island/settings/Default.java create mode 100644 island/src/main/java/org/island/settings/IslandSimulationConfig.java create mode 100644 island/src/main/java/org/island/simulation/Simulation.java delete mode 100644 island/src/main/resources/configuration/new_master_config.yaml create mode 100644 island/src/main/resources/new_master_config.yaml diff --git a/island/README.md b/island/README.md index 90770d0..6e88e9d 100644 --- a/island/README.md +++ b/island/README.md @@ -53,7 +53,7 @@ Optional task components: - Introduce other factors influencing the simulation: - More animal species - Different plant species - - Custom behavior for animal groups (e.g., wolves hunting and moving in packs) + - Custom behavior for animal EOrganisms (e.g., wolves hunting and moving in packs) - Terrain features, including rivers that restrict certain animal movements About parameters (if you choose to implement): diff --git a/island/src/main/java/org/island/Main.java b/island/src/main/java/org/island/Main.java index fb1c0d1..82d74c8 100644 --- a/island/src/main/java/org/island/Main.java +++ b/island/src/main/java/org/island/Main.java @@ -1,21 +1,49 @@ package org.island; -import org.island.location.Island; -import org.island.services.PopulateIslandService; -import org.island.services.SimulationService; +import org.island.model.Island; +import org.island.services.*; +import org.island.simulation.Simulation; import org.island.settings.Config; import org.island.view.ConsoleView; import org.island.view.View; public class Main { public static void main(String[] args) { - System.out.printf("Hello and Welcome to the Island Simulation!"); + //Welcome message + System.out.println("Hello and Welcome to the Island Simulation!"); - Config config = Config.getConfig(); + //Load configuration + Config config = Config.initialize(); + + //Init island Island island = new Island(config); - PopulateIslandService populateIslandService = new PopulateIslandService(); + + //Init view View view = new ConsoleView(island); - SimulationService gameWorker = new SimulationService(view, island, config.getPeriod(), populateIslandService); - gameWorker.start(); + + // Initialize simulation + Simulation gameWorker = getSimulation(config, island, view); + + //Populate island + gameWorker.populateIsland(island); + + //StartSimulation + gameWorker.runCycle(); + } + + + private static Simulation getSimulation(Config config, Island island, View view) { + MovementService movementService = new AnimalMovementService(); + MatingService matingService = new AnimalMatingService(); + FeedingService feedingService = new AnimalFeedingService(); + DeathService deathService = new AnimalDeathService(); + return new Simulation( + view, + island, + config.getIslandSimulationConfig().getSimulation().getPeriod(), + movementService, + matingService, + feedingService, + deathService); } } diff --git a/island/src/main/java/org/island/entity/EOrganisms.java b/island/src/main/java/org/island/entity/EOrganisms.java new file mode 100644 index 0000000..572f74d --- /dev/null +++ b/island/src/main/java/org/island/entity/EOrganisms.java @@ -0,0 +1,29 @@ +package org.island.entity; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@Getter +public enum EOrganisms { + WOLF("Wolf", 0, true), + PYTHON("Python", 1, true), + FOX("Fox", 2, true), + BEAR("Bear", 3, true), + EAGLE("Eagle", 4, true), + HORSE("Horse", 5, true), + DEER("Deer", 6, true), + RABBIT("Rabbit", 7, true), + MOUSE("Mouse", 8, true), + GOAT("Goat", 9, true), + SHEEP("Sheep", 10, true), + BOAR("Boar", 11, true), + BUFFALO("Buffalo", 12, true), + DUCK("Duck", 13, true), + CATERPILLAR("Caterpillar", 14, true), + HERB("Herb", 15, false); + + private final String type; + private final int groupId; + private final boolean isAnimal; +} diff --git a/island/src/main/java/org/island/entity/Group.java b/island/src/main/java/org/island/entity/Group.java deleted file mode 100644 index 0ab11ae..0000000 --- a/island/src/main/java/org/island/entity/Group.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.island.entity; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -@Getter -public enum Group { - WOLF("Wolf", 0), - PYTHON("Python", 1), - FOX("Fox", 2), - BEAR("Bear", 3), - EAGLE("Eagle", 4), - HORSE("Horse", 5), - DEER("Deer", 6), - RABBIT("Rabbit", 7), - MOUSE("Mouse", 8), - GOAT("Goat", 9), - SHEEP("Sheep", 10), - BOAR("Boar", 11), - BUFFALO("Buffalo", 12), - DUCK("Duck", 13), - CATERPILLAR("Caterpillar", 14), - HERB("Herb", 15); - - private final String type; - private final int groupId; - - - -} diff --git a/island/src/main/java/org/island/entity/Organism.java b/island/src/main/java/org/island/entity/OrganismDTO.java similarity index 70% rename from island/src/main/java/org/island/entity/Organism.java rename to island/src/main/java/org/island/entity/OrganismDTO.java index f081518..a83875b 100644 --- a/island/src/main/java/org/island/entity/Organism.java +++ b/island/src/main/java/org/island/entity/OrganismDTO.java @@ -2,8 +2,8 @@ import lombok.*; -import org.island.repo.maps.Ration; -import org.island.services.utils.Fullness; + +import java.util.HashMap; @Builder @Getter @@ -11,15 +11,14 @@ @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode -public class Organism { +public class OrganismDTO { private String type; private int groupId; private int organismId; private boolean isAlive; private double currentWeight; private String icon; - private Fullness fullness; - private Ration ration; + private HashMap ration; private double maxWeight; private int maxPopulation; private int speed; diff --git a/island/src/main/java/org/island/exceptions/OrganismNotFound.java b/island/src/main/java/org/island/exceptions/OrganismNotFound.java deleted file mode 100644 index 1476c7e..0000000 --- a/island/src/main/java/org/island/exceptions/OrganismNotFound.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.island.exceptions; - -public class OrganismNotFound extends RuntimeException { - - public OrganismNotFound(){} - - public OrganismNotFound(String message){ - super(message); - } - - public OrganismNotFound(String message, Throwable cause){ - super(message, cause); - } - - public OrganismNotFound(Throwable cause){ - super(cause); - } -} diff --git a/island/src/main/java/org/island/exceptions/OrganismOperationFail.java b/island/src/main/java/org/island/exceptions/OrganismOperationFail.java deleted file mode 100644 index 24c4533..0000000 --- a/island/src/main/java/org/island/exceptions/OrganismOperationFail.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.island.exceptions; - -@SuppressWarnings("unused") -public class OrganismOperationFail extends RuntimeException{ - - public OrganismOperationFail(){} - - public OrganismOperationFail(String message){ - super(message); - } - - public OrganismOperationFail(String message, Throwable cause){ - super(message, cause); - } - - public OrganismOperationFail(Throwable cause){ - super(cause); - } -} diff --git a/island/src/main/java/org/island/repo/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java similarity index 55% rename from island/src/main/java/org/island/repo/OrganismFactory.java rename to island/src/main/java/org/island/factory/OrganismFactory.java index ed495bd..828adfa 100644 --- a/island/src/main/java/org/island/repo/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -1,16 +1,16 @@ -package org.island.repo; +package org.island.factory; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import lombok.SneakyThrows; -import org.island.settings.CreatureConfig; -import org.island.entity.Group; -import org.island.entity.Organism; +import org.island.entity.EOrganisms; +import org.island.settings.AnimalParameters; +import org.island.entity.OrganismDTO; import java.io.InputStream; public class OrganismFactory { - private static final CreatureConfig config; + private static final AnimalParameters config; private OrganismFactory() { } @@ -19,23 +19,22 @@ private OrganismFactory() { ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); InputStream inputStream = OrganismFactory.class.getClassLoader().getResourceAsStream("new_master_config.yaml"); try { - config = mapper.readValue(inputStream, CreatureConfig.class); + config = mapper.readValue(inputStream, AnimalParameters.class); } catch (Exception e) { throw new RuntimeException("Failed to load configuration", e); } } @SneakyThrows - public static Organism createOrganism(Group group) { - CreatureConfig.AnimalParams params = config.getLimits().get(group.getType()); - return Organism.builder() - .type(group.getType()) - .groupId(group.getGroupId()) - .icon(config.getIcons().get(group.getType())) + public static OrganismDTO createOrganism(EOrganisms organism) { + AnimalParameters.AnimalParams params = config.getLimits().get(organism.getType()); + return OrganismDTO.builder() + .type(organism.getType()) + .groupId(organism.getGroupId()) + .icon(config.getIcons().get(organism.getType())) .maxWeight(params.getMaxWeight()) .maxPopulation(params.getMaxPopulation()) .speed(params.getSpeed()) .build(); - } } \ No newline at end of file diff --git a/island/src/main/java/org/island/location/Location.java b/island/src/main/java/org/island/location/Location.java deleted file mode 100644 index 00f6c05..0000000 --- a/island/src/main/java/org/island/location/Location.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.island.location; - -import lombok.*; -import org.island.repo.maps.Residents; - -import java.util.List; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; -/* -06/15/2024: -Location Class: Represents a single cell on the island grid, -encapsulating vegetation (same as plant) and animal information. - -@Data: Lombok annotation that automatically generates getters, setters, equals(), hashCode(), -and toString() methods for all fields in the class. - -@AllArgsConstructor: Lombok annotation that automatically generates constructor with all - arguments based on all fields in the class. - */ - -@Data -@RequiredArgsConstructor -@ToString -public class Location { - private final int row; - private final int column; - private List directions; - private Residents residents; - private Lock lock; -} diff --git a/island/src/main/java/org/island/location/Island.java b/island/src/main/java/org/island/model/Island.java similarity index 63% rename from island/src/main/java/org/island/location/Island.java rename to island/src/main/java/org/island/model/Island.java index 52ca09d..9789b04 100644 --- a/island/src/main/java/org/island/location/Island.java +++ b/island/src/main/java/org/island/model/Island.java @@ -1,4 +1,4 @@ -package org.island.location; +package org.island.model; import lombok.Getter; import org.island.settings.Config; @@ -12,10 +12,10 @@ and toString() methods for all fields in the class. @Getter public class Island { - private final Location[][] GRID; + private final Location[][] grid; public Island(Config config) { - this.GRID = new Location[config.getRows()] [config.getColumns()]; + this.grid = new Location[config.getIslandSimulationConfig().getIslandSize().getRows()] [config.getIslandSimulationConfig().getIslandSize().getColumns()]; } } diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java new file mode 100644 index 0000000..b3f78bb --- /dev/null +++ b/island/src/main/java/org/island/model/Location.java @@ -0,0 +1,18 @@ +package org.island.model; + +import lombok.*; +import org.island.entity.OrganismDTO; + +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +@Data +@RequiredArgsConstructor +@ToString +public class Location { + private final int row; + private final int column; + private List directions; + private HashMap> residents; +} diff --git a/island/src/main/java/org/island/repo/maps/FoodMap.java b/island/src/main/java/org/island/repo/maps/FoodMap.java deleted file mode 100644 index 21d2302..0000000 --- a/island/src/main/java/org/island/repo/maps/FoodMap.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.repo.maps; - -import java.util.HashMap; - -/* -Map foodMap,contain: - K - organism String type; - V - organism ration with chanceToEat > 0 (Map). -*/ - -public class FoodMap extends HashMap { -} diff --git a/island/src/main/java/org/island/repo/maps/Ration.java b/island/src/main/java/org/island/repo/maps/Ration.java deleted file mode 100644 index fd8b8eb..0000000 --- a/island/src/main/java/org/island/repo/maps/Ration.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.island.repo.maps; - -import java.util.HashMap; - -/* -Map ration, contain: - K - creature String type; - V - chance to eat this creature - */ - -public class Ration extends HashMap { -} diff --git a/island/src/main/java/org/island/repo/maps/Residents.java b/island/src/main/java/org/island/repo/maps/Residents.java deleted file mode 100644 index 19a2911..0000000 --- a/island/src/main/java/org/island/repo/maps/Residents.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.island.repo.maps; - -import org.island.entity.Organism; - -import java.util.HashMap; -import java.util.Set; - -/* -Map residents, contain: - K - creature String type; - V - set of these organisms. -*/ - -public class Residents extends HashMap> { -} diff --git a/island/src/main/java/org/island/services/AnimalDeathService.java b/island/src/main/java/org/island/services/AnimalDeathService.java new file mode 100644 index 0000000..12a0b12 --- /dev/null +++ b/island/src/main/java/org/island/services/AnimalDeathService.java @@ -0,0 +1,11 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public class AnimalDeathService implements DeathService { + @Override + public void die(OrganismDTO organism, Island location) { + + } +} diff --git a/island/src/main/java/org/island/services/AnimalFeedingService.java b/island/src/main/java/org/island/services/AnimalFeedingService.java new file mode 100644 index 0000000..c0df9af --- /dev/null +++ b/island/src/main/java/org/island/services/AnimalFeedingService.java @@ -0,0 +1,11 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public class AnimalFeedingService implements FeedingService { + @Override + public void eat(OrganismDTO organismDTO, Island location) { + + } +} diff --git a/island/src/main/java/org/island/services/AnimalMatingService.java b/island/src/main/java/org/island/services/AnimalMatingService.java new file mode 100644 index 0000000..c21dbca --- /dev/null +++ b/island/src/main/java/org/island/services/AnimalMatingService.java @@ -0,0 +1,11 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public class AnimalMatingService implements MatingService { + @Override + public void findMate(OrganismDTO organismDTO, Island island) { + + } +} diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java new file mode 100644 index 0000000..f04afaf --- /dev/null +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -0,0 +1,13 @@ +package org.island.services; + + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +//TODO Переписать +public class AnimalMovementService implements MovementService { + @Override + public void move(OrganismDTO organism, Island island) { + + } +} diff --git a/island/src/main/java/org/island/services/DeathService.java b/island/src/main/java/org/island/services/DeathService.java new file mode 100644 index 0000000..d12035b --- /dev/null +++ b/island/src/main/java/org/island/services/DeathService.java @@ -0,0 +1,8 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public interface DeathService { + void die(OrganismDTO organism, Island location); +} diff --git a/island/src/main/java/org/island/services/EatService.java b/island/src/main/java/org/island/services/EatService.java deleted file mode 100644 index 6ef877d..0000000 --- a/island/src/main/java/org/island/services/EatService.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.island.services; - -import org.island.entity.Organism; -import org.island.location.Location; - - -//TODO Переписать -public class EatService extends TaskService { - - public EatService(Organism organism, Location location) { - super(organism, location); - } - - @Override - public void run() { - } -} diff --git a/island/src/main/java/org/island/services/FeedingService.java b/island/src/main/java/org/island/services/FeedingService.java new file mode 100644 index 0000000..16fbfa8 --- /dev/null +++ b/island/src/main/java/org/island/services/FeedingService.java @@ -0,0 +1,8 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public interface FeedingService { + void eat(OrganismDTO organismDTO, Island location); +} diff --git a/island/src/main/java/org/island/services/HungryService.java b/island/src/main/java/org/island/services/HungryService.java deleted file mode 100644 index b3a1908..0000000 --- a/island/src/main/java/org/island/services/HungryService.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.island.services; - -import lombok.RequiredArgsConstructor; -import org.island.entity.Organism; -import org.island.location.Location; -import org.island.services.utils.Fullness; -import org.island.settings.Config; - - -//TODO Переписать -@RequiredArgsConstructor -public class HungryService { - private final KillService killService; - private static final double WELL_FED = 0.75; //TODO need different logic - private static final double ALL_RIGHT = WELL_FED - 0.2; - public static final double HUNGRY = ALL_RIGHT - 0.4; - - - - public void run() { - double currentWeight = organism.getCurrentWeight(); - double maxWeight = organism.getMaxWeight(); - Config config = Config.getConfig(); - double weightNextDay = currentWeight - maxWeight * config.getWeightDecreaseFactor(); - double weightRatio = weightNextDay / maxWeight; - - if (organism instanceof Animal) { - Animal animal = (Animal) organism; - Fullness fullness = animal.getFullness(); - - if (weightRatio >= WELL_FED && fullness != Fullness.WELL_FED) { - animal.setFullness(Fullness.WELL_FED); - } else if (weightRatio >= ALL_RIGHT && weightRatio < WELL_FED && fullness != Fullness.ALL_RIGHT) { - animal.setFullness(Fullness.ALL_RIGHT); - } else if (weightRatio >= HUNGRY && weightRatio < ALL_RIGHT && fullness != Fullness.HUNGRY) { - animal.setFullness(Fullness.HUNGRY); - } else if (weightRatio < HUNGRY && fullness != Fullness.DEATH) { - animal.setFullness(Fullness.DEATH); - } - } - - double deathThreshold = config.getDeathThreshold(); - if (weightRatio < deathThreshold) { - killService.killOrganism(location); - } else { - organism.setCurrentWeight(weightNextDay); - } - } -} diff --git a/island/src/main/java/org/island/services/MatingService.java b/island/src/main/java/org/island/services/MatingService.java new file mode 100644 index 0000000..3c354c5 --- /dev/null +++ b/island/src/main/java/org/island/services/MatingService.java @@ -0,0 +1,8 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public interface MatingService { + void findMate(OrganismDTO organismDTO, Island island); +} diff --git a/island/src/main/java/org/island/services/MoveTaskService.java b/island/src/main/java/org/island/services/MoveTaskService.java deleted file mode 100644 index d038776..0000000 --- a/island/src/main/java/org/island/services/MoveTaskService.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.island.services; - -import org.island.entity.Organism; -import org.island.location.Location; - - -//TODO Переписать -public class MoveTaskService extends TaskService { - - public MoveTaskService(Organism organism, Location location) { - super(organism, location); - } - - @Override - public void run() { - if (organism instanceof Animal) { - Animal animal = (Animal) organism; - int speed = animal.getSpeed(); - - if (speed > 0) { - animal.move(location); - } - } - } -} diff --git a/island/src/main/java/org/island/services/MovementService.java b/island/src/main/java/org/island/services/MovementService.java new file mode 100644 index 0000000..a585aab --- /dev/null +++ b/island/src/main/java/org/island/services/MovementService.java @@ -0,0 +1,8 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.model.Island; + +public interface MovementService { + void move(OrganismDTO organism, Island island); +} diff --git a/island/src/main/java/org/island/services/OrganismWorkerService.java b/island/src/main/java/org/island/services/OrganismWorkerService.java deleted file mode 100644 index 93622f7..0000000 --- a/island/src/main/java/org/island/services/OrganismWorkerService.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.island.services; - -import org.island.entity.Organism; -import org.island.exceptions.OrganismOperationFail; -import org.island.location.Island; -import org.island.location.Location; -import org.island.repo.maps.Ration; -import org.island.repo.maps.Residents; - -import java.util.Objects; -import java.util.Queue; -import java.util.Set; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.CountDownLatch; - - -//TODO Переписать -public class OrganismWorkerService implements Runnable { - private final Organism organism; - private final Island island; - private final Queue tasks = new ConcurrentLinkedQueue<>(); - private final Queue hungryTasks = new ConcurrentLinkedQueue<>(); - private final CountDownLatch latch; - - public OrganismWorkerService(Organism organism, Island island, CountDownLatch latch) { - this.organism = organism; - this.island = island; - this.latch = latch; - } - - @Override - public void run() { - Location[][] grid = island.getGRID(); - for (Location[] row : grid) { - for (Location location : row) { - try { - processOneLocation(location); - } catch (Exception e) { - throw new OrganismOperationFail("Problem operation with creature - " + this.organism, e); - } - } - } - } - - private void processOneLocation(Location location) { - String type = organism.getType(); - Residents residents = location.getResidents(); - Set organisms = residents.get(type); - - if (Objects.nonNull(organisms)) { - location.getLock().lock(); - try { - for (Organism organism : organisms) { - org.island.services.TaskService task = chooseAction(organism, location, residents); - tasks.add(task); - org.island.services.TaskService hungry = new HungryService(organism, location); - hungryTasks.add(hungry); - } - } finally { - location.getLock().unlock(); - } - tasks.forEach(TaskService::run); - tasks.clear(); - latch.countDown(); - - hungryTasks.forEach(TaskService::run); - hungryTasks.clear(); - latch.countDown(); - } - } - - private TaskService chooseAction(Organism organism, Location location, Residents residents) { - TaskService task = null; - - if (organism instanceof Animal) { - Animal animal = (Animal) organism; - task = switch (organism.getFullness()) { - case WELL_FED -> new ReproductionService(organism, location); - case ALL_RIGHT -> new org.island.services.MoveTaskService(organism, location); - case HUNGRY -> { - Ration myRation = organism.getRation(); - boolean haveFoodHere = animal.findSomeFood(myRation, residents); - yield haveFoodHere ? new EatService(organism, location) : new org.island.services.MoveTaskService(organism, location); - } - case DEATH -> new KillService(organism, location); - }; - } else { - task = new ReproductionService(organism, location); - } - return task; - } - -} diff --git a/island/src/main/java/org/island/services/PopulateIslandService.java b/island/src/main/java/org/island/services/PopulateIslandService.java deleted file mode 100644 index 6fab65d..0000000 --- a/island/src/main/java/org/island/services/PopulateIslandService.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.island.services; - -import lombok.RequiredArgsConstructor; -import org.island.entity.Group; -import org.island.entity.Organism; -import org.island.location.Island; -import org.island.location.Location; -import org.island.repo.OrganismFactory; -import org.island.repo.maps.Residents; -import org.island.util.Randomizer; - -import java.util.HashSet; -import java.util.Set; - -@RequiredArgsConstructor -public class PopulateIslandService { - public void populateIsland(Island island) { - Location[][] grid = island.getGRID(); - for (Location[] locations : grid) { - for (Location location : locations) { - Group randomGroup = Group.values()[Randomizer.random(Group.values().length - 1)]; - Organism organism = OrganismFactory.createOrganism(randomGroup); - Residents residents = location.getResidents(); - Set organisms = residents.getOrDefault(randomGroup.getType(), new HashSet<>()); - organisms.add(organism); - residents.put(randomGroup.getType(), organisms); - } - } - } - -} diff --git a/island/src/main/java/org/island/services/SimulationService.java b/island/src/main/java/org/island/services/SimulationService.java deleted file mode 100644 index 16d02c3..0000000 --- a/island/src/main/java/org/island/services/SimulationService.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.island.services; - -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; -import org.island.entity.Organism; -import org.island.location.Island; -import org.island.repo.OrganismFactory; -import org.island.entity.Group; -import org.island.view.View; - -import java.util.Collections; -import java.util.Map; -import java.util.List; -import java.util.LinkedHashMap; -import java.util.concurrent.*; - -@RequiredArgsConstructor -public class SimulationService extends Thread { - private final View view; - private final Island island; - private final int period; - private final PopulateIslandService populateIslandService; - - @Override - @SneakyThrows - public void run() { - - populateIslandService.populateIsland(island); - view.showMap(); - view.showStatistics(); - ScheduledExecutorService mainPool = Executors.newScheduledThreadPool(1); - Map prototypes = createPrototypes(); - CountDownLatch latch = new CountDownLatch(prototypes.size()); - - List workers = prototypes - .values() - .stream() - .map(organism -> new OrganismWorkerService(organism, island, latch)) - .toList(); - - mainPool.scheduleWithFixedDelay(() -> { - ExecutorService servicePool = Executors.newFixedThreadPool(4); - workers.forEach(servicePool::submit); - servicePool.shutdown(); - - - try { - if (servicePool.awaitTermination(3, TimeUnit.SECONDS)) { - view.showMap(); - view.showStatistics(); - } - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - - }, period, period, TimeUnit.MILLISECONDS); - } - - private Map createPrototypes() { - Map result = new LinkedHashMap<>(); - for (Group group : Group.values()) { - Organism organism = OrganismFactory.createOrganism(group); - result.put(group.getType(), organism); - } - return Collections.unmodifiableMap(result); - } -} diff --git a/island/src/main/java/org/island/services/TaskService.java b/island/src/main/java/org/island/services/TaskService.java deleted file mode 100644 index 6c0d297..0000000 --- a/island/src/main/java/org/island/services/TaskService.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.island.services; - -import lombok.RequiredArgsConstructor; -import org.island.entity.Organism; -import org.island.location.Location; - - -//TODO Нужно использовать для стратегии при вызове симуляции -@RequiredArgsConstructor -public abstract class TaskService implements Runnable { - protected final Organism organism; - protected final Location location; - - public abstract void run(); -} diff --git a/island/src/main/java/org/island/settings/CreatureConfig.java b/island/src/main/java/org/island/settings/AnimalParameters.java similarity index 91% rename from island/src/main/java/org/island/settings/CreatureConfig.java rename to island/src/main/java/org/island/settings/AnimalParameters.java index a7541c7..e278075 100644 --- a/island/src/main/java/org/island/settings/CreatureConfig.java +++ b/island/src/main/java/org/island/settings/AnimalParameters.java @@ -8,7 +8,7 @@ @Getter @Setter -public class CreatureConfig { +public final class AnimalParameters { private Map limits; private Map icons; private Map> foodMap; @@ -19,6 +19,5 @@ public static class AnimalParams { private double maxWeight; private int maxPopulation; private int speed; - } -} +} \ No newline at end of file diff --git a/island/src/main/java/org/island/settings/Config.java b/island/src/main/java/org/island/settings/Config.java index 715d7ea..778a1ac 100644 --- a/island/src/main/java/org/island/settings/Config.java +++ b/island/src/main/java/org/island/settings/Config.java @@ -1,109 +1,43 @@ package org.island.settings; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectReader; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import org.island.entity.Group; -import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import lombok.SneakyThrows; -import java.net.URL; -import java.util.Map; -import java.util.Objects; +import java.io.InputStream; -import org.island.repo.maps.FoodMap; -import org.island.repo.maps.Ration; - - - - -//TODO оставить только про остров, по идее в пропертю @Getter -@Setter(AccessLevel.PROTECTED) +@Setter public final class Config { public static final String SETTING_YAML = "new_master_config.yaml"; - private static volatile Config CONFIG; - - private int rows; - private int columns; - private int period; - private int[][] rationTable; - private Map icons; - private FoodMap foodMap; - private double startWeightFactor; - private double weightDecreaseFactor; - private double deathThreshold; - - private Config() { - loadDefaultSetting(); - updateFromFile(); - } - - public static Config getConfig() { - Config result = CONFIG; - if (result != null) { - return result; - } - - synchronized (Config.class) { - if (CONFIG == null) { - CONFIG = new Config(); - } - } - return CONFIG; - } - - - public String getIcon(String type) { - return icons.get(type); - } - - public Ration getRation(String type) { - return foodMap.get(type); - } + private IslandSimulationConfig islandSimulationConfig; + private AnimalParameters animalParameters; - private FoodMap createFoodMap(int[][] rationTable) { - FoodMap foodMap = new FoodMap(); - Group[] groups = Group.values(); - int countGroups = groups.length; + private static Config instance; - for (int groupId = 0; groupId < countGroups; groupId++) { - Group group = groups[groupId]; - String type = group.getType(); - Ration ration = new Ration(); + private Config() {} - for (int targetGroupId = 0; targetGroupId < countGroups; targetGroupId++) { - Group targetGroup = groups[targetGroupId]; - String targetType = targetGroup.getType(); - int chanceToEat = rationTable[groupId][targetGroupId]; - if (chanceToEat > 0) { - ration.put(targetType, chanceToEat); - } - } - foodMap.put(type, ration); + public static synchronized Config initialize() { + if (instance == null) { + instance = loadConfig(); } - return foodMap; - } - - private void loadDefaultSetting() { - startWeightFactor = Default.START_WEIGHT_FACTOR; - weightDecreaseFactor = Default.WEIGHT_DECREASE_FACTOR; - deathThreshold = Default.DEATH_THRESHOLD; - - foodMap = createFoodMap(rationTable); - + return instance; } @SneakyThrows - private void updateFromFile() { + private static Config loadConfig() { ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - ObjectReader readerForUpdating = mapper.readerForUpdating(this); - URL resource = Config.class.getClassLoader().getResource(SETTING_YAML); - if (Objects.nonNull(resource)) { - readerForUpdating.readValue(resource.openStream()); + try (InputStream inputStream = Config.class.getClassLoader().getResourceAsStream(SETTING_YAML)) { + if (inputStream != null) { + return mapper.readValue(inputStream, Config.class); + } else { + throw new IllegalStateException("Could not find the YAML configuration file."); + } } } } diff --git a/island/src/main/java/org/island/settings/Default.java b/island/src/main/java/org/island/settings/Default.java deleted file mode 100644 index c64f0ca..0000000 --- a/island/src/main/java/org/island/settings/Default.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.island.settings; - -import java.util.Map; - -import static java.util.Map.entry; - -//TODO Засунуть в ямл -public final class Default { - - public static final double START_WEIGHT_FACTOR = 0.75; //maxWeight for newly created/born organism - public static final double WEIGHT_DECREASE_FACTOR = 0.02; // weight decreasing every iteration if organism not eat - public static final double DEATH_THRESHOLD = 0.1; // ratio of organism current weight to it's max weight, when reached organism kills / die - - private Default() { - } - -} diff --git a/island/src/main/java/org/island/settings/IslandSimulationConfig.java b/island/src/main/java/org/island/settings/IslandSimulationConfig.java new file mode 100644 index 0000000..41dfb46 --- /dev/null +++ b/island/src/main/java/org/island/settings/IslandSimulationConfig.java @@ -0,0 +1,28 @@ +package org.island.settings; + + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public final class IslandSimulationConfig { + private IslandSize islandSize; + private SimulationParameters simulation; + + @Getter + @Setter + public static class IslandSize { + private int rows; + private int columns; + } + + @Getter + @Setter + public static class SimulationParameters { + private int period; + private double startWeightFactor; + private double weightDecreaseFactor; + private double deathThreshold; + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/simulation/Simulation.java b/island/src/main/java/org/island/simulation/Simulation.java new file mode 100644 index 0000000..e86d063 --- /dev/null +++ b/island/src/main/java/org/island/simulation/Simulation.java @@ -0,0 +1,29 @@ +package org.island.simulation; + +import lombok.RequiredArgsConstructor; +import org.island.entity.EOrganisms; +import org.island.model.Island; +import org.island.services.DeathService; +import org.island.services.FeedingService; +import org.island.services.MatingService; +import org.island.services.MovementService; +import org.island.view.View; + +@RequiredArgsConstructor +public class Simulation { + private final View view; + private final Island island; + private final int period; + private final MovementService movementService; + private final MatingService matingService; + private final FeedingService feedingService; + private final DeathService deathService; + + public void populateIsland(Island island) { + + } + public void runCycle(){ + + } + +} diff --git a/island/src/main/java/org/island/view/ConsoleView.java b/island/src/main/java/org/island/view/ConsoleView.java index 167672c..4323b06 100644 --- a/island/src/main/java/org/island/view/ConsoleView.java +++ b/island/src/main/java/org/island/view/ConsoleView.java @@ -1,181 +1,18 @@ package org.island.view; import lombok.RequiredArgsConstructor; -import org.island.entity.Organism; -import org.island.location.Island; -import org.island.location.Location; -import org.island.repo.maps.Residents; -import org.island.settings.Config; +import org.island.model.Island; -import java.util.*; -//TODO Переписать @RequiredArgsConstructor public class ConsoleView implements View { - - public static final int HEIGHT_DIAGRAM = 10; - public static final int POPULATION_HIGH = 70; // int between 40 - 100 - public static final int POPULATION_AVERAGE = POPULATION_HIGH - 40; - private final Island island; - - private int day = 0; - - @Override public void showStatistics() { - Map statsPredators = new HashMap<>(); - Map statsGrassEaters = new HashMap<>(); - Map statsPlants = new HashMap<>(); - - Location[][] grid = island.getGRID(); - - for (Location[] row : grid) { - for (Location location : row) { - var residents = location.getResidents(); - if (Objects.nonNull(residents)) { - residents.values().stream() - .filter(set -> set.size() > 0) - .forEach(set -> { - Organism organism = set.stream().findAny().get(); - String name = organism.getClass().getSimpleName(); - String icon = organism.getIcon(); - String info = icon + name; - - if (organism instanceof Predator) { - statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); - } else if (organism instanceof GrassEater) { - statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); - } else { - statsPlants.put(info, statsPlants.getOrDefault(info, 0) + set.size()); - } - }); - } - } - } - printStatistics(statsPredators, statsGrassEaters, statsPlants); } @Override public void showMap() { - StringBuilder out = new StringBuilder("\n"); - Map prototypes = factory.getPrototypes(); - List organisms = new ArrayList<>(prototypes.values()); - Location[][] grid = island.getGRID(); - int organismsCount = organisms.size(); - Map currentPopulation = countOrganisms(organisms, grid); - drawDiagram(out, organisms, organismsCount, currentPopulation); - out.append(" ".repeat(5)).append("|"); - drawIcons(out, organisms); - System.out.println(out); - } - - @SuppressWarnings("StringBufferReplaceableByString") - private void printStatistics(Map statsPredators, Map statsGrassEaters, Map statsPlants) { - StringBuilder out = new StringBuilder("\n"); - out.append(String.format("--------Island DAY %d--------%n", day++)); - out.append("Predators:\n"); - out.append(MapToString(statsPredators)); - out.append("GrassEaters:\n"); - out.append(MapToString(statsGrassEaters)); - out.append("Plants:\n"); - out.append(MapToString(statsPlants)); - out.append("----------------------------"); - - System.out.println(out); - } - - private String MapToString(Map map) { - StringBuilder out = new StringBuilder(); - map.forEach((key, value) -> out.append(String.format("%19s - %d%n", key, value))); - return out.toString(); - } - - private void drawDiagram(StringBuilder out, List organisms, int organismsCount, Map currentPopulation) { - for (int row = 0; row < HEIGHT_DIAGRAM; row++) { - int percent = 100; - out.append(row == 0 - ? String.format("%-3s %%|", percent) - : String.format(" %-2s %%|", percent - row * 10) - ); - - for (int col = 0; col < organismsCount; col++) { - String residentString = fill(row, col, currentPopulation, organisms); - int LocationWidth = 5; - out.append(String.format("%-" + LocationWidth + "s", residentString)); - } - out.append("\n"); - } } - - private void drawIcons(StringBuilder out, List organisms) { - List skipList = List.of(3, 7, 10); // icons with different width, so will be offset in this position - - for (int i = 0; i < organisms.size(); i++) { - String icon = organisms.get(i).getIcon(); - out.append(icon); - if (!skipList.contains(i)) { - out.append(" "); - } - } - } - - private Map countOrganisms(List organisms, Location[][] grid) { - Map result = new HashMap<>(); - for (Location[] row : grid) { - for (Location location : row) { - Residents residents = location.getResidents(); - if (Objects.nonNull(residents)) { - organisms.forEach(organism -> { - String type = organism.getType(); - result.put(type, result.getOrDefault(type, 0) + residents.get(type).size()); - }); - } - } - } - return result; - } - - private String fill(int row, int col, Map currentPopulation, List organisms) { - Organism organism = organisms.get(col); - String type = organism.getType(); - Config config = Config.getConfig(); - int mapRow = config.getRows(); - int mapCol = config.getColumns(); - int maxCount = organism.getMaxPopulation() * mapRow * mapCol; - int currentCount = currentPopulation.get(type); - double ratioPercent = 100.0 * currentCount / maxCount; - double currentPercent = 100.0 - row * 10; - - String filler = choseFiller(ratioPercent, currentPercent); - return "." + filler + Color.RESET + "."; - } - - private String choseFiller(double ratioPercent, double currentPercent) { - String filler = "."; - String color = Color.RESET; - - if (currentPercent <= ratioPercent) { - if (ratioPercent >= POPULATION_HIGH) { - color = Color.FILL_GREEN; - } else if (ratioPercent >= POPULATION_AVERAGE) { - color = Color.FILL_YELLOW; - } else { - color = Color.FILL_RED; - } - filler = " "; - } - - return color + filler; - } - - private static class Color{ - public static final String RESET = "\u001B[0m"; - public static final String FILL_GREEN = "\u001B[42m"; - public static final String FILL_YELLOW = "\u001B[43m"; - public static final String FILL_RED = "\u001B[41m"; - } - - } diff --git a/island/src/main/resources/configuration/new_master_config.yaml b/island/src/main/resources/configuration/new_master_config.yaml deleted file mode 100644 index 6ad8ce4..0000000 --- a/island/src/main/resources/configuration/new_master_config.yaml +++ /dev/null @@ -1,159 +0,0 @@ ---- -# Island size parameters -rows: 100 -columns: 20 -period: 500 - -# Basic animal parameters -limits: - Wolf: - maxWeight: 50.0 - maxPopulation: 30 - speed: 3 - Python: - maxWeight: 15.0 - maxPopulation: 30 - speed: 1 - Fox: - maxWeight: 8.0 - maxPopulation: 30 - speed: 2 - Bear: - maxWeight: 500.0 - maxPopulation: 5 - speed: 2 - Eagle: - maxWeight: 6.0 - maxPopulation: 20 - speed: 3 - Horse: - maxWeight: 400.0 - maxPopulation: 20 - speed: 4 - Deer: - maxWeight: 300.0 - maxPopulation: 20 - speed: 4 - Rabbit: - maxWeight: 2.0 - maxPopulation: 150 - speed: 2 - Mouse: - maxWeight: 0.05 - maxPopulation: 500 - speed: 1 - Goat: - maxWeight: 60.0 - maxPopulation: 140 - speed: 3 - Sheep: - maxWeight: 70.0 - maxPopulation: 140 - speed: 3 - Boar: - maxWeight: 400.0 - maxPopulation: 50 - speed: 2 - Buffalo: - maxWeight: 700.0 - maxPopulation: 10 - speed: 3 - Duck: - maxWeight: 1.0 - maxPopulation: 200 - speed: 4 - Caterpillar: - maxWeight: 0.01 - maxPopulation: 1000 - speed: 0 - Herb: - maxWeight: 10.0 - maxPopulation: 200 - speed: 0 - - -# Icons of animals -icons: - Wolf: "🐺" - Python: "🐍" - Fox: "🦊" - Bear: "🐻" - Eagle: "🦅" - Horse: "🐎" - Deer: "🦌" - Rabbit: "🐇" - Mouse: "🐁" - Goat: "🦌" - Sheep: "🐑" - Boar: "🐗" - Buffalo: "🐃" - Duck: "🦆" - Caterpillar: "🐛" - Herb: "☘" - -# Chance of eating food -foodMap: - Wolf: - Horse: 10 - Deer: 15 - Rabbit: 60 - Mouse: 80 - Goat: 60 - Sheep: 70 - Boar: 15 - Buffalo: 10 - Duck: 40 - Python: - Fox: 15 - Rabbit: 20 - Mouse: 40 - Duck: 10 - Fox: - Rabbit: 70 - Mouse: 90 - Duck: 60 - Caterpillar: 40 - Bear: - Python: 80 - Horse: 40 - Deer: 80 - Rabbit: 80 - Mouse: 90 - Goat: 70 - Sheep: 70 - Boar: 50 - Buffalo: 20 - Eagle: - Fox: 10 - Rabbit: 90 - Mouse: 90 - Duck: 80 - Horse: - Herb: 100 - Deer: - Herb: 100 - Rabbit: - Herb: 100 - Mouse: - Caterpillar: 90 - Herb: 100 - Goat: - Herb: 100 - Sheep: - Herb: 100 - Boar: - Mouse: 50 - Caterpillar: 90 - Herb: 100 - Buffalo: - Herb: 100 - Duck: - Caterpillar: 90 - Herb: 100 - Caterpillar: - Herb: 100 - -# Parameters of life cycle -startWeightFactor: 0.70 -weightDecreaseFactor: 0.03 -deathThreshold: 0.1 \ No newline at end of file diff --git a/island/src/main/resources/new_master_config.yaml b/island/src/main/resources/new_master_config.yaml new file mode 100644 index 0000000..e7f8232 --- /dev/null +++ b/island/src/main/resources/new_master_config.yaml @@ -0,0 +1,179 @@ +islandSimulationConfig: + islandSize: + rows: 100 + columns: 20 + simulation: + period: 500 + startWeightFactor: 0.70 + weightDecreaseFactor: 0.03 + deathThreshold: 0.1 + +animalParameters: + limits: + Wolf: + maxWeight: 50.0 + maxPopulation: 30 + speed: 3 + + Python: + maxWeight: 15.0 + maxPopulation: 30 + speed: 1 + + Fox: + maxWeight: 8.0 + maxPopulation: 30 + speed: 2 + + Bear: + maxWeight: 500.0 + maxPopulation: 5 + speed: 2 + + Eagle: + maxWeight: 6.0 + maxPopulation: 20 + speed: 3 + + Horse: + maxWeight: 400.0 + maxPopulation: 20 + speed: 4 + + Deer: + maxWeight: 300.0 + maxPopulation: 20 + speed: 4 + + Rabbit: + maxWeight: 2.0 + maxPopulation: 150 + speed: 2 + + Mouse: + maxWeight: 0.05 + maxPopulation: 500 + speed: 1 + + Goat: + maxWeight: 60.0 + maxPopulation: 140 + speed: 3 + + Sheep: + maxWeight: 70.0 + maxPopulation: 140 + speed: 3 + + Boar: + maxWeight: 400.0 + maxPopulation: 50 + speed: 2 + + Buffalo: + maxWeight: 700.0 + maxPopulation: 10 + speed: 3 + + Duck: + maxWeight: 1.0 + maxPopulation: 200 + speed: 4 + + Caterpillar: + maxWeight: 0.01 + maxPopulation: 1000 + speed: 0 + + icons: + Wolf: "🐺" + Python: "🐍" + Fox: "🦊" + Bear: "🐻" + Eagle: "🦅" + Horse: "🐎" + Deer: "🦌" + Rabbit: "🐇" + Mouse: "🐁" + Goat: "🦌" + Sheep: "🐑" + Boar: "🐗" + Buffalo: "🐃" + Duck: "🦆" + Caterpillar: "🐛" + + foodMap: + Wolf: + Horse: 10 + Deer: 15 + Rabbit: 60 + Mouse: 80 + Goat: 60 + Sheep: 70 + Boar: 15 + Buffalo: 10 + Duck: 40 + + Python: + Fox: 15 + Rabbit: 20 + Mouse: 40 + Duck: 10 + + Fox: + Rabbit: 70 + Mouse: 90 + Duck: 60 + Caterpillar: 40 + + Bear: + Python: 80 + Horse: 40 + Deer: 80 + Rabbit: 80 + Mouse: 90 + Goat: 70 + Sheep: 70 + Boar: 50 + Buffalo: 20 + + Eagle: + Fox: 10 + Rabbit: 90 + Mouse: 90 + Duck: 80 + + Horse: + Herb: 100 + + Deer: + Herb: 100 + + Rabbit: + Herb: 100 + + Mouse: + Caterpillar: 90 + Herb: 100 + + Goat: + Herb: 100 + + Sheep: + Herb: 100 + + Boar: + Mouse: 50 + Caterpillar: 90 + Herb: 100 + + Buffalo: + Herb: 100 + + Duck: + Caterpillar: 90 + Herb: 100 + + Caterpillar: + Herb: 100 + From 17368b9aed9483bb6da2ff9c155ceb474e310927 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 17 Jul 2024 18:59:33 +0300 Subject: [PATCH 03/20] fix: in yaml animalParameters -> organismParameters --- .../src/main/java/org/island/factory/OrganismFactory.java | 8 ++++---- island/src/main/java/org/island/settings/Config.java | 4 +--- .../{AnimalParameters.java => OrganismParameters.java} | 2 +- island/src/main/resources/new_master_config.yaml | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) rename island/src/main/java/org/island/settings/{AnimalParameters.java => OrganismParameters.java} (91%) diff --git a/island/src/main/java/org/island/factory/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java index 828adfa..d115fe5 100644 --- a/island/src/main/java/org/island/factory/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -4,13 +4,13 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import lombok.SneakyThrows; import org.island.entity.EOrganisms; -import org.island.settings.AnimalParameters; +import org.island.settings.OrganismParameters; import org.island.entity.OrganismDTO; import java.io.InputStream; public class OrganismFactory { - private static final AnimalParameters config; + private static final OrganismParameters config; private OrganismFactory() { } @@ -19,7 +19,7 @@ private OrganismFactory() { ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); InputStream inputStream = OrganismFactory.class.getClassLoader().getResourceAsStream("new_master_config.yaml"); try { - config = mapper.readValue(inputStream, AnimalParameters.class); + config = mapper.readValue(inputStream, OrganismParameters.class); } catch (Exception e) { throw new RuntimeException("Failed to load configuration", e); } @@ -27,7 +27,7 @@ private OrganismFactory() { @SneakyThrows public static OrganismDTO createOrganism(EOrganisms organism) { - AnimalParameters.AnimalParams params = config.getLimits().get(organism.getType()); + OrganismParameters.AnimalParams params = config.getLimits().get(organism.getType()); return OrganismDTO.builder() .type(organism.getType()) .groupId(organism.getGroupId()) diff --git a/island/src/main/java/org/island/settings/Config.java b/island/src/main/java/org/island/settings/Config.java index 778a1ac..073aa3f 100644 --- a/island/src/main/java/org/island/settings/Config.java +++ b/island/src/main/java/org/island/settings/Config.java @@ -1,7 +1,5 @@ package org.island.settings; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import lombok.Getter; @@ -16,7 +14,7 @@ public final class Config { public static final String SETTING_YAML = "new_master_config.yaml"; private IslandSimulationConfig islandSimulationConfig; - private AnimalParameters animalParameters; + private OrganismParameters organismParameters; private static Config instance; diff --git a/island/src/main/java/org/island/settings/AnimalParameters.java b/island/src/main/java/org/island/settings/OrganismParameters.java similarity index 91% rename from island/src/main/java/org/island/settings/AnimalParameters.java rename to island/src/main/java/org/island/settings/OrganismParameters.java index e278075..fc1718e 100644 --- a/island/src/main/java/org/island/settings/AnimalParameters.java +++ b/island/src/main/java/org/island/settings/OrganismParameters.java @@ -8,7 +8,7 @@ @Getter @Setter -public final class AnimalParameters { +public final class OrganismParameters { private Map limits; private Map icons; private Map> foodMap; diff --git a/island/src/main/resources/new_master_config.yaml b/island/src/main/resources/new_master_config.yaml index e7f8232..f017a2f 100644 --- a/island/src/main/resources/new_master_config.yaml +++ b/island/src/main/resources/new_master_config.yaml @@ -8,7 +8,7 @@ islandSimulationConfig: weightDecreaseFactor: 0.03 deathThreshold: 0.1 -animalParameters: +organismParameters: limits: Wolf: maxWeight: 50.0 From c46cf5180bd43c892be065abf870f0c6efdd01b7 Mon Sep 17 00:00:00 2001 From: pavlo Date: Tue, 6 Aug 2024 13:40:44 -0400 Subject: [PATCH 04/20] 08/06/2024 --- island/src/main/java/org/island/Main.java | 5 +- .../org/island/factory/OrganismFactory.java | 12 +- .../main/java/org/island/model/Location.java | 4 + .../services/AnimalMovementService.java | 93 ++++++++++++++ .../org/island/services/ViewMapService.java | 120 ++++++++++++++++++ .../services/ViewStatisticsService.java | 68 ++++++++++ .../java/org/island/view/ConsoleView.java | 19 ++- 7 files changed, 317 insertions(+), 4 deletions(-) create mode 100644 island/src/main/java/org/island/services/ViewMapService.java create mode 100644 island/src/main/java/org/island/services/ViewStatisticsService.java diff --git a/island/src/main/java/org/island/Main.java b/island/src/main/java/org/island/Main.java index 82d74c8..79a2ddb 100644 --- a/island/src/main/java/org/island/Main.java +++ b/island/src/main/java/org/island/Main.java @@ -1,5 +1,6 @@ package org.island; +import org.island.factory.OrganismFactory; import org.island.model.Island; import org.island.services.*; import org.island.simulation.Simulation; @@ -18,8 +19,10 @@ public static void main(String[] args) { //Init island Island island = new Island(config); + OrganismFactory factory = new OrganismFactory(); + //Init view - View view = new ConsoleView(island); + View view = new ConsoleView(island, factory); // Initialize simulation Simulation gameWorker = getSimulation(config, island, view); diff --git a/island/src/main/java/org/island/factory/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java index d115fe5..53e1e3b 100644 --- a/island/src/main/java/org/island/factory/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -2,17 +2,25 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import lombok.Getter; import lombok.SneakyThrows; import org.island.entity.EOrganisms; import org.island.settings.OrganismParameters; import org.island.entity.OrganismDTO; import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; +@Getter public class OrganismFactory { private static final OrganismParameters config; + private final Map ORGANISMS = new HashMap<>(); - private OrganismFactory() { + public OrganismFactory() { + for (EOrganisms value : EOrganisms.values()) { + ORGANISMS.put(value.getType(), createOrganism(value)); + } } static { @@ -37,4 +45,6 @@ public static OrganismDTO createOrganism(EOrganisms organism) { .speed(params.getSpeed()) .build(); } + + } \ No newline at end of file diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index b3f78bb..86ab303 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Set; +import java.util.concurrent.locks.Lock; @Data @RequiredArgsConstructor @@ -15,4 +16,7 @@ public class Location { private final int column; private List directions; private HashMap> residents; + + @Getter + private final Lock lock; } diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java index f04afaf..3624734 100644 --- a/island/src/main/java/org/island/services/AnimalMovementService.java +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -3,11 +3,104 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; +import org.island.util.Randomizer; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; //TODO Переписать public class AnimalMovementService implements MovementService { @Override public void move(OrganismDTO organism, Island island) { + if (organism instanceof OrganismDTO) { + OrganismDTO animal = (OrganismDTO) organism; + int speed = animal.getSpeed(); + + if (speed > 0) { + move(animal, ); + } + } + } + + private List getAvailableDirections(Set visitedLocations, Location destination) { + return destination + .getDirections() + .stream() + .filter(location -> !visitedLocations.contains(location)) + .collect(Collectors.toList()); + } + + private Location findDestinationLocation(int countOfSteps, Location location, OrganismDTO animal) { + Set visitedLocations = new HashSet<>(); + Location destination = location; + + while (countOfSteps > 0) { + visitedLocations.add(destination); + List directions = getAvailableDirections(visitedLocations, destination); + int countOfDirections = directions.size(); + + if (countOfDirections > 0) { + int selectedDirection = Randomizer.random(0, countOfDirections); + destination = directions.get(selectedDirection); + } + countOfSteps--; + } + return destination; + } + + public void move(OrganismDTO animal, Location currentLocation) { + int speed = animal.getSpeed(); + int countOfSteps = Randomizer.random(speed); + + Location destination = findDestinationLocation(countOfSteps, currentLocation, animal); + if (moveTo(animal, destination)) { + remove(animal, currentLocation); + } } + + private boolean moveTo(OrganismDTO animal, Location destination) { + destination.getLock().lock(); + + try { + String type = animal.getType(); + HashMap> residents = destination.getResidents(); + Set sameKindOrganisms = residents.get(type); + int countOfSameKindOrganisms = sameKindOrganisms.size(); + int maxCount = animal.getMaxPopulation(); + if (countOfSameKindOrganisms < maxCount) { + return sameKindOrganisms.add(animal); + } else return false; + } finally { + destination.getLock().unlock(); + } + } + + private void remove(OrganismDTO animal, Location location) { + location.getLock().lock(); + + try { + HashMap> residents = location.getResidents(); + String type = animal.getType(); + Set sameKindOrganisms = residents.get(type); + if (organismStillAvailable(animal, location)) { + sameKindOrganisms.remove(animal); + } + } finally { + location.getLock().unlock(); + } + } + + private boolean organismStillAvailable(OrganismDTO animal, Location location) { + HashMap> residents = location.getResidents(); + String type = animal.getType(); + Set organismStillAvailable = residents.get(type); + return organismStillAvailable.contains(animal); + } + + } diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java new file mode 100644 index 0000000..0c2868f --- /dev/null +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -0,0 +1,120 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.factory.OrganismFactory; +import org.island.model.Island; +import org.island.model.Location; +import org.island.settings.Config; + +import java.util.*; + +public class ViewMapService { + public static final int HEIGHT_DIAGRAM = 10; + public static final int POPULATION_HIGH = 70; // int between 40 - 100 + public static final int POPULATION_AVERAGE = POPULATION_HIGH - 40; + + private final OrganismFactory factory; + + public ViewMapService(OrganismFactory factory) { + this.factory = factory; + } + + public void showMap(Island island) { + StringBuilder out = new StringBuilder("\n"); + Map prototypes = factory.getORGANISMS(); + List organisms = new ArrayList<>(prototypes.values()); + Location[][] grid = island.getGrid(); + int organismsCount = organisms.size(); + Map currentPopulation = countOrganisms(organisms, grid); + drawDiagram(out, organisms, organismsCount, currentPopulation); + out.append(" ".repeat(5)).append("|"); + drawIcons(out, organisms); + System.out.println(out); + } + + private void drawDiagram(StringBuilder out, List organisms, int organismsCount, Map currentPopulation) { + for (int row = 0; row < HEIGHT_DIAGRAM; row++) { + int percent = 100; + out.append(row == 0 + ? String.format("%-3s %%|", percent) + : String.format(" %-2s %%|", percent - row * 10) + ); + + for (int col = 0; col < organismsCount; col++) { + String residentString = fill(row, col, currentPopulation, organisms); + int LocationWidth = 5; + out.append(String.format("%-" + LocationWidth + "s", residentString)); + } + + out.append("\n"); + } + } + + private void drawIcons(StringBuilder out, List organisms) { + List skipList = List.of(3, 7, 10); // icons with different width, so will be offset in this position + + for (int i = 0; i < organisms.size(); i++) { + String icon = organisms.get(i).getIcon(); + out.append(icon); + if (!skipList.contains(i)) { + out.append(" "); + } + } + } + + private Map countOrganisms(List organisms, Location[][] grid) { + Map result = new HashMap<>(); + for (Location[] row : grid) { + for (Location location : row) { + HashMap> residents = location.getResidents(); + if (Objects.nonNull(residents)) { + organisms.forEach(organism -> { + String type = organism.getType(); + result.put(type, result.getOrDefault(type, 0) + residents.get(type).size()); + }); + } + } + } + return result; + } + + private String fill(int row, int col, Map currentPopulation, List organisms) { + OrganismDTO organism = organisms.get(col); + String type = organism.getType(); + Config config = Config.initialize(); + int mapRow = config.getIslandSimulationConfig().getIslandSize().getRows(); + int mapCol = config.getIslandSimulationConfig().getIslandSize().getColumns(); + int maxCount = organism.getMaxPopulation() * mapRow * mapCol; + int currentCount = currentPopulation.get(type); + double ratioPercent = 100.0 * currentCount / maxCount; + double currentPercent = 100.0 - row * 10; + + String filler = choseFiller(ratioPercent, currentPercent); + return "." + filler + Color.RESET + "."; + } + + private String choseFiller(double ratioPercent, double currentPercent) { + String filler = "."; + String color = Color.RESET; + + if (currentPercent <= ratioPercent) { + if (ratioPercent >= POPULATION_HIGH) { + color = Color.FILL_GREEN; + } else if (ratioPercent >= POPULATION_AVERAGE) { + color = Color.FILL_YELLOW; + } else { + color = Color.FILL_RED; + } + filler = " "; + } + + return color + filler; + } + + private static class Color { + public static final String RESET = "\u001B[0m"; + public static final String FILL_GREEN = "\u001B[42m"; + public static final String FILL_YELLOW = "\u001B[43m"; + public static final String FILL_RED = "\u001B[41m"; + } +} diff --git a/island/src/main/java/org/island/services/ViewStatisticsService.java b/island/src/main/java/org/island/services/ViewStatisticsService.java new file mode 100644 index 0000000..c81b8d1 --- /dev/null +++ b/island/src/main/java/org/island/services/ViewStatisticsService.java @@ -0,0 +1,68 @@ +package org.island.services; + +import org.island.entity.EOrganisms; +import org.island.entity.OrganismDTO; +import org.island.model.Island; +import org.island.model.Location; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public class ViewStatisticsService { + + public void showStatistics(Island island, int day) { + Map statsPredators = new HashMap<>(); + Map statsGrassEaters = new HashMap<>(); + Map statsPlants = new HashMap<>(); + + Location[][] grid = island.getGrid(); + + for (Location[] row : grid) { + for (Location location : row) { + var residents = location.getResidents(); + if (Objects.nonNull(residents)) { + residents.values().stream() + .filter(set -> set.size() > 0) + .forEach(set -> { + OrganismDTO organism = set.stream().findAny().get(); + String name = organism.getClass().getSimpleName(); + String icon = organism.getIcon(); + String info = icon + name; + + if (!organism.getRation().containsKey("Herb")) { + statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); + } else if (organism.getRation().containsKey("Herb")) { + statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); + } else { + statsPlants.put(info, statsPlants.getOrDefault(info, 0) + set.size()); + } + }); + } + } + } + + printStatistics(statsPredators, statsGrassEaters, statsPlants, day); + } + + private void printStatistics(Map statsPredators, Map statsGrassEaters, Map statsPlants, int day) { + StringBuilder out = new StringBuilder("\n"); + out.append(String.format("--------Island DAY %d--------%n", day)); + out.append("Predators:\n"); + out.append(mapToString(statsPredators)); + out.append("GrassEaters:\n"); + out.append(mapToString(statsGrassEaters)); + out.append("Plants:\n"); + out.append(mapToString(statsPlants)); + out.append("----------------------------"); + + System.out.println(out); + } + + private String mapToString(Map map) { + StringBuilder out = new StringBuilder(); + map.forEach((key, value) -> out.append(String.format("%19s - %d%n", key, value))); + return out.toString(); + } +} diff --git a/island/src/main/java/org/island/view/ConsoleView.java b/island/src/main/java/org/island/view/ConsoleView.java index 4323b06..be30330 100644 --- a/island/src/main/java/org/island/view/ConsoleView.java +++ b/island/src/main/java/org/island/view/ConsoleView.java @@ -1,18 +1,33 @@ package org.island.view; import lombok.RequiredArgsConstructor; +import org.island.factory.OrganismFactory; import org.island.model.Island; +import org.island.services.ViewMapService; +import org.island.services.ViewStatisticsService; @RequiredArgsConstructor public class ConsoleView implements View { private final Island island; + private final OrganismFactory factory; + private final ViewStatisticsService viewStatisticsService; + private final ViewMapService viewMapService; + private int day = 0; + + public ConsoleView(Island island, OrganismFactory factory) { + this.island = island; + this.factory = factory; + this.viewStatisticsService = new ViewStatisticsService(); + this.viewMapService = new ViewMapService(factory); + } + @Override public void showStatistics() { - + viewStatisticsService.showStatistics(island, day++); } @Override public void showMap() { - + viewMapService.showMap(island); } } From 9abe4f99c901e9a31c66a18003a365ea311cfd08 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 7 Aug 2024 11:25:05 +0300 Subject: [PATCH 05/20] fix: add organism Herb in yaml --- island/src/main/resources/new_master_config.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/island/src/main/resources/new_master_config.yaml b/island/src/main/resources/new_master_config.yaml index f017a2f..101003d 100644 --- a/island/src/main/resources/new_master_config.yaml +++ b/island/src/main/resources/new_master_config.yaml @@ -85,6 +85,11 @@ organismParameters: maxPopulation: 1000 speed: 0 + Herb: + maxWeight: 0.01 + maxPopulation: 1000 + speed: 0 + icons: Wolf: "🐺" Python: "🐍" From 551c4722d5683b0078e2bf02445638880a7199ff Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 7 Aug 2024 11:25:36 +0300 Subject: [PATCH 06/20] fix: refactor static to use Config --- .../org/island/factory/OrganismFactory.java | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/island/src/main/java/org/island/factory/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java index 53e1e3b..cb38de8 100644 --- a/island/src/main/java/org/island/factory/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -1,14 +1,12 @@ package org.island.factory; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import lombok.Getter; import lombok.SneakyThrows; import org.island.entity.EOrganisms; -import org.island.settings.OrganismParameters; import org.island.entity.OrganismDTO; +import org.island.settings.Config; +import org.island.settings.OrganismParameters; -import java.io.InputStream; import java.util.HashMap; import java.util.Map; @@ -17,22 +15,17 @@ public class OrganismFactory { private static final OrganismParameters config; private final Map ORGANISMS = new HashMap<>(); + static { + Config configuration = Config.initialize(); + config = configuration.getOrganismParameters(); + } + public OrganismFactory() { for (EOrganisms value : EOrganisms.values()) { ORGANISMS.put(value.getType(), createOrganism(value)); } } - static { - ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - InputStream inputStream = OrganismFactory.class.getClassLoader().getResourceAsStream("new_master_config.yaml"); - try { - config = mapper.readValue(inputStream, OrganismParameters.class); - } catch (Exception e) { - throw new RuntimeException("Failed to load configuration", e); - } - } - @SneakyThrows public static OrganismDTO createOrganism(EOrganisms organism) { OrganismParameters.AnimalParams params = config.getLimits().get(organism.getType()); @@ -45,6 +38,4 @@ public static OrganismDTO createOrganism(EOrganisms organism) { .speed(params.getSpeed()) .build(); } - - -} \ No newline at end of file +} From 7d76ab5aca8f85c22d49646450eb5f8c404822a1 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 7 Aug 2024 11:25:56 +0300 Subject: [PATCH 07/20] fix: refactor main to use methods --- island/src/main/java/org/island/Main.java | 41 ++++++++++++++++------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/island/src/main/java/org/island/Main.java b/island/src/main/java/org/island/Main.java index 79a2ddb..0bd70b2 100644 --- a/island/src/main/java/org/island/Main.java +++ b/island/src/main/java/org/island/Main.java @@ -14,32 +14,44 @@ public static void main(String[] args) { System.out.println("Hello and Welcome to the Island Simulation!"); //Load configuration - Config config = Config.initialize(); + Config config = loadConfig(); - //Init island - Island island = new Island(config); - - OrganismFactory factory = new OrganismFactory(); + //Init island and factory + Island island = createIsland(config); + OrganismFactory factory = createFactory(); //Init view - View view = new ConsoleView(island, factory); + View view = createView(island, factory); // Initialize simulation - Simulation gameWorker = getSimulation(config, island, view); + Simulation simulation = createSimulation(config, island, view); + + //Populate island and start simulation + runSimulation(simulation, island); + } + + private static Config loadConfig() { + return Config.initialize(); + } - //Populate island - gameWorker.populateIsland(island); + private static Island createIsland(Config config) { + return new Island(config); + } - //StartSimulation - gameWorker.runCycle(); + private static OrganismFactory createFactory() { + return new OrganismFactory(); } + private static View createView(Island island, OrganismFactory factory) { + return new ConsoleView(island, factory); + } - private static Simulation getSimulation(Config config, Island island, View view) { + private static Simulation createSimulation(Config config, Island island, View view) { MovementService movementService = new AnimalMovementService(); MatingService matingService = new AnimalMatingService(); FeedingService feedingService = new AnimalFeedingService(); DeathService deathService = new AnimalDeathService(); + return new Simulation( view, island, @@ -49,4 +61,9 @@ private static Simulation getSimulation(Config config, Island island, View view) feedingService, deathService); } + + private static void runSimulation(Simulation simulation, Island island) { + simulation.populateIsland(island); + simulation.runCycle(); + } } From b87727e64cea36acb9968d1a82f2d63462f92fae Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 7 Aug 2024 11:26:59 +0300 Subject: [PATCH 08/20] new: private final Lock lock -> private final Lock lock = new ReentrantLock(); --- island/src/main/java/org/island/model/Location.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index 86ab303..5b5b6f4 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Set; import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; @Data @RequiredArgsConstructor @@ -15,8 +16,7 @@ public class Location { private final int row; private final int column; private List directions; - private HashMap> residents; + private HashMap> residents = new HashMap<>(); - @Getter - private final Lock lock; + private final Lock lock = new ReentrantLock(); } From bc19ab4d9768128e7daaab3f7bf2bae9a6d68cba Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 7 Aug 2024 11:27:31 +0300 Subject: [PATCH 09/20] new: add island initialisationGrid --- .../main/java/org/island/model/Island.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/island/src/main/java/org/island/model/Island.java b/island/src/main/java/org/island/model/Island.java index 9789b04..f0a2fee 100644 --- a/island/src/main/java/org/island/model/Island.java +++ b/island/src/main/java/org/island/model/Island.java @@ -2,20 +2,24 @@ import lombok.Getter; import org.island.settings.Config; -/* -06/15/2024: -Island Class: Manages the entire island grid using a 2-dimensional array of Location objects. -@Data: Lombok annotation that automatically generates getters, setters, equals(), hashCode(), -and toString() methods for all fields in the class. - */ @Getter public class Island { private final Location[][] grid; public Island(Config config) { - this.grid = new Location[config.getIslandSimulationConfig().getIslandSize().getRows()] [config.getIslandSimulationConfig().getIslandSize().getColumns()]; + int rows = config.getIslandSimulationConfig().getIslandSize().getRows(); + int columns = config.getIslandSimulationConfig().getIslandSize().getColumns(); + this.grid = new Location[rows][columns]; + initializeGrid(rows, columns); } -} + private void initializeGrid(int rows, int columns) { + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + grid[i][j] = new Location(i, j); + } + } + } +} \ No newline at end of file From e5e5a097ea239d8e653d5e0200e775ce68ac2992 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Wed, 7 Aug 2024 11:28:03 +0300 Subject: [PATCH 10/20] new: add logic for Animal move --- .../services/AnimalMovementService.java | 68 +++++++++++-------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java index 3624734..09d0348 100644 --- a/island/src/main/java/org/island/services/AnimalMovementService.java +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -10,20 +10,34 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.concurrent.locks.Lock; import java.util.stream.Collectors; -//TODO Переписать + public class AnimalMovementService implements MovementService { + @Override public void move(OrganismDTO organism, Island island) { - if (organism instanceof OrganismDTO) { - OrganismDTO animal = (OrganismDTO) organism; - int speed = animal.getSpeed(); - + if (organism != null) { + int speed = organism.getSpeed(); if (speed > 0) { - move(animal, ); + Location currentLocation = findCurrentLocation(organism, island); + if (currentLocation != null) { + move(organism, currentLocation); + } + } + } + } + + private Location findCurrentLocation(OrganismDTO organism, Island island) { + for (Location[] row : island.getGrid()) { + for (Location location : row) { + if (location.getResidents().getOrDefault(organism.getType(), new HashSet<>()).contains(organism)) { + return location; + } } } + return null; } private List getAvailableDirections(Set visitedLocations, Location destination) { @@ -34,7 +48,7 @@ private List getAvailableDirections(Set visitedLocations, Lo .collect(Collectors.toList()); } - private Location findDestinationLocation(int countOfSteps, Location location, OrganismDTO animal) { + private Location findDestinationLocation(int countOfSteps, Location location, OrganismDTO organism) { Set visitedLocations = new HashSet<>(); Location destination = location; @@ -52,10 +66,9 @@ private Location findDestinationLocation(int countOfSteps, Location location, Or return destination; } - public void move(OrganismDTO animal, Location currentLocation) { + private void move(OrganismDTO animal, Location currentLocation) { int speed = animal.getSpeed(); int countOfSteps = Randomizer.random(speed); - Location destination = findDestinationLocation(countOfSteps, currentLocation, animal); if (moveTo(animal, destination)) { @@ -64,43 +77,38 @@ public void move(OrganismDTO animal, Location currentLocation) { } private boolean moveTo(OrganismDTO animal, Location destination) { - destination.getLock().lock(); - + Lock lock = destination.getLock(); + lock.lock(); try { String type = animal.getType(); HashMap> residents = destination.getResidents(); - Set sameKindOrganisms = residents.get(type); - int countOfSameKindOrganisms = sameKindOrganisms.size(); - int maxCount = animal.getMaxPopulation(); - if (countOfSameKindOrganisms < maxCount) { - return sameKindOrganisms.add(animal); - } else return false; + Set sameKindOrganisms = residents.computeIfAbsent(type, k -> new HashSet<>()); + + if (sameKindOrganisms.size() < animal.getMaxPopulation()) { + sameKindOrganisms.add(animal); + return true; + } + return false; } finally { - destination.getLock().unlock(); + lock.unlock(); } } private void remove(OrganismDTO animal, Location location) { - location.getLock().lock(); - + Lock lock = location.getLock(); + lock.lock(); try { - HashMap> residents = location.getResidents(); + HashMap> residents = location.getResidents(); String type = animal.getType(); Set sameKindOrganisms = residents.get(type); - if (organismStillAvailable(animal, location)) { + + if (sameKindOrganisms != null && sameKindOrganisms.contains(animal)) { sameKindOrganisms.remove(animal); } } finally { - location.getLock().unlock(); + lock.unlock(); } } - private boolean organismStillAvailable(OrganismDTO animal, Location location) { - HashMap> residents = location.getResidents(); - String type = animal.getType(); - Set organismStillAvailable = residents.get(type); - return organismStillAvailable.contains(animal); - } - } From 0cb779e405e385b99780fb8d87307681efad1065 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Sat, 10 Aug 2024 20:19:20 +0300 Subject: [PATCH 11/20] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=81=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=20=D0=B2=D1=8C=D1=8E=20=D0=94=D0=BE=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=20=D1=81=D0=B8=D0=BC=D1=83=D0=BB=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=80=20=D0=B6=D0=B8=D0=B7=D0=BD=D0=B8=20=D0=BD=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=B2=D0=B5=20=D0=94=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=B8=D0=BD=D0=B8=D1=86=D0=B8=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=B0=D1=82=D0=BE=D1=80=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- island/src/main/java/org/island/Main.java | 65 ++----------- .../java/org/island/entity/OrganismDTO.java | 8 ++ .../org/island/factory/OrganismFactory.java | 2 +- .../org/island/initializer/Initializer.java | 63 +++++++++++++ .../main/java/org/island/model/Island.java | 22 +---- .../main/java/org/island/model/Location.java | 1 - .../services/AnimalMovementService.java | 2 +- .../island/services/MapCreatorService.java | 92 +++++++++++++++++++ .../org/island/services/ViewMapService.java | 62 +++++++------ .../services/ViewStatisticsService.java | 24 ++--- .../org/island/simulation/Simulation.java | 75 ++++++++++++++- .../island/simulation/SimulationEngine.java | 9 ++ .../java/org/island/view/ConsoleView.java | 7 +- .../src/main/java/org/island/view/View.java | 1 + .../src/main/resources/new_master_config.yaml | 3 +- 15 files changed, 310 insertions(+), 126 deletions(-) create mode 100644 island/src/main/java/org/island/initializer/Initializer.java create mode 100644 island/src/main/java/org/island/services/MapCreatorService.java create mode 100644 island/src/main/java/org/island/simulation/SimulationEngine.java diff --git a/island/src/main/java/org/island/Main.java b/island/src/main/java/org/island/Main.java index 0bd70b2..a6793b7 100644 --- a/island/src/main/java/org/island/Main.java +++ b/island/src/main/java/org/island/Main.java @@ -1,69 +1,16 @@ package org.island; -import org.island.factory.OrganismFactory; -import org.island.model.Island; -import org.island.services.*; +import org.island.initializer.Initializer; import org.island.simulation.Simulation; -import org.island.settings.Config; -import org.island.view.ConsoleView; -import org.island.view.View; public class Main { public static void main(String[] args) { - //Welcome message - System.out.println("Hello and Welcome to the Island Simulation!"); - - //Load configuration - Config config = loadConfig(); - - //Init island and factory - Island island = createIsland(config); - OrganismFactory factory = createFactory(); - - //Init view - View view = createView(island, factory); - - // Initialize simulation - Simulation simulation = createSimulation(config, island, view); - - //Populate island and start simulation - runSimulation(simulation, island); - } - - private static Config loadConfig() { - return Config.initialize(); - } - private static Island createIsland(Config config) { - return new Island(config); - } - - private static OrganismFactory createFactory() { - return new OrganismFactory(); - } - - private static View createView(Island island, OrganismFactory factory) { - return new ConsoleView(island, factory); - } - - private static Simulation createSimulation(Config config, Island island, View view) { - MovementService movementService = new AnimalMovementService(); - MatingService matingService = new AnimalMatingService(); - FeedingService feedingService = new AnimalFeedingService(); - DeathService deathService = new AnimalDeathService(); + System.out.println("Hello and Welcome to the Island Simulation!"); - return new Simulation( - view, - island, - config.getIslandSimulationConfig().getSimulation().getPeriod(), - movementService, - matingService, - feedingService, - deathService); - } + Initializer initializer = new Initializer(); + Simulation simulation = initializer.initialize(); - private static void runSimulation(Simulation simulation, Island island) { - simulation.populateIsland(island); - simulation.runCycle(); + simulation.run(); } -} +} \ No newline at end of file diff --git a/island/src/main/java/org/island/entity/OrganismDTO.java b/island/src/main/java/org/island/entity/OrganismDTO.java index a83875b..f4faa2c 100644 --- a/island/src/main/java/org/island/entity/OrganismDTO.java +++ b/island/src/main/java/org/island/entity/OrganismDTO.java @@ -22,4 +22,12 @@ public class OrganismDTO { private double maxWeight; private int maxPopulation; private int speed; + + public EOrganisms getOrganismType() { + try { + return EOrganisms.valueOf(type.toUpperCase()); + } catch (IllegalArgumentException e) { + return EOrganisms.HERB; + } + } } diff --git a/island/src/main/java/org/island/factory/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java index cb38de8..4a78f6e 100644 --- a/island/src/main/java/org/island/factory/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -27,7 +27,7 @@ public OrganismFactory() { } @SneakyThrows - public static OrganismDTO createOrganism(EOrganisms organism) { + private static OrganismDTO createOrganism(EOrganisms organism) { OrganismParameters.AnimalParams params = config.getLimits().get(organism.getType()); return OrganismDTO.builder() .type(organism.getType()) diff --git a/island/src/main/java/org/island/initializer/Initializer.java b/island/src/main/java/org/island/initializer/Initializer.java new file mode 100644 index 0000000..9d399cd --- /dev/null +++ b/island/src/main/java/org/island/initializer/Initializer.java @@ -0,0 +1,63 @@ +package org.island.initializer; + +import org.island.factory.OrganismFactory; +import org.island.model.Island; +import org.island.services.*; +import org.island.simulation.Simulation; +import org.island.settings.Config; +import org.island.view.ConsoleView; +import org.island.view.View; + +public class Initializer { + + public Simulation initialize() { + // Load configuration + Config config = loadConfig(); + + // Init island and factory + OrganismFactory factory = createFactory(); + + // Init map creator service + MapCreatorService mapCreatorService = new MapCreatorService(factory); + + // Init island and populate + Island island = mapCreatorService.createIsland(config); + + // Init view + View view = createView(island, factory); + view.showStatistics(); + view.showMap(); + + // Initialize simulation + return createSimulation(config, island, view); + } + + private Config loadConfig() { + return Config.initialize(); + } + + private OrganismFactory createFactory() { + return new OrganismFactory(); + } + + private View createView(Island island, OrganismFactory factory) { + return new ConsoleView(island, factory); + } + + private Simulation createSimulation(Config config, Island island, View view) { + MovementService movementService = new AnimalMovementService(); + MatingService matingService = new AnimalMatingService(); + FeedingService feedingService = new AnimalFeedingService(); + DeathService deathService = new AnimalDeathService(); + + return new Simulation( + view, + island, + config.getIslandSimulationConfig().getSimulation().getPeriod(), + movementService, + matingService, + feedingService, + deathService, + createFactory()); + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/model/Island.java b/island/src/main/java/org/island/model/Island.java index f0a2fee..eee7982 100644 --- a/island/src/main/java/org/island/model/Island.java +++ b/island/src/main/java/org/island/model/Island.java @@ -1,25 +1,13 @@ package org.island.model; +import lombok.Data; import lombok.Getter; +import lombok.ToString; import org.island.settings.Config; -@Getter +@Data +@ToString public class Island { - private final Location[][] grid; - - public Island(Config config) { - int rows = config.getIslandSimulationConfig().getIslandSize().getRows(); - int columns = config.getIslandSimulationConfig().getIslandSize().getColumns(); - this.grid = new Location[rows][columns]; - initializeGrid(rows, columns); - } - - private void initializeGrid(int rows, int columns) { - for (int i = 0; i < rows; i++) { - for (int j = 0; j < columns; j++) { - grid[i][j] = new Location(i, j); - } - } - } + private Location[][] GRID; } \ No newline at end of file diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index 5b5b6f4..c9b10a8 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -17,6 +17,5 @@ public class Location { private final int column; private List directions; private HashMap> residents = new HashMap<>(); - private final Lock lock = new ReentrantLock(); } diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java index 09d0348..9d804ce 100644 --- a/island/src/main/java/org/island/services/AnimalMovementService.java +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -30,7 +30,7 @@ public void move(OrganismDTO organism, Island island) { } private Location findCurrentLocation(OrganismDTO organism, Island island) { - for (Location[] row : island.getGrid()) { + for (Location[] row : island.getGRID()) { for (Location location : row) { if (location.getResidents().getOrDefault(organism.getType(), new HashSet<>()).contains(organism)) { return location; diff --git a/island/src/main/java/org/island/services/MapCreatorService.java b/island/src/main/java/org/island/services/MapCreatorService.java new file mode 100644 index 0000000..332fe57 --- /dev/null +++ b/island/src/main/java/org/island/services/MapCreatorService.java @@ -0,0 +1,92 @@ +package org.island.services; + + +import org.island.entity.OrganismDTO; +import org.island.factory.OrganismFactory; +import org.island.model.Island; +import org.island.model.Location; +import org.island.settings.Config; +import org.island.util.Randomizer; + +import java.util.*; + +public class MapCreatorService { + + private final OrganismFactory organismFactory; + private int rows; + private int columns; + + public MapCreatorService(OrganismFactory factory) { + this.organismFactory = factory; + } + +// public Island(Config config) { + +// this.GRID = new Location[rows][columns]; +// initializeGrid(rows, columns); +// } + + public Island createIsland(Config config) { + Island island = new Island(); + initializeGrid(island, config); + populateIsland(island); + findLocationNeighbors(island); + return island; + } + + private void initializeGrid(Island island, Config config) { + rows = config.getIslandSimulationConfig().getIslandSize().getRows(); + columns = config.getIslandSimulationConfig().getIslandSize().getColumns(); + island.setGRID(new Location[rows][columns]); + for (int i = 0; i < rows; i++) { + for (int j = 0; j < columns; j++) { + island.getGRID()[i][j] = new Location(i, j); + } + } + } + + + private void populateIsland(Island island) { + Location[][] grid = island.getGRID(); + Map prototypes = organismFactory.getORGANISMS(); + for (Location[] value : grid) { + for (Location location : value) { + HashMap> residents = location.getResidents(); + for (OrganismDTO organism : prototypes.values()) { + String type = organism.getType(); + int maxCount = organism.getMaxPopulation(); + int count = Randomizer.random(maxCount / 2, maxCount); + Set organismSet = new HashSet<>(); + + for (int i = 0; i < count; i++) { + organismSet.add(organismFactory.getORGANISMS().get(type)); + } + + residents.put(type, organismSet); + } + location.setResidents(residents); + } + } + } + + private void findLocationNeighbors(Island island) { + Location[][] grid = island.getGRID(); + for (int row = 0; row < grid.length; row++) { + for (int col = 0; col < grid[row].length; col++) { + Location location = grid[row][col]; + List neighbours = findNeighbors(row, col, grid); + location.setDirections(neighbours); + } + } + } + + private List findNeighbors(int row, int col, Location[][] grid) { + List result = new ArrayList<>(); + if (row > 0) result.add(grid[row - 1][col]); + if (col > 0) result.add(grid[row][col - 1]); + if (row < rows - 1) result.add(grid[row + 1][col]); + if (col < columns - 1) result.add(grid[row][col + 1]); + + return result; + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java index 0c2868f..c55e51f 100644 --- a/island/src/main/java/org/island/services/ViewMapService.java +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -1,5 +1,6 @@ package org.island.services; +import org.island.entity.EOrganisms; import org.island.entity.OrganismDTO; import org.island.factory.OrganismFactory; import org.island.model.Island; @@ -9,6 +10,7 @@ import java.util.*; public class ViewMapService { + //TODO Вынести в отдельный файл конфигурации public static final int HEIGHT_DIAGRAM = 10; public static final int POPULATION_HIGH = 70; // int between 40 - 100 public static final int POPULATION_AVERAGE = POPULATION_HIGH - 40; @@ -18,32 +20,29 @@ public class ViewMapService { public ViewMapService(OrganismFactory factory) { this.factory = factory; } - + //TODO Карта отрисовывается, но некорректно public void showMap(Island island) { StringBuilder out = new StringBuilder("\n"); Map prototypes = factory.getORGANISMS(); List organisms = new ArrayList<>(prototypes.values()); - Location[][] grid = island.getGrid(); + Location[][] grid = island.getGRID(); int organismsCount = organisms.size(); - Map currentPopulation = countOrganisms(organisms, grid); + Map currentPopulation = countOrganisms(organisms, grid); drawDiagram(out, organisms, organismsCount, currentPopulation); - out.append(" ".repeat(5)).append("|"); + out.append("\n").append(" ".repeat(5)).append("|"); drawIcons(out, organisms); System.out.println(out); } - private void drawDiagram(StringBuilder out, List organisms, int organismsCount, Map currentPopulation) { + private void drawDiagram(StringBuilder out, List organisms, int organismsCount, Map currentPopulation) { for (int row = 0; row < HEIGHT_DIAGRAM; row++) { - int percent = 100; - out.append(row == 0 - ? String.format("%-3s %%|", percent) - : String.format(" %-2s %%|", percent - row * 10) - ); + int percent = 100 - row * 10; + out.append(String.format("%-3d %%|", percent)); for (int col = 0; col < organismsCount; col++) { String residentString = fill(row, col, currentPopulation, organisms); - int LocationWidth = 5; - out.append(String.format("%-" + LocationWidth + "s", residentString)); + int locationWidth = 4; // Adjust width based on icon size + out.append(String.format("%-" + locationWidth + "s", residentString)); } out.append("\n"); @@ -51,51 +50,53 @@ private void drawDiagram(StringBuilder out, List organisms, int org } private void drawIcons(StringBuilder out, List organisms) { - List skipList = List.of(3, 7, 10); // icons with different width, so will be offset in this position - + int iconWidth = 1; // Width for spacing icons for (int i = 0; i < organisms.size(); i++) { String icon = organisms.get(i).getIcon(); out.append(icon); - if (!skipList.contains(i)) { - out.append(" "); + if (i < organisms.size() - 1) { + out.append(" ".repeat(iconWidth)); } } } - private Map countOrganisms(List organisms, Location[][] grid) { - Map result = new HashMap<>(); + private Map countOrganisms(List organisms, Location[][] grid) { + Map result = new EnumMap<>(EOrganisms.class); for (Location[] row : grid) { for (Location location : row) { HashMap> residents = location.getResidents(); if (Objects.nonNull(residents)) { - organisms.forEach(organism -> { - String type = organism.getType(); - result.put(type, result.getOrDefault(type, 0) + residents.get(type).size()); - }); + for (OrganismDTO organism : organisms) { + EOrganisms type = organism.getOrganismType(); + Set organismsSet = residents.get(type.getType()); + if (organismsSet != null) { + int count = result.getOrDefault(type, 0) + organismsSet.size(); + result.put(type, count); + } + } } } } return result; } - private String fill(int row, int col, Map currentPopulation, List organisms) { + private String fill(int row, int col, Map currentPopulation, List organisms) { OrganismDTO organism = organisms.get(col); - String type = organism.getType(); + EOrganisms type = organism.getOrganismType(); Config config = Config.initialize(); int mapRow = config.getIslandSimulationConfig().getIslandSize().getRows(); int mapCol = config.getIslandSimulationConfig().getIslandSize().getColumns(); int maxCount = organism.getMaxPopulation() * mapRow * mapCol; - int currentCount = currentPopulation.get(type); + int currentCount = currentPopulation.getOrDefault(type, 0); double ratioPercent = 100.0 * currentCount / maxCount; double currentPercent = 100.0 - row * 10; String filler = choseFiller(ratioPercent, currentPercent); - return "." + filler + Color.RESET + "."; + return filler; } private String choseFiller(double ratioPercent, double currentPercent) { - String filler = "."; - String color = Color.RESET; + String color; if (currentPercent <= ratioPercent) { if (ratioPercent >= POPULATION_HIGH) { @@ -103,12 +104,13 @@ private String choseFiller(double ratioPercent, double currentPercent) { } else if (ratioPercent >= POPULATION_AVERAGE) { color = Color.FILL_YELLOW; } else { + color = Color.FILL_RED; } - filler = " "; + return color + " "; // Два пробела для заполнения } - return color + filler; + return Color.RESET + ".."; // Два точки для пустого места } private static class Color { diff --git a/island/src/main/java/org/island/services/ViewStatisticsService.java b/island/src/main/java/org/island/services/ViewStatisticsService.java index c81b8d1..d802060 100644 --- a/island/src/main/java/org/island/services/ViewStatisticsService.java +++ b/island/src/main/java/org/island/services/ViewStatisticsService.java @@ -6,7 +6,6 @@ import org.island.model.Location; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Objects; @@ -17,25 +16,28 @@ public void showStatistics(Island island, int day) { Map statsGrassEaters = new HashMap<>(); Map statsPlants = new HashMap<>(); - Location[][] grid = island.getGrid(); - + Location[][] grid = island.getGRID(); for (Location[] row : grid) { for (Location location : row) { var residents = location.getResidents(); if (Objects.nonNull(residents)) { residents.values().stream() - .filter(set -> set.size() > 0) + .filter(set -> !set.isEmpty()) .forEach(set -> { OrganismDTO organism = set.stream().findAny().get(); - String name = organism.getClass().getSimpleName(); - String icon = organism.getIcon(); + EOrganisms organismType = organism.getOrganismType(); + String name = organismType.getType(); + String icon = Objects.nonNull(organism.getIcon()) ? organism.getIcon() : ""; String info = icon + name; - if (!organism.getRation().containsKey("Herb")) { - statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); - } else if (organism.getRation().containsKey("Herb")) { - statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); - } else { + // Распределение по соответствующим категориям + if (organismType.isAnimal()) { + if (organismType.getGroupId() <= 4) { // Предположительно, хищники имеют groupId от 0 до 4 + statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); + } else { // Остальные животные - травоядные + statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); + } + } else { // Все, что не является животным, - это растения statsPlants.put(info, statsPlants.getOrDefault(info, 0) + set.size()); } }); diff --git a/island/src/main/java/org/island/simulation/Simulation.java b/island/src/main/java/org/island/simulation/Simulation.java index e86d063..6846313 100644 --- a/island/src/main/java/org/island/simulation/Simulation.java +++ b/island/src/main/java/org/island/simulation/Simulation.java @@ -1,16 +1,24 @@ package org.island.simulation; import lombok.RequiredArgsConstructor; -import org.island.entity.EOrganisms; +import org.island.entity.OrganismDTO; +import org.island.factory.OrganismFactory; import org.island.model.Island; +import org.island.model.Location; import org.island.services.DeathService; import org.island.services.FeedingService; import org.island.services.MatingService; import org.island.services.MovementService; +import org.island.util.Randomizer; import org.island.view.View; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + @RequiredArgsConstructor -public class Simulation { +public class Simulation implements SimulationEngine{ private final View view; private final Island island; private final int period; @@ -18,12 +26,71 @@ public class Simulation { private final MatingService matingService; private final FeedingService feedingService; private final DeathService deathService; + private final OrganismFactory organismFactory; public void populateIsland(Island island) { + Location[][] grid = island.getGRID(); + Map prototypes = organismFactory.getORGANISMS(); + + for (Location[] locations : grid) { + for (Location location : locations) { + HashMap> residents = location.getResidents(); + for (OrganismDTO organism : prototypes.values()) { + String type = organism.getType(); + int maxCount = organism.getMaxPopulation(); + int count = Randomizer.random(maxCount / 2, maxCount); + Set organismSet = new HashSet<>(); + + for (int i = 0; i < count; i++) { + organismSet.add(organismFactory.getORGANISMS().get(type)); + } + residents.put(type, organismSet); + } + } + } } - public void runCycle(){ + //TODO Сервисы дописать + public void runCycle() { + Location[][] grid = island.getGRID(); + + for (int cycle = 0; cycle < period; cycle++) { + view.showMessage("Starting cycle " + (cycle + 1)); + + // Process each location on the island + for (Location[] locations : grid) { + for (Location location : locations) { + Map> residents = location.getResidents(); + +/* // Move organisms + movementService.move(location); + +*//* // Feed organisms + feedingService.feed(location); + // Mate organisms + matingService.mate(location); + + // Handle deaths + deathService.handleDeaths(location);*/ + } + } + + // Update view after each cycle + view.showStatistics(); + view.showMap(); + + view.showMessage("Cycle " + (cycle + 1) + " completed"); + } + + view.showMessage("Simulation completed"); } -} + public void run() { + view.showMessage("Initializing island population..."); + populateIsland(island); + + view.showMessage("Starting simulation..."); + runCycle(); + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/simulation/SimulationEngine.java b/island/src/main/java/org/island/simulation/SimulationEngine.java new file mode 100644 index 0000000..4255a59 --- /dev/null +++ b/island/src/main/java/org/island/simulation/SimulationEngine.java @@ -0,0 +1,9 @@ +package org.island.simulation; + +import org.island.model.Island; + +public interface SimulationEngine { + void populateIsland(Island island); + void runCycle(); + void run(); +} \ No newline at end of file diff --git a/island/src/main/java/org/island/view/ConsoleView.java b/island/src/main/java/org/island/view/ConsoleView.java index be30330..4c825bc 100644 --- a/island/src/main/java/org/island/view/ConsoleView.java +++ b/island/src/main/java/org/island/view/ConsoleView.java @@ -30,4 +30,9 @@ public void showStatistics() { public void showMap() { viewMapService.showMap(island); } -} + + @Override + public void showMessage(String message) { + System.out.println(message); + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/view/View.java b/island/src/main/java/org/island/view/View.java index aed297d..351eda9 100644 --- a/island/src/main/java/org/island/view/View.java +++ b/island/src/main/java/org/island/view/View.java @@ -3,4 +3,5 @@ public interface View { void showStatistics(); void showMap(); + void showMessage(String message); } diff --git a/island/src/main/resources/new_master_config.yaml b/island/src/main/resources/new_master_config.yaml index 101003d..f553564 100644 --- a/island/src/main/resources/new_master_config.yaml +++ b/island/src/main/resources/new_master_config.yaml @@ -3,7 +3,7 @@ islandSimulationConfig: rows: 100 columns: 20 simulation: - period: 500 + period: 50 startWeightFactor: 0.70 weightDecreaseFactor: 0.03 deathThreshold: 0.1 @@ -106,6 +106,7 @@ organismParameters: Buffalo: "🐃" Duck: "🦆" Caterpillar: "🐛" + Herb: "🌿" foodMap: Wolf: From 24b127bb80e9b05edccea2917dc0531baba0fc44 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Sun, 11 Aug 2024 18:50:42 +0300 Subject: [PATCH 12/20] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=D1=87=D0=B8=D0=BD=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/island/entity/EOrganisms.java | 1 + .../java/org/island/entity/OrganismDTO.java | 18 +++- .../org/island/factory/OrganismFactory.java | 2 +- .../main/java/org/island/model/Location.java | 85 +++++++++++++++++-- .../services/AnimalMovementService.java | 9 +- .../island/services/MapCreatorService.java | 22 +++-- .../org/island/services/ViewMapService.java | 2 +- .../services/ViewStatisticsService.java | 8 +- .../org/island/simulation/Simulation.java | 4 +- 9 files changed, 125 insertions(+), 26 deletions(-) diff --git a/island/src/main/java/org/island/entity/EOrganisms.java b/island/src/main/java/org/island/entity/EOrganisms.java index 572f74d..0f8f922 100644 --- a/island/src/main/java/org/island/entity/EOrganisms.java +++ b/island/src/main/java/org/island/entity/EOrganisms.java @@ -26,4 +26,5 @@ public enum EOrganisms { private final String type; private final int groupId; private final boolean isAnimal; + //groupId -> group (plants, grasseaters, predators) } diff --git a/island/src/main/java/org/island/entity/OrganismDTO.java b/island/src/main/java/org/island/entity/OrganismDTO.java index f4faa2c..fea9d78 100644 --- a/island/src/main/java/org/island/entity/OrganismDTO.java +++ b/island/src/main/java/org/island/entity/OrganismDTO.java @@ -4,13 +4,13 @@ import lombok.*; import java.util.HashMap; +import java.util.Objects; @Builder @Getter @Setter @AllArgsConstructor @NoArgsConstructor -@EqualsAndHashCode public class OrganismDTO { private String type; private int groupId; @@ -30,4 +30,20 @@ public EOrganisms getOrganismType() { return EOrganisms.HERB; } } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof OrganismDTO that)) return false; + return groupId == that.groupId && organismId == that.organismId && isAlive == that.isAlive && Double.compare(currentWeight, that.currentWeight) == 0 && Double.compare(maxWeight, that.maxWeight) == 0 && maxPopulation == that.maxPopulation && speed == that.speed && Objects.equals(type, that.type) && Objects.equals(icon, that.icon) && Objects.equals(ration, that.ration); + } + + protected boolean canEqual(final Object other) { + return other instanceof OrganismDTO; + } + + @Override + public int hashCode() { + return Objects.hash(type, groupId, organismId, isAlive, currentWeight, icon, ration, maxWeight, maxPopulation, speed); + } } diff --git a/island/src/main/java/org/island/factory/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java index 4a78f6e..cb38de8 100644 --- a/island/src/main/java/org/island/factory/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -27,7 +27,7 @@ public OrganismFactory() { } @SneakyThrows - private static OrganismDTO createOrganism(EOrganisms organism) { + public static OrganismDTO createOrganism(EOrganisms organism) { OrganismParameters.AnimalParams params = config.getLimits().get(organism.getType()); return OrganismDTO.builder() .type(organism.getType()) diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index c9b10a8..b5ef28a 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -1,21 +1,94 @@ package org.island.model; -import lombok.*; +import lombok.RequiredArgsConstructor; +import lombok.ToString; import org.island.entity.OrganismDTO; -import java.util.HashMap; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -@Data @RequiredArgsConstructor @ToString public class Location { private final int row; private final int column; private List directions; - private HashMap> residents = new HashMap<>(); + private Map> residents = new HashMap<>(); private final Lock lock = new ReentrantLock(); + + public int getRow() { + return this.row; + } + + public int getColumn() { + return this.column; + } + + public List getDirections() { + return this.directions; + } + + public Map> getResidents() { + return this.residents; + } + + public Lock getLock() { + return this.lock; + } + + public void setDirections(List directions) { + this.directions = directions; + } + + public void setResidents(Map> residents) { + this.residents = residents; + } + + public Set addResident(OrganismDTO resident) { + Set organismDTOS = this.residents.get(resident.getType()); + if (organismDTOS == null) { + organismDTOS = new HashSet<>(); + } + organismDTOS.add(resident); + return organismDTOS; + } + + public boolean equals(final Object o) { + if (o == this) return true; + if (!(o instanceof Location)) return false; + final Location other = (Location) o; + if (!other.canEqual((Object) this)) return false; + if (this.getRow() != other.getRow()) return false; + if (this.getColumn() != other.getColumn()) return false; + final Object this$directions = this.getDirections(); + final Object other$directions = other.getDirections(); + if (this$directions == null ? other$directions != null : !this$directions.equals(other$directions)) + return false; + final Object this$residents = this.getResidents(); + final Object other$residents = other.getResidents(); + if (this$residents == null ? other$residents != null : !this$residents.equals(other$residents)) return false; + final Object this$lock = this.getLock(); + final Object other$lock = other.getLock(); + if (this$lock == null ? other$lock != null : !this$lock.equals(other$lock)) return false; + return true; + } + + protected boolean canEqual(final Object other) { + return other instanceof Location; + } + + public int hashCode() { + final int PRIME = 59; + int result = 1; + result = result * PRIME + this.getRow(); + result = result * PRIME + this.getColumn(); + final Object $directions = this.getDirections(); + result = result * PRIME + ($directions == null ? 43 : $directions.hashCode()); + final Object $residents = this.getResidents(); + result = result * PRIME + ($residents == null ? 43 : $residents.hashCode()); + final Object $lock = this.getLock(); + result = result * PRIME + ($lock == null ? 43 : $lock.hashCode()); + return result; + } } diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java index 9d804ce..4833f44 100644 --- a/island/src/main/java/org/island/services/AnimalMovementService.java +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -6,10 +6,7 @@ import org.island.model.Location; import org.island.util.Randomizer; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.concurrent.locks.Lock; import java.util.stream.Collectors; @@ -81,7 +78,7 @@ private boolean moveTo(OrganismDTO animal, Location destination) { lock.lock(); try { String type = animal.getType(); - HashMap> residents = destination.getResidents(); + Map> residents = destination.getResidents(); Set sameKindOrganisms = residents.computeIfAbsent(type, k -> new HashSet<>()); if (sameKindOrganisms.size() < animal.getMaxPopulation()) { @@ -98,7 +95,7 @@ private void remove(OrganismDTO animal, Location location) { Lock lock = location.getLock(); lock.lock(); try { - HashMap> residents = location.getResidents(); + Map> residents = location.getResidents(); String type = animal.getType(); Set sameKindOrganisms = residents.get(type); diff --git a/island/src/main/java/org/island/services/MapCreatorService.java b/island/src/main/java/org/island/services/MapCreatorService.java index 332fe57..a3a6932 100644 --- a/island/src/main/java/org/island/services/MapCreatorService.java +++ b/island/src/main/java/org/island/services/MapCreatorService.java @@ -1,6 +1,7 @@ package org.island.services; +import org.island.entity.EOrganisms; import org.island.entity.OrganismDTO; import org.island.factory.OrganismFactory; import org.island.model.Island; @@ -49,22 +50,31 @@ private void initializeGrid(Island island, Config config) { private void populateIsland(Island island) { Location[][] grid = island.getGRID(); Map prototypes = organismFactory.getORGANISMS(); + Set organismSet = new HashSet<>(); for (Location[] value : grid) { for (Location location : value) { - HashMap> residents = location.getResidents(); + Map> residents = location.getResidents(); for (OrganismDTO organism : prototypes.values()) { String type = organism.getType(); int maxCount = organism.getMaxPopulation(); int count = Randomizer.random(maxCount / 2, maxCount); - Set organismSet = new HashSet<>(); for (int i = 0; i < count; i++) { - organismSet.add(organismFactory.getORGANISMS().get(type)); - } - + location.addResident(OrganismFactory + .createOrganism(EOrganisms.valueOf(type.toUpperCase()))); + } //Добавить какое-то количество (count) объектов ПО ШАБЛОНУ residents.put(type, organismSet); } - location.setResidents(residents); +// location.setResidents(residents);//Переписать +// residents.values().forEach(System.out::println); + } + } + for (Location[] value : grid) { + for (Location location : value) { + Map> residents = location.getResidents(); + for (String type : residents.keySet()) { + System.out.println(type + residents.get(type)); + } } } } diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java index c55e51f..1513ced 100644 --- a/island/src/main/java/org/island/services/ViewMapService.java +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -64,7 +64,7 @@ private Map countOrganisms(List organisms, Loc Map result = new EnumMap<>(EOrganisms.class); for (Location[] row : grid) { for (Location location : row) { - HashMap> residents = location.getResidents(); + Map> residents = location.getResidents(); if (Objects.nonNull(residents)) { for (OrganismDTO organism : organisms) { EOrganisms type = organism.getOrganismType(); diff --git a/island/src/main/java/org/island/services/ViewStatisticsService.java b/island/src/main/java/org/island/services/ViewStatisticsService.java index d802060..f2a80a9 100644 --- a/island/src/main/java/org/island/services/ViewStatisticsService.java +++ b/island/src/main/java/org/island/services/ViewStatisticsService.java @@ -8,6 +8,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.Set; public class ViewStatisticsService { @@ -19,10 +20,10 @@ public void showStatistics(Island island, int day) { Location[][] grid = island.getGRID(); for (Location[] row : grid) { for (Location location : row) { - var residents = location.getResidents(); + Map> residents = location.getResidents(); if (Objects.nonNull(residents)) { residents.values().stream() - .filter(set -> !set.isEmpty()) + .filter(set -> set.size() > 0) .forEach(set -> { OrganismDTO organism = set.stream().findAny().get(); EOrganisms organismType = organism.getOrganismType(); @@ -32,7 +33,8 @@ public void showStatistics(Island island, int day) { // Распределение по соответствующим категориям if (organismType.isAnimal()) { - if (organismType.getGroupId() <= 4) { // Предположительно, хищники имеют groupId от 0 до 4 + System.out.println(set.size()); + if (organismType.getGroupId() <= 4) { statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); } else { // Остальные животные - травоядные statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); diff --git a/island/src/main/java/org/island/simulation/Simulation.java b/island/src/main/java/org/island/simulation/Simulation.java index 6846313..184665a 100644 --- a/island/src/main/java/org/island/simulation/Simulation.java +++ b/island/src/main/java/org/island/simulation/Simulation.java @@ -34,7 +34,7 @@ public void populateIsland(Island island) { for (Location[] locations : grid) { for (Location location : locations) { - HashMap> residents = location.getResidents(); + Map> residents = location.getResidents(); for (OrganismDTO organism : prototypes.values()) { String type = organism.getType(); @@ -91,6 +91,6 @@ public void run() { populateIsland(island); view.showMessage("Starting simulation..."); - runCycle(); +// runCycle(); } } \ No newline at end of file From 92d5d72cd84ed6ce9925d67a788804d2e6e3700b Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Sun, 11 Aug 2024 21:16:47 +0300 Subject: [PATCH 13/20] =?UTF-8?q?=D0=9F=D0=BE=D1=87=D0=B8=D0=BD=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D1=81=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/island/entity/OrganismDTO.java | 17 ++------ .../org/island/factory/OrganismFactory.java | 15 ++----- .../main/java/org/island/model/Location.java | 20 +++++----- .../island/services/MapCreatorService.java | 40 +++++++++---------- .../org/island/services/ViewMapService.java | 25 +++++++----- .../services/ViewStatisticsService.java | 6 +-- .../org/island/simulation/Simulation.java | 32 ++++++++------- .../main/java/org/island/util/Randomizer.java | 7 +++- 8 files changed, 75 insertions(+), 87 deletions(-) diff --git a/island/src/main/java/org/island/entity/OrganismDTO.java b/island/src/main/java/org/island/entity/OrganismDTO.java index fea9d78..82f45c2 100644 --- a/island/src/main/java/org/island/entity/OrganismDTO.java +++ b/island/src/main/java/org/island/entity/OrganismDTO.java @@ -5,13 +5,16 @@ import java.util.HashMap; import java.util.Objects; +import java.util.UUID; @Builder @Getter @Setter @AllArgsConstructor @NoArgsConstructor +@EqualsAndHashCode public class OrganismDTO { + private UUID uuid; private String type; private int groupId; private int organismId; @@ -31,19 +34,5 @@ public EOrganisms getOrganismType() { } } - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof OrganismDTO that)) return false; - return groupId == that.groupId && organismId == that.organismId && isAlive == that.isAlive && Double.compare(currentWeight, that.currentWeight) == 0 && Double.compare(maxWeight, that.maxWeight) == 0 && maxPopulation == that.maxPopulation && speed == that.speed && Objects.equals(type, that.type) && Objects.equals(icon, that.icon) && Objects.equals(ration, that.ration); - } - - protected boolean canEqual(final Object other) { - return other instanceof OrganismDTO; - } - @Override - public int hashCode() { - return Objects.hash(type, groupId, organismId, isAlive, currentWeight, icon, ration, maxWeight, maxPopulation, speed); - } } diff --git a/island/src/main/java/org/island/factory/OrganismFactory.java b/island/src/main/java/org/island/factory/OrganismFactory.java index cb38de8..708ddc4 100644 --- a/island/src/main/java/org/island/factory/OrganismFactory.java +++ b/island/src/main/java/org/island/factory/OrganismFactory.java @@ -1,35 +1,28 @@ package org.island.factory; import lombok.Getter; -import lombok.SneakyThrows; import org.island.entity.EOrganisms; import org.island.entity.OrganismDTO; import org.island.settings.Config; import org.island.settings.OrganismParameters; -import java.util.HashMap; -import java.util.Map; +import java.util.UUID; + @Getter public class OrganismFactory { private static final OrganismParameters config; - private final Map ORGANISMS = new HashMap<>(); static { Config configuration = Config.initialize(); config = configuration.getOrganismParameters(); } - public OrganismFactory() { - for (EOrganisms value : EOrganisms.values()) { - ORGANISMS.put(value.getType(), createOrganism(value)); - } - } - - @SneakyThrows public static OrganismDTO createOrganism(EOrganisms organism) { OrganismParameters.AnimalParams params = config.getLimits().get(organism.getType()); + return OrganismDTO.builder() + .uuid(UUID.randomUUID()) .type(organism.getType()) .groupId(organism.getGroupId()) .icon(config.getIcons().get(organism.getType())) diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index b5ef28a..7249e35 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -1,6 +1,5 @@ package org.island.model; -import lombok.RequiredArgsConstructor; import lombok.ToString; import org.island.entity.OrganismDTO; @@ -8,15 +7,20 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -@RequiredArgsConstructor @ToString public class Location { private final int row; private final int column; private List directions; - private Map> residents = new HashMap<>(); + private Map> residents; private final Lock lock = new ReentrantLock(); + public Location(int row, int column) { + this.row = row; + this.column = column; + this.residents = new HashMap<>(); + } + public int getRow() { return this.row; } @@ -45,13 +49,9 @@ public void setResidents(Map> residents) { this.residents = residents; } - public Set addResident(OrganismDTO resident) { - Set organismDTOS = this.residents.get(resident.getType()); - if (organismDTOS == null) { - organismDTOS = new HashSet<>(); - } - organismDTOS.add(resident); - return organismDTOS; + public void addResident(OrganismDTO resident) { + Set organismSet = residents.computeIfAbsent(resident.getType(), k -> new HashSet<>()); + organismSet.add(resident); } public boolean equals(final Object o) { diff --git a/island/src/main/java/org/island/services/MapCreatorService.java b/island/src/main/java/org/island/services/MapCreatorService.java index a3a6932..8aa043b 100644 --- a/island/src/main/java/org/island/services/MapCreatorService.java +++ b/island/src/main/java/org/island/services/MapCreatorService.java @@ -49,34 +49,30 @@ private void initializeGrid(Island island, Config config) { private void populateIsland(Island island) { Location[][] grid = island.getGRID(); - Map prototypes = organismFactory.getORGANISMS(); - Set organismSet = new HashSet<>(); - for (Location[] value : grid) { - for (Location location : value) { - Map> residents = location.getResidents(); - for (OrganismDTO organism : prototypes.values()) { - String type = organism.getType(); - int maxCount = organism.getMaxPopulation(); - int count = Randomizer.random(maxCount / 2, maxCount); + + for (Location[] row : grid) { + for (Location location : row) { + for (EOrganisms organismType : EOrganisms.values()) { + OrganismDTO prototype = OrganismFactory.createOrganism(organismType); + int maxCount = prototype.getMaxPopulation(); + int count = Randomizer.random(0, maxCount); for (int i = 0; i < count; i++) { - location.addResident(OrganismFactory - .createOrganism(EOrganisms.valueOf(type.toUpperCase()))); - } //Добавить какое-то количество (count) объектов ПО ШАБЛОНУ - residents.put(type, organismSet); + location.addResident(OrganismFactory.createOrganism(organismType)); + } } -// location.setResidents(residents);//Переписать -// residents.values().forEach(System.out::println); +// logLocationContent(location);// Метод проверки количества каждого вида на клетке } } - for (Location[] value : grid) { - for (Location location : value) { - Map> residents = location.getResidents(); - for (String type : residents.keySet()) { - System.out.println(type + residents.get(type)); - } - } + } + + private void logLocationContent(Location location) { + StringBuilder log = new StringBuilder(); + log.append("Location (").append(location.getRow()).append(", ").append(location.getColumn()).append("): "); + for (Map.Entry> entry : location.getResidents().entrySet()) { + log.append(entry.getKey()).append(" - ").append(entry.getValue().size()).append("; "); } + System.out.println(log.toString()); } private void findLocationNeighbors(Island island) { diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java index 1513ced..d26bd17 100644 --- a/island/src/main/java/org/island/services/ViewMapService.java +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -10,9 +10,9 @@ import java.util.*; public class ViewMapService { - //TODO Вынести в отдельный файл конфигурации + public static final int HEIGHT_DIAGRAM = 10; - public static final int POPULATION_HIGH = 70; // int between 40 - 100 + public static final int POPULATION_HIGH = 70; public static final int POPULATION_AVERAGE = POPULATION_HIGH - 40; private final OrganismFactory factory; @@ -20,12 +20,11 @@ public class ViewMapService { public ViewMapService(OrganismFactory factory) { this.factory = factory; } - //TODO Карта отрисовывается, но некорректно + public void showMap(Island island) { StringBuilder out = new StringBuilder("\n"); - Map prototypes = factory.getORGANISMS(); - List organisms = new ArrayList<>(prototypes.values()); Location[][] grid = island.getGRID(); + List organisms = createOrganismPrototypes(); int organismsCount = organisms.size(); Map currentPopulation = countOrganisms(organisms, grid); drawDiagram(out, organisms, organismsCount, currentPopulation); @@ -34,6 +33,14 @@ public void showMap(Island island) { System.out.println(out); } + private List createOrganismPrototypes() { + List organisms = new ArrayList<>(); + for (EOrganisms organismType : EOrganisms.values()) { + organisms.add(OrganismFactory.createOrganism(organismType)); + } + return organisms; + } + private void drawDiagram(StringBuilder out, List organisms, int organismsCount, Map currentPopulation) { for (int row = 0; row < HEIGHT_DIAGRAM; row++) { int percent = 100 - row * 10; @@ -41,7 +48,7 @@ private void drawDiagram(StringBuilder out, List organisms, int org for (int col = 0; col < organismsCount; col++) { String residentString = fill(row, col, currentPopulation, organisms); - int locationWidth = 4; // Adjust width based on icon size + int locationWidth = 4; out.append(String.format("%-" + locationWidth + "s", residentString)); } @@ -50,7 +57,7 @@ private void drawDiagram(StringBuilder out, List organisms, int org } private void drawIcons(StringBuilder out, List organisms) { - int iconWidth = 1; // Width for spacing icons + int iconWidth = 1; for (int i = 0; i < organisms.size(); i++) { String icon = organisms.get(i).getIcon(); out.append(icon); @@ -107,10 +114,10 @@ private String choseFiller(double ratioPercent, double currentPercent) { color = Color.FILL_RED; } - return color + " "; // Два пробела для заполнения + return color + " "; } - return Color.RESET + ".."; // Два точки для пустого места + return Color.RESET + ".."; } private static class Color { diff --git a/island/src/main/java/org/island/services/ViewStatisticsService.java b/island/src/main/java/org/island/services/ViewStatisticsService.java index f2a80a9..dc5a4d8 100644 --- a/island/src/main/java/org/island/services/ViewStatisticsService.java +++ b/island/src/main/java/org/island/services/ViewStatisticsService.java @@ -31,15 +31,13 @@ public void showStatistics(Island island, int day) { String icon = Objects.nonNull(organism.getIcon()) ? organism.getIcon() : ""; String info = icon + name; - // Распределение по соответствующим категориям if (organismType.isAnimal()) { - System.out.println(set.size()); if (organismType.getGroupId() <= 4) { statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); - } else { // Остальные животные - травоядные + } else { statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); } - } else { // Все, что не является животным, - это растения + } else { statsPlants.put(info, statsPlants.getOrDefault(info, 0) + set.size()); } }); diff --git a/island/src/main/java/org/island/simulation/Simulation.java b/island/src/main/java/org/island/simulation/Simulation.java index 184665a..d6417aa 100644 --- a/island/src/main/java/org/island/simulation/Simulation.java +++ b/island/src/main/java/org/island/simulation/Simulation.java @@ -1,6 +1,7 @@ package org.island.simulation; import lombok.RequiredArgsConstructor; +import org.island.entity.EOrganisms; import org.island.entity.OrganismDTO; import org.island.factory.OrganismFactory; import org.island.model.Island; @@ -18,7 +19,7 @@ import java.util.Set; @RequiredArgsConstructor -public class Simulation implements SimulationEngine{ +public class Simulation implements SimulationEngine { private final View view; private final Island island; private final int period; @@ -30,27 +31,28 @@ public class Simulation implements SimulationEngine{ public void populateIsland(Island island) { Location[][] grid = island.getGRID(); - Map prototypes = organismFactory.getORGANISMS(); for (Location[] locations : grid) { for (Location location : locations) { Map> residents = location.getResidents(); - for (OrganismDTO organism : prototypes.values()) { - String type = organism.getType(); - int maxCount = organism.getMaxPopulation(); + for (EOrganisms organismType : EOrganisms.values()) { + String type = organismType.getType(); + int maxCount = organismFactory.createOrganism(organismType).getMaxPopulation(); int count = Randomizer.random(maxCount / 2, maxCount); Set organismSet = new HashSet<>(); for (int i = 0; i < count; i++) { - organismSet.add(organismFactory.getORGANISMS().get(type)); + // Создание нового экземпляра для каждого организма + organismSet.add(OrganismFactory.createOrganism(organismType)); } residents.put(type, organismSet); } } } } - //TODO Сервисы дописать + + // TODO: Дописать сервисы public void runCycle() { Location[][] grid = island.getGRID(); @@ -62,17 +64,17 @@ public void runCycle() { for (Location location : locations) { Map> residents = location.getResidents(); -/* // Move organisms - movementService.move(location); + // Move organisms + // movementService.move(location); -*//* // Feed organisms - feedingService.feed(location); + // Feed organisms + // feedingService.feed(location); // Mate organisms - matingService.mate(location); + // matingService.mate(location); // Handle deaths - deathService.handleDeaths(location);*/ + // deathService.handleDeaths(location); } } @@ -91,6 +93,6 @@ public void run() { populateIsland(island); view.showMessage("Starting simulation..."); -// runCycle(); + // runCycle(); } -} \ No newline at end of file +} diff --git a/island/src/main/java/org/island/util/Randomizer.java b/island/src/main/java/org/island/util/Randomizer.java index 7c8df5b..924d759 100644 --- a/island/src/main/java/org/island/util/Randomizer.java +++ b/island/src/main/java/org/island/util/Randomizer.java @@ -1,17 +1,20 @@ package org.island.util; +import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class Randomizer { + private static final Random RANDOM = new Random(); + private Randomizer(){} public static int random(int maxValue){ return ThreadLocalRandom.current().nextInt(maxValue + 1); } - public static int random(int minValue, int maxValue){ - return ThreadLocalRandom.current().nextInt(minValue, maxValue); + public static int random(int min, int max) { + return RANDOM.nextInt(max - min + 1) + min; } } From 4932401c9a6a8868afddeb22a2a9c84b2d543ed8 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Sun, 11 Aug 2024 21:42:57 +0300 Subject: [PATCH 14/20] =?UTF-8?q?=D0=9F=D0=BE=D1=87=D0=B8=D0=BD=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/island/services/ViewMapService.java | 98 +++++++------------ .../services/ViewStatisticsService.java | 6 +- 2 files changed, 41 insertions(+), 63 deletions(-) diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java index d26bd17..4691d1b 100644 --- a/island/src/main/java/org/island/services/ViewMapService.java +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -8,12 +8,13 @@ import org.island.settings.Config; import java.util.*; +import java.util.stream.Collectors; public class ViewMapService { - public static final int HEIGHT_DIAGRAM = 10; - public static final int POPULATION_HIGH = 70; - public static final int POPULATION_AVERAGE = POPULATION_HIGH - 40; + private static final int HEIGHT_DIAGRAM = 10; + private static final int POPULATION_HIGH = 90; + private static final int POPULATION_AVERAGE = 50; private final OrganismFactory factory; @@ -25,99 +26,74 @@ public void showMap(Island island) { StringBuilder out = new StringBuilder("\n"); Location[][] grid = island.getGRID(); List organisms = createOrganismPrototypes(); - int organismsCount = organisms.size(); Map currentPopulation = countOrganisms(organisms, grid); - drawDiagram(out, organisms, organismsCount, currentPopulation); - out.append("\n").append(" ".repeat(5)).append("|"); + drawPopulationDiagram(out, organisms, currentPopulation); drawIcons(out, organisms); System.out.println(out); } private List createOrganismPrototypes() { - List organisms = new ArrayList<>(); - for (EOrganisms organismType : EOrganisms.values()) { - organisms.add(OrganismFactory.createOrganism(organismType)); - } - return organisms; + return Arrays.stream(EOrganisms.values()) + .map(OrganismFactory::createOrganism) + .collect(Collectors.toList()); } - private void drawDiagram(StringBuilder out, List organisms, int organismsCount, Map currentPopulation) { + private void drawPopulationDiagram(StringBuilder out, List organisms, Map currentPopulation) { for (int row = 0; row < HEIGHT_DIAGRAM; row++) { int percent = 100 - row * 10; out.append(String.format("%-3d %%|", percent)); - for (int col = 0; col < organismsCount; col++) { - String residentString = fill(row, col, currentPopulation, organisms); - int locationWidth = 4; - out.append(String.format("%-" + locationWidth + "s", residentString)); + for (OrganismDTO organism : organisms) { + String residentString = getPopulationFill(row, organism, currentPopulation); + out.append(residentString); } - out.append("\n"); + + out.append(Color.RESET).append("\n"); } } private void drawIcons(StringBuilder out, List organisms) { - int iconWidth = 1; - for (int i = 0; i < organisms.size(); i++) { - String icon = organisms.get(i).getIcon(); - out.append(icon); - if (i < organisms.size() - 1) { - out.append(" ".repeat(iconWidth)); - } - } + out.append(" ".repeat(5)); // Padding for icons + organisms.forEach(organism -> out.append(organism.getIcon()).append(" ")); + out.append("\n"); } private Map countOrganisms(List organisms, Location[][] grid) { Map result = new EnumMap<>(EOrganisms.class); for (Location[] row : grid) { for (Location location : row) { - Map> residents = location.getResidents(); - if (Objects.nonNull(residents)) { - for (OrganismDTO organism : organisms) { - EOrganisms type = organism.getOrganismType(); - Set organismsSet = residents.get(type.getType()); - if (organismsSet != null) { - int count = result.getOrDefault(type, 0) + organismsSet.size(); - result.put(type, count); - } - } - } + location.getResidents().values().stream() + .flatMap(Set::stream) + .map(OrganismDTO::getOrganismType) + .forEach(type -> result.merge(type, 1, Integer::sum)); } } return result; } - private String fill(int row, int col, Map currentPopulation, List organisms) { - OrganismDTO organism = organisms.get(col); - EOrganisms type = organism.getOrganismType(); + private String getPopulationFill(int row, OrganismDTO organism, Map currentPopulation) { Config config = Config.initialize(); - int mapRow = config.getIslandSimulationConfig().getIslandSize().getRows(); - int mapCol = config.getIslandSimulationConfig().getIslandSize().getColumns(); - int maxCount = organism.getMaxPopulation() * mapRow * mapCol; - int currentCount = currentPopulation.getOrDefault(type, 0); + int totalCells = config.getIslandSimulationConfig().getIslandSize().getRows() * + config.getIslandSimulationConfig().getIslandSize().getColumns(); + int maxCount = organism.getMaxPopulation() * totalCells; + int currentCount = currentPopulation.getOrDefault(organism.getOrganismType(), 0); double ratioPercent = 100.0 * currentCount / maxCount; double currentPercent = 100.0 - row * 10; - - String filler = choseFiller(ratioPercent, currentPercent); - return filler; + System.out.println(ratioPercent + " " + currentPercent); + return ratioPercent >= currentPercent + ? chooseColorBasedOnPopulation(ratioPercent) + " " + : Color.RESET + " "; } - private String choseFiller(double ratioPercent, double currentPercent) { - String color; - - if (currentPercent <= ratioPercent) { - if (ratioPercent >= POPULATION_HIGH) { - color = Color.FILL_GREEN; - } else if (ratioPercent >= POPULATION_AVERAGE) { - color = Color.FILL_YELLOW; - } else { - - color = Color.FILL_RED; - } - return color + " "; + private String chooseColorBasedOnPopulation(double ratioPercent) { + if (ratioPercent >= POPULATION_HIGH) { + return Color.FILL_GREEN; + } else if (ratioPercent >= POPULATION_AVERAGE) { + return Color.FILL_YELLOW; + } else { + return Color.FILL_RED; } - - return Color.RESET + ".."; } private static class Color { diff --git a/island/src/main/java/org/island/services/ViewStatisticsService.java b/island/src/main/java/org/island/services/ViewStatisticsService.java index dc5a4d8..1079377 100644 --- a/island/src/main/java/org/island/services/ViewStatisticsService.java +++ b/island/src/main/java/org/island/services/ViewStatisticsService.java @@ -34,10 +34,12 @@ public void showStatistics(Island island, int day) { if (organismType.isAnimal()) { if (organismType.getGroupId() <= 4) { statsPredators.put(info, statsPredators.getOrDefault(info, 0) + set.size()); - } else { + } + else { statsGrassEaters.put(info, statsGrassEaters.getOrDefault(info, 0) + set.size()); } - } else { + } + else { statsPlants.put(info, statsPlants.getOrDefault(info, 0) + set.size()); } }); From dc06279a99756233d2f7738d6cd9ae7d0434e2ed Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Sun, 11 Aug 2024 22:22:38 +0300 Subject: [PATCH 15/20] =?UTF-8?q?=D0=9F=D0=BE=D1=87=D0=B8=D0=BD=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- island/src/main/java/org/island/services/ViewMapService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java index 4691d1b..2481476 100644 --- a/island/src/main/java/org/island/services/ViewMapService.java +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -54,7 +54,7 @@ private void drawPopulationDiagram(StringBuilder out, List organism } private void drawIcons(StringBuilder out, List organisms) { - out.append(" ".repeat(5)); // Padding for icons + out.append(" ".repeat(5)); organisms.forEach(organism -> out.append(organism.getIcon()).append(" ")); out.append("\n"); } From 8575dd48d45dc26f38775084a2ded6b0abecde5e Mon Sep 17 00:00:00 2001 From: pavlo Date: Sun, 11 Aug 2024 18:19:26 -0400 Subject: [PATCH 16/20] 08/06/2024 --- .../island/exceptions/organismNotFound.java | 17 +++++ .../main/java/org/island/model/Ration.java | 6 ++ .../main/java/org/island/model/Residents.java | 9 +++ .../island/services/AnimalDeathService.java | 22 +++++- .../island/services/AnimalFeedingService.java | 3 +- .../island/services/AnimalMatingService.java | 23 +++++- .../services/AnimalMovementService.java | 17 +---- .../org/island/services/DeathService.java | 3 +- .../island/services/FeedAnimalService.java | 71 +++++++++++++++++++ .../org/island/services/FeedingService.java | 3 +- .../org/island/services/MatingService.java | 3 + .../org/island/services/MovementService.java | 3 +- 12 files changed, 157 insertions(+), 23 deletions(-) create mode 100644 island/src/main/java/org/island/exceptions/organismNotFound.java create mode 100644 island/src/main/java/org/island/model/Ration.java create mode 100644 island/src/main/java/org/island/model/Residents.java create mode 100644 island/src/main/java/org/island/services/FeedAnimalService.java diff --git a/island/src/main/java/org/island/exceptions/organismNotFound.java b/island/src/main/java/org/island/exceptions/organismNotFound.java new file mode 100644 index 0000000..b96db36 --- /dev/null +++ b/island/src/main/java/org/island/exceptions/organismNotFound.java @@ -0,0 +1,17 @@ +package org.island.exceptions; + +public class OrganismNotFound extends RuntimeException{ + public OrganismNotFound(){} + + public OrganismNotFound(String message){ + super(message); + } + + public OrganismNotFound(String message, Throwable cause){ + super(message, cause); + } + + public OrganismNotFound(Throwable cause){ + super(cause); + } +} diff --git a/island/src/main/java/org/island/model/Ration.java b/island/src/main/java/org/island/model/Ration.java new file mode 100644 index 0000000..abb372c --- /dev/null +++ b/island/src/main/java/org/island/model/Ration.java @@ -0,0 +1,6 @@ +package org.island.model; + +import java.util.HashMap; + +public class Ration extends HashMap { +} diff --git a/island/src/main/java/org/island/model/Residents.java b/island/src/main/java/org/island/model/Residents.java new file mode 100644 index 0000000..6783fd5 --- /dev/null +++ b/island/src/main/java/org/island/model/Residents.java @@ -0,0 +1,9 @@ +package org.island.model; + +import org.island.entity.OrganismDTO; + +import java.util.HashMap; +import java.util.Set; + +public class Residents extends HashMap> { +} diff --git a/island/src/main/java/org/island/services/AnimalDeathService.java b/island/src/main/java/org/island/services/AnimalDeathService.java index 12a0b12..f2e390c 100644 --- a/island/src/main/java/org/island/services/AnimalDeathService.java +++ b/island/src/main/java/org/island/services/AnimalDeathService.java @@ -2,10 +2,30 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; public class AnimalDeathService implements DeathService { + + public AnimalDeathService(OrganismDTO organism, Location location) { + super(); + } + + @Override - public void die(OrganismDTO organism, Island location) { + public void die(OrganismDTO organism, Location location) { + location.getLock().lock(); + + try{ + + if (organism.isAlive()){ //TODO: Review this block, maybe it's not needed + organism.setAlive(false); + } + + String type = organism.getType(); + location.getResidents().get(type).remove(this); + } finally { + location.getLock().unlock(); + } } } diff --git a/island/src/main/java/org/island/services/AnimalFeedingService.java b/island/src/main/java/org/island/services/AnimalFeedingService.java index c0df9af..016dbfc 100644 --- a/island/src/main/java/org/island/services/AnimalFeedingService.java +++ b/island/src/main/java/org/island/services/AnimalFeedingService.java @@ -2,10 +2,11 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; public class AnimalFeedingService implements FeedingService { @Override - public void eat(OrganismDTO organismDTO, Island location) { + public void eat(OrganismDTO organismDTO, Location location) { } } diff --git a/island/src/main/java/org/island/services/AnimalMatingService.java b/island/src/main/java/org/island/services/AnimalMatingService.java index c21dbca..0ea5e98 100644 --- a/island/src/main/java/org/island/services/AnimalMatingService.java +++ b/island/src/main/java/org/island/services/AnimalMatingService.java @@ -1,11 +1,30 @@ package org.island.services; import org.island.entity.OrganismDTO; -import org.island.model.Island; +import org.island.model.Location; + +import java.util.Map; +import java.util.Set; public class AnimalMatingService implements MatingService { + public AnimalMatingService(OrganismDTO organism, Location location){ + super(); + } @Override - public void findMate(OrganismDTO organismDTO, Island island) { + public void findMate(OrganismDTO organism, Location location) { + location.getLock().lock(); + try{ + Map> residents = location.getResidents(); + String type = organism.getType(); + Set sameOrganisms = residents.get(type); + int maxLimit = organism.getMaxPopulation(); + if(sameOrganisms.contains(this) && sameOrganisms.size() >= 2 && sameOrganisms.size() < maxLimit){ + OrganismDTO organismNew = OrganismDTO.builder().build(); + sameOrganisms.add(organismNew); + } + } finally { + location.getLock().unlock(); + } } } diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java index 4833f44..b609e87 100644 --- a/island/src/main/java/org/island/services/AnimalMovementService.java +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -13,19 +13,6 @@ public class AnimalMovementService implements MovementService { - @Override - public void move(OrganismDTO organism, Island island) { - if (organism != null) { - int speed = organism.getSpeed(); - if (speed > 0) { - Location currentLocation = findCurrentLocation(organism, island); - if (currentLocation != null) { - move(organism, currentLocation); - } - } - } - } - private Location findCurrentLocation(OrganismDTO organism, Island island) { for (Location[] row : island.getGRID()) { for (Location location : row) { @@ -63,7 +50,7 @@ private Location findDestinationLocation(int countOfSteps, Location location, Or return destination; } - private void move(OrganismDTO animal, Location currentLocation) { + public void move(OrganismDTO animal, Location currentLocation) { int speed = animal.getSpeed(); int countOfSteps = Randomizer.random(speed); Location destination = findDestinationLocation(countOfSteps, currentLocation, animal); @@ -106,6 +93,4 @@ private void remove(OrganismDTO animal, Location location) { lock.unlock(); } } - - } diff --git a/island/src/main/java/org/island/services/DeathService.java b/island/src/main/java/org/island/services/DeathService.java index d12035b..29d5d9b 100644 --- a/island/src/main/java/org/island/services/DeathService.java +++ b/island/src/main/java/org/island/services/DeathService.java @@ -2,7 +2,8 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; public interface DeathService { - void die(OrganismDTO organism, Island location); + void die(OrganismDTO organism, Location location); } diff --git a/island/src/main/java/org/island/services/FeedAnimalService.java b/island/src/main/java/org/island/services/FeedAnimalService.java new file mode 100644 index 0000000..3e72fc4 --- /dev/null +++ b/island/src/main/java/org/island/services/FeedAnimalService.java @@ -0,0 +1,71 @@ +package org.island.services; + +import org.island.entity.OrganismDTO; +import org.island.exceptions.OrganismNotFound; +import org.island.model.Location; +import org.island.model.Ration; +import org.island.model.Residents; +import org.island.util.Randomizer; + +import java.util.Comparator; +import java.util.Set; + +public class FeedAnimalService implements FeedingService{ + + + @Override + public void eat(OrganismDTO organism, Location location) { + location.getLock().lock(); + + try { + Ration ration = (Ration) organism.getRation(); + double currentWeight = organism.getCurrentWeight(); + double deltaWeight = organism.getMaxWeight() - currentWeight; + Residents residents = (Residents) location.getResidents(); + OrganismDTO prey = getTarget(ration, residents); + String preyType = prey.getType(); + + if (prey.isAlive()) { + int chanceToKill = ration.get(preyType); + int predatorTry = Randomizer.random(0, 100); + + if (predatorTry <= chanceToKill) { + prey.setAlive(false); + } else return; + } + + double currentTargetWeight = prey.getCurrentWeight(); + double predatorFinalWeight; + + if (deltaWeight > currentTargetWeight) { + predatorFinalWeight = currentWeight + currentTargetWeight; + prey.setCurrentWeight(0); + } else { + predatorFinalWeight = currentWeight + deltaWeight; + prey.setCurrentWeight(currentTargetWeight - deltaWeight); + } + + organism.setCurrentWeight(predatorFinalWeight); + } finally { + location.getLock().unlock(); + } + } + + private OrganismDTO getTarget(Ration ration, Residents residents) { + Set preys = residents + .entrySet() + .stream() + .filter(resident -> resident.getValue().size() > 0) + .filter(resident -> ration.containsKey(resident.getKey())) + .max(Comparator.comparingInt(resident -> ration.get(resident.getKey()))) + .orElseThrow(() -> new OrganismNotFound("target / prey not found")) + .getValue(); + + return preys + .stream() + .skip(Randomizer.random(0, preys.size())) + .iterator() + .next(); + + } +} diff --git a/island/src/main/java/org/island/services/FeedingService.java b/island/src/main/java/org/island/services/FeedingService.java index 16fbfa8..092b907 100644 --- a/island/src/main/java/org/island/services/FeedingService.java +++ b/island/src/main/java/org/island/services/FeedingService.java @@ -2,7 +2,8 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; public interface FeedingService { - void eat(OrganismDTO organismDTO, Island location); + void eat(OrganismDTO organismDTO, Location location); } diff --git a/island/src/main/java/org/island/services/MatingService.java b/island/src/main/java/org/island/services/MatingService.java index 3c354c5..a51dad3 100644 --- a/island/src/main/java/org/island/services/MatingService.java +++ b/island/src/main/java/org/island/services/MatingService.java @@ -2,7 +2,10 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; public interface MatingService { void findMate(OrganismDTO organismDTO, Island island); + + void findMate(OrganismDTO organism, Location location); } diff --git a/island/src/main/java/org/island/services/MovementService.java b/island/src/main/java/org/island/services/MovementService.java index a585aab..2b951ba 100644 --- a/island/src/main/java/org/island/services/MovementService.java +++ b/island/src/main/java/org/island/services/MovementService.java @@ -2,7 +2,8 @@ import org.island.entity.OrganismDTO; import org.island.model.Island; +import org.island.model.Location; public interface MovementService { - void move(OrganismDTO organism, Island island); + void move(OrganismDTO organism, Location location); } From 37233e8a34c94b319bfd06def211275eb6f48925 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Tue, 13 Aug 2024 15:12:42 +0300 Subject: [PATCH 17/20] fix: services (need to add logic) --- ...ismNotFound.java => OrganismNotFound.java} | 0 .../main/java/org/island/model/Location.java | 69 ++----------------- .../island/services/AnimalDeathService.java | 3 - .../island/services/AnimalMatingService.java | 6 +- .../org/island/services/MatingService.java | 4 +- 5 files changed, 10 insertions(+), 72 deletions(-) rename island/src/main/java/org/island/exceptions/{organismNotFound.java => OrganismNotFound.java} (100%) diff --git a/island/src/main/java/org/island/exceptions/organismNotFound.java b/island/src/main/java/org/island/exceptions/OrganismNotFound.java similarity index 100% rename from island/src/main/java/org/island/exceptions/organismNotFound.java rename to island/src/main/java/org/island/exceptions/OrganismNotFound.java diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index 7249e35..471959a 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -1,5 +1,8 @@ package org.island.model; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; import lombok.ToString; import org.island.entity.OrganismDTO; @@ -7,7 +10,9 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +@Data @ToString +@EqualsAndHashCode public class Location { private final int row; private final int column; @@ -21,74 +26,10 @@ public Location(int row, int column) { this.residents = new HashMap<>(); } - public int getRow() { - return this.row; - } - - public int getColumn() { - return this.column; - } - - public List getDirections() { - return this.directions; - } - - public Map> getResidents() { - return this.residents; - } - - public Lock getLock() { - return this.lock; - } - - public void setDirections(List directions) { - this.directions = directions; - } - - public void setResidents(Map> residents) { - this.residents = residents; - } public void addResident(OrganismDTO resident) { Set organismSet = residents.computeIfAbsent(resident.getType(), k -> new HashSet<>()); organismSet.add(resident); } - public boolean equals(final Object o) { - if (o == this) return true; - if (!(o instanceof Location)) return false; - final Location other = (Location) o; - if (!other.canEqual((Object) this)) return false; - if (this.getRow() != other.getRow()) return false; - if (this.getColumn() != other.getColumn()) return false; - final Object this$directions = this.getDirections(); - final Object other$directions = other.getDirections(); - if (this$directions == null ? other$directions != null : !this$directions.equals(other$directions)) - return false; - final Object this$residents = this.getResidents(); - final Object other$residents = other.getResidents(); - if (this$residents == null ? other$residents != null : !this$residents.equals(other$residents)) return false; - final Object this$lock = this.getLock(); - final Object other$lock = other.getLock(); - if (this$lock == null ? other$lock != null : !this$lock.equals(other$lock)) return false; - return true; - } - - protected boolean canEqual(final Object other) { - return other instanceof Location; - } - - public int hashCode() { - final int PRIME = 59; - int result = 1; - result = result * PRIME + this.getRow(); - result = result * PRIME + this.getColumn(); - final Object $directions = this.getDirections(); - result = result * PRIME + ($directions == null ? 43 : $directions.hashCode()); - final Object $residents = this.getResidents(); - result = result * PRIME + ($residents == null ? 43 : $residents.hashCode()); - final Object $lock = this.getLock(); - result = result * PRIME + ($lock == null ? 43 : $lock.hashCode()); - return result; - } } diff --git a/island/src/main/java/org/island/services/AnimalDeathService.java b/island/src/main/java/org/island/services/AnimalDeathService.java index f2e390c..12be78f 100644 --- a/island/src/main/java/org/island/services/AnimalDeathService.java +++ b/island/src/main/java/org/island/services/AnimalDeathService.java @@ -6,9 +6,6 @@ public class AnimalDeathService implements DeathService { - public AnimalDeathService(OrganismDTO organism, Location location) { - super(); - } @Override diff --git a/island/src/main/java/org/island/services/AnimalMatingService.java b/island/src/main/java/org/island/services/AnimalMatingService.java index 0ea5e98..81582f0 100644 --- a/island/src/main/java/org/island/services/AnimalMatingService.java +++ b/island/src/main/java/org/island/services/AnimalMatingService.java @@ -1,17 +1,17 @@ package org.island.services; import org.island.entity.OrganismDTO; +import org.island.model.Island; import org.island.model.Location; import java.util.Map; import java.util.Set; public class AnimalMatingService implements MatingService { - public AnimalMatingService(OrganismDTO organism, Location location){ - super(); - } + @Override public void findMate(OrganismDTO organism, Location location) { + location.getLock().lock(); try{ Map> residents = location.getResidents(); diff --git a/island/src/main/java/org/island/services/MatingService.java b/island/src/main/java/org/island/services/MatingService.java index a51dad3..216e7e4 100644 --- a/island/src/main/java/org/island/services/MatingService.java +++ b/island/src/main/java/org/island/services/MatingService.java @@ -5,7 +5,7 @@ import org.island.model.Location; public interface MatingService { - void findMate(OrganismDTO organismDTO, Island island); +// void findMate(OrganismDTO organismDTO, Island island); - void findMate(OrganismDTO organism, Location location); + void findMate(OrganismDTO organismDTO, Location location); } From 07fbe9f761db58390a23d2478d367ea6db2ec741 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Thu, 15 Aug 2024 17:18:10 +0300 Subject: [PATCH 18/20] new: movementServiceLogic and refactor simulation --- .../main/java/org/island/model/Location.java | 112 +++++++++++++++++- .../services/AnimalMovementService.java | 42 +++---- .../island/services/MapCreatorService.java | 1 + .../org/island/services/ViewMapService.java | 1 - .../org/island/simulation/Simulation.java | 73 ++++++++---- 5 files changed, 174 insertions(+), 55 deletions(-) diff --git a/island/src/main/java/org/island/model/Location.java b/island/src/main/java/org/island/model/Location.java index 471959a..fd6b01a 100644 --- a/island/src/main/java/org/island/model/Location.java +++ b/island/src/main/java/org/island/model/Location.java @@ -2,7 +2,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.RequiredArgsConstructor; import lombok.ToString; import org.island.entity.OrganismDTO; @@ -11,8 +10,6 @@ import java.util.concurrent.locks.ReentrantLock; @Data -@ToString -@EqualsAndHashCode public class Location { private final int row; private final int column; @@ -24,12 +21,115 @@ public Location(int row, int column) { this.row = row; this.column = column; this.residents = new HashMap<>(); + this.directions = new ArrayList<>(); } + public void addDirection(Location direction) { + this.directions.add(direction); + } public void addResident(OrganismDTO resident) { - Set organismSet = residents.computeIfAbsent(resident.getType(), k -> new HashSet<>()); - organismSet.add(resident); + lock.lock(); + try { + Set organismSet = residents.computeIfAbsent(resident.getType(), k -> new HashSet<>()); + organismSet.add(resident); + } finally { + lock.unlock(); + } + } + + public void removeResident(OrganismDTO resident) { + lock.lock(); + try { + Set organismSet = residents.get(resident.getType()); + if (organismSet != null) { + organismSet.remove(resident); + } + } finally { + lock.unlock(); + } + } + + public boolean isFull(String type, int maxPopulation) { + lock.lock(); + try { + Set organismSet = residents.get(type); + return organismSet != null && organismSet.size() >= maxPopulation; + } finally { + lock.unlock(); + } } -} + public int getResidentCount(String type) { + lock.lock(); + try { + Set organismSet = residents.get(type); + return organismSet != null ? organismSet.size() : 0; + } finally { + lock.unlock(); + } + } + + public Set getResidentsOfType(String type) { + lock.lock(); + try { + return new HashSet<>(residents.getOrDefault(type, Collections.emptySet())); + } finally { + lock.unlock(); + } + } + + @Override + public String toString() { + return "Location{" + + "row=" + row + + ", column=" + column + + ", directions=" + summarizeDirections() + + ", residents=" + summarizeResidents() + + '}'; + } + + private String summarizeDirections() { + StringBuilder sb = new StringBuilder(); + sb.append("["); + for (Location direction : directions) { + sb.append("Location{row=").append(direction.getRow()).append(", column=").append(direction.getColumn()).append("}, "); + } + if (sb.length() > 1) { + sb.setLength(sb.length() - 2); + } + sb.append("]"); + return sb.toString(); + } + + private String summarizeResidents() { + StringBuilder sb = new StringBuilder(); + sb.append("{"); + for (Map.Entry> entry : residents.entrySet()) { + sb.append(entry.getKey()).append("=").append(entry.getValue().size()).append(", "); + } + if (sb.length() > 1) { + sb.setLength(sb.length() - 2); + } + sb.append("}"); + return sb.toString(); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Location location)) return false; + return row == location.row && column == location.column && Objects.equals(directions, location.directions) && Objects.equals(residents, location.residents) && Objects.equals(lock, location.lock); + } + + @Override + public int hashCode() { + int result = 17; + result = 31 * result + row; + result = 31 * result + column; + result = 31 * result + directions.size(); + result = 31 * result + residents.hashCode(); + return result; + } +} \ No newline at end of file diff --git a/island/src/main/java/org/island/services/AnimalMovementService.java b/island/src/main/java/org/island/services/AnimalMovementService.java index b609e87..c29bfcb 100644 --- a/island/src/main/java/org/island/services/AnimalMovementService.java +++ b/island/src/main/java/org/island/services/AnimalMovementService.java @@ -1,38 +1,23 @@ package org.island.services; - import org.island.entity.OrganismDTO; -import org.island.model.Island; import org.island.model.Location; import org.island.util.Randomizer; import java.util.*; import java.util.concurrent.locks.Lock; -import java.util.stream.Collectors; - +import java.util.logging.Logger; public class AnimalMovementService implements MovementService { - - private Location findCurrentLocation(OrganismDTO organism, Island island) { - for (Location[] row : island.getGRID()) { - for (Location location : row) { - if (location.getResidents().getOrDefault(organism.getType(), new HashSet<>()).contains(organism)) { - return location; - } - } - } - return null; - } + Logger log = Logger.getLogger(this.getClass().getName()); private List getAvailableDirections(Set visitedLocations, Location destination) { - return destination - .getDirections() - .stream() + return destination.getDirections().stream() .filter(location -> !visitedLocations.contains(location)) - .collect(Collectors.toList()); + .toList(); } - private Location findDestinationLocation(int countOfSteps, Location location, OrganismDTO organism) { + private Location findDestinationLocation(int countOfSteps, Location location) { Set visitedLocations = new HashSet<>(); Location destination = location; @@ -43,17 +28,28 @@ private Location findDestinationLocation(int countOfSteps, Location location, Or if (countOfDirections > 0) { int selectedDirection = Randomizer.random(0, countOfDirections); - destination = directions.get(selectedDirection); + if (selectedDirection < directions.size()) { + destination = directions.get(selectedDirection); + countOfSteps--; + } + else { + break; + } + } + else { + break; } countOfSteps--; } + + return destination; } public void move(OrganismDTO animal, Location currentLocation) { int speed = animal.getSpeed(); int countOfSteps = Randomizer.random(speed); - Location destination = findDestinationLocation(countOfSteps, currentLocation, animal); + Location destination = findDestinationLocation(countOfSteps, currentLocation); if (moveTo(animal, destination)) { remove(animal, currentLocation); @@ -93,4 +89,4 @@ private void remove(OrganismDTO animal, Location location) { lock.unlock(); } } -} +} \ No newline at end of file diff --git a/island/src/main/java/org/island/services/MapCreatorService.java b/island/src/main/java/org/island/services/MapCreatorService.java index 8aa043b..b206687 100644 --- a/island/src/main/java/org/island/services/MapCreatorService.java +++ b/island/src/main/java/org/island/services/MapCreatorService.java @@ -55,6 +55,7 @@ private void populateIsland(Island island) { for (EOrganisms organismType : EOrganisms.values()) { OrganismDTO prototype = OrganismFactory.createOrganism(organismType); int maxCount = prototype.getMaxPopulation(); + System.out.println(maxCount); int count = Randomizer.random(0, maxCount); for (int i = 0; i < count; i++) { diff --git a/island/src/main/java/org/island/services/ViewMapService.java b/island/src/main/java/org/island/services/ViewMapService.java index 2481476..764261c 100644 --- a/island/src/main/java/org/island/services/ViewMapService.java +++ b/island/src/main/java/org/island/services/ViewMapService.java @@ -80,7 +80,6 @@ private String getPopulationFill(int row, OrganismDTO organism, Map= currentPercent ? chooseColorBasedOnPopulation(ratioPercent) + " " : Color.RESET + " "; diff --git a/island/src/main/java/org/island/simulation/Simulation.java b/island/src/main/java/org/island/simulation/Simulation.java index d6417aa..7d814cd 100644 --- a/island/src/main/java/org/island/simulation/Simulation.java +++ b/island/src/main/java/org/island/simulation/Simulation.java @@ -13,10 +13,7 @@ import org.island.util.Randomizer; import org.island.view.View; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; @RequiredArgsConstructor public class Simulation implements SimulationEngine { @@ -59,40 +56,66 @@ public void runCycle() { for (int cycle = 0; cycle < period; cycle++) { view.showMessage("Starting cycle " + (cycle + 1)); - // Process each location on the island - for (Location[] locations : grid) { - for (Location location : locations) { - Map> residents = location.getResidents(); + processLocations(grid); + updateView(); - // Move organisms - // movementService.move(location); + view.showMessage("Cycle " + (cycle + 1) + " completed"); + } - // Feed organisms - // feedingService.feed(location); + view.showMessage("Simulation completed"); + } - // Mate organisms - // matingService.mate(location); + private void processLocations(Location[][] grid) { + for (Location[] locations : grid) { + for (Location location : locations) { + processLocation(location); + } + } + } - // Handle deaths - // deathService.handleDeaths(location); - } + private void processLocation(Location location) { + + moveOrganisms(location); +// feedOrganisms(location); +// handleDeaths(location); +// mateOrganisms(location); + } + + private void moveOrganisms(Location location) { + Map> residents = location.getResidents(); + List types = new ArrayList<>(residents.keySet()); + + types.forEach(type -> { + Set organisms = residents.get(type); + if (organisms != null) { + organisms.forEach(organism -> movementService.move(organism, location)); } + }); + } - // Update view after each cycle - view.showStatistics(); - view.showMap(); +// private void feedOrganisms(Location location) { +// feedingService.eat(location); +// } - view.showMessage("Cycle " + (cycle + 1) + " completed"); - } +// private void mateOrganisms(Location location) { +// matingService.findMate(location); +// } - view.showMessage("Simulation completed"); +// private void handleDeaths(Location location) { +// deathService.die(location); +// } + + private void updateView() { + view.showStatistics(); + view.showMap(); } + public void run() { view.showMessage("Initializing island population..."); populateIsland(island); view.showMessage("Starting simulation..."); - // runCycle(); + runCycle(); } -} +} \ No newline at end of file From b8cdac0990157764da8915545b43d8366080d264 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Thu, 15 Aug 2024 17:41:54 +0300 Subject: [PATCH 19/20] new: first implementation of services --- .idea/.gitignore | 8 + .idea/IslandSimulationPavel.iml | 11 + .idea/intellij-javadocs-4.0.1.xml | 204 ++++++++++++++++++ .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 7 + island/IslandAbstractionDiagram.png | Bin 0 -> 834563 bytes .../island/services/AnimalDeathService.java | 22 +- .../island/services/AnimalMatingService.java | 45 ++-- .../org/island/simulation/Simulation.java | 8 +- 10 files changed, 298 insertions(+), 21 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/IslandSimulationPavel.iml create mode 100644 .idea/intellij-javadocs-4.0.1.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 island/IslandAbstractionDiagram.png diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/IslandSimulationPavel.iml b/.idea/IslandSimulationPavel.iml new file mode 100644 index 0000000..cca7441 --- /dev/null +++ b/.idea/IslandSimulationPavel.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/intellij-javadocs-4.0.1.xml b/.idea/intellij-javadocs-4.0.1.xml new file mode 100644 index 0000000..673e4c5 --- /dev/null +++ b/.idea/intellij-javadocs-4.0.1.xml @@ -0,0 +1,204 @@ + + + + + UPDATE + false + true + + TYPE + FIELD + METHOD + + + PROTECTED + PUBLIC + DEFAULT + + + + + + ^.*(public|protected|private)*.+interface\s+\w+.* + /**\n + * The interface ${name}.\n +<#if element.typeParameters?has_content> * \n +</#if> +<#list element.typeParameters as typeParameter> + * @param <${typeParameter.name}> the type parameter\n +</#list> + */ + + + ^.*(public|protected|private)*.+enum\s+\w+.* + /**\n + * The enum ${name}.\n + */ + + + ^.*(public|protected|private)*.+class\s+\w+.* + /**\n + * The type ${name}.\n +<#if element.typeParameters?has_content> * \n +</#if> +<#list element.typeParameters as typeParameter> + * @param <${typeParameter.name}> the type parameter\n +</#list> + */ + + + .+ + /**\n + * The type ${name}.\n + */ + + + + + .+ + /**\n + * Instantiates a new ${name}.\n +<#if element.parameterList.parameters?has_content> + *\n +</#if> +<#list element.parameterList.parameters as parameter> + * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list> +<#if element.throwsList.referenceElements?has_content> + *\n +</#if> +<#list element.throwsList.referenceElements as exception> + * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> + */ + + + + + ^.*(public|protected|private)*\s*.*(\w(\s*<.+>)*)+\s+get\w+\s*\(.*\).+ + /**\n + * Gets ${partName}.\n +<#if element.typeParameters?has_content> * \n +</#if> +<#list element.typeParameters as typeParameter> + * @param <${typeParameter.name}> the type parameter\n +</#list> +<#if element.parameterList.parameters?has_content> + *\n +</#if> +<#list element.parameterList.parameters as parameter> + * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list> +<#if isNotVoid> + *\n + * @return the ${partName}\n +</#if> +<#if element.throwsList.referenceElements?has_content> + *\n +</#if> +<#list element.throwsList.referenceElements as exception> + * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> + */ + + + ^.*(public|protected|private)*\s*.*(void|\w(\s*<.+>)*)+\s+set\w+\s*\(.*\).+ + /**\n + * Sets ${partName}.\n +<#if element.typeParameters?has_content> * \n +</#if> +<#list element.typeParameters as typeParameter> + * @param <${typeParameter.name}> the type parameter\n +</#list> +<#if element.parameterList.parameters?has_content> + *\n +</#if> +<#list element.parameterList.parameters as parameter> + * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list> +<#if isNotVoid> + *\n + * @return the ${partName}\n +</#if> +<#if element.throwsList.referenceElements?has_content> + *\n +</#if> +<#list element.throwsList.referenceElements as exception> + * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> + */ + + + ^.*((public\s+static)|(static\s+public))\s+void\s+main\s*\(\s*String\s*(\[\s*\]|\.\.\.)\s+\w+\s*\).+ + /**\n + * The entry point of application.\n + + <#if element.parameterList.parameters?has_content> + *\n +</#if> + * @param ${element.parameterList.parameters[0].name} the input arguments\n +<#if element.throwsList.referenceElements?has_content> + *\n +</#if> +<#list element.throwsList.referenceElements as exception> + * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> + */ + + + .+ + /**\n + * ${name}<#if isNotVoid> ${return}</#if>.\n +<#if element.typeParameters?has_content> * \n +</#if> +<#list element.typeParameters as typeParameter> + * @param <${typeParameter.name}> the type parameter\n +</#list> +<#if element.parameterList.parameters?has_content> + *\n +</#if> +<#list element.parameterList.parameters as parameter> + * @param ${parameter.name} the ${paramNames[parameter.name]}\n +</#list> +<#if isNotVoid> + *\n + * @return the ${return}\n +</#if> +<#if element.throwsList.referenceElements?has_content> + *\n +</#if> +<#list element.throwsList.referenceElements as exception> + * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n +</#list> + */ + + + + + ^.*(public|protected|private)*.+static.*(\w\s\w)+.+ + /**\n + * The constant ${element.getName()}.\n + */ + + + ^.*(public|protected|private)*.*(\w\s\w)+.+ + /**\n + <#if element.parent.isInterface()> + * The constant ${element.getName()}.\n +<#else> + * The ${name}.\n +</#if> */ + + + .+ + /**\n + <#if element.parent.isEnum()> + *${name} ${typeName}.\n +<#else> + * The ${name}.\n +</#if>*/ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d8c2faf --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c7de264 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..b8b610a --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/island/IslandAbstractionDiagram.png b/island/IslandAbstractionDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..2581d21dcb561b06796e40e52090b460a26b829f GIT binary patch literal 834563 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

jneAiW^kbZOOkZ0rDRG+JBs*GeHNkhewHE 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

x|{5`Nra+6>#c-^OZY=bvn1n)Lp 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 + organisms.removeIf(organism -> organism.getUuid().equals(idOrganism)) + ); + } finally { + location.getLock().unlock(); + } } } diff --git a/island/src/main/java/org/island/services/AnimalMatingService.java b/island/src/main/java/org/island/services/AnimalMatingService.java index 81582f0..c7c2ff6 100644 --- a/island/src/main/java/org/island/services/AnimalMatingService.java +++ b/island/src/main/java/org/island/services/AnimalMatingService.java @@ -1,30 +1,51 @@ package org.island.services; import org.island.entity.OrganismDTO; -import org.island.model.Island; import org.island.model.Location; -import java.util.Map; +import java.util.HashMap; import java.util.Set; +import java.util.UUID; public class AnimalMatingService implements MatingService { @Override public void findMate(OrganismDTO organism, Location location) { - location.getLock().lock(); - try{ - Map> residents = location.getResidents(); - String type = organism.getType(); - Set sameOrganisms = residents.get(type); - int maxLimit = organism.getMaxPopulation(); - - if(sameOrganisms.contains(this) && sameOrganisms.size() >= 2 && sameOrganisms.size() < maxLimit){ - OrganismDTO organismNew = OrganismDTO.builder().build(); - sameOrganisms.add(organismNew); + try { + Set sameTypeOrganisms = getSameTypeOrganisms(organism, location); + + if (canReproduce(organism, sameTypeOrganisms)) { + OrganismDTO newOrganism = createOffspring(organism); + sameTypeOrganisms.add(newOrganism); } } finally { location.getLock().unlock(); } } + + private Set getSameTypeOrganisms(OrganismDTO organism, Location location) { + return location.getResidents().getOrDefault(organism.getType(), Set.of()); + } + + private boolean canReproduce(OrganismDTO organism, Set sameTypeOrganisms) { + int currentPopulation = sameTypeOrganisms.size(); + return currentPopulation >= 2 && currentPopulation < organism.getMaxPopulation(); + } + + private OrganismDTO createOffspring(OrganismDTO parentOrganism) { + return OrganismDTO.builder() + .uuid(UUID.randomUUID()) + .type(parentOrganism.getType()) + .groupId(parentOrganism.getGroupId()) + .isAlive(true) + .currentWeight(parentOrganism.getCurrentWeight() * 0.5) + .icon(parentOrganism.getIcon()) + .ration(new HashMap<>(parentOrganism.getRation())) + .maxWeight(parentOrganism.getMaxWeight()) + .maxPopulation(parentOrganism.getMaxPopulation()) + .speed(parentOrganism.getSpeed()) + .build(); + } + } diff --git a/island/src/main/java/org/island/simulation/Simulation.java b/island/src/main/java/org/island/simulation/Simulation.java index 7d814cd..64eacb5 100644 --- a/island/src/main/java/org/island/simulation/Simulation.java +++ b/island/src/main/java/org/island/simulation/Simulation.java @@ -76,9 +76,9 @@ private void processLocations(Location[][] grid) { private void processLocation(Location location) { moveOrganisms(location); -// feedOrganisms(location); -// handleDeaths(location); -// mateOrganisms(location); + // feedOrganisms(location); + // handleDeaths(location); + // mateOrganisms(location); } private void moveOrganisms(Location location) { @@ -116,6 +116,6 @@ public void run() { populateIsland(island); view.showMessage("Starting simulation..."); - runCycle(); + runCycle(); } } \ No newline at end of file From d2a426ab5df55a4e844c8a59c0fa2d1c58cdeb81 Mon Sep 17 00:00:00 2001 From: Pr1nkos Date: Thu, 15 Aug 2024 17:43:06 +0300 Subject: [PATCH 20/20] new: first implementation of services #2 --- .../island/services/AnimalFeedingService.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/island/src/main/java/org/island/services/AnimalFeedingService.java b/island/src/main/java/org/island/services/AnimalFeedingService.java index 016dbfc..fa251f8 100644 --- a/island/src/main/java/org/island/services/AnimalFeedingService.java +++ b/island/src/main/java/org/island/services/AnimalFeedingService.java @@ -1,12 +1,40 @@ package org.island.services; import org.island.entity.OrganismDTO; -import org.island.model.Island; import org.island.model.Location; +import java.util.Map; +import java.util.Set; + public class AnimalFeedingService implements FeedingService { + @Override - public void eat(OrganismDTO organismDTO, Location location) { + public void eat(OrganismDTO organism, Location location) { + location.getLock().lock(); + + try { + Map ration = organism.getRation(); + + for (Map.Entry entry : ration.entrySet()) { + String preyType = entry.getKey(); + int probability = entry.getValue(); + + Set preySet = location.getResidents().get(preyType); + if (preySet != null && !preySet.isEmpty()) { + for (OrganismDTO prey : preySet) { + if (Math.random() * 100 < probability) { + organism.setCurrentWeight(Math.min(organism.getMaxWeight(), + organism.getCurrentWeight() + prey.getCurrentWeight())); + prey.setAlive(false); + location.getResidents().get(preyType).remove(prey); + break; + } + } + } + } + } finally { + location.getLock().unlock(); + } } }