diff --git a/src/backend/Simulator.java b/src/backend/Simulator.java index 362d3eb..9092851 100644 --- a/src/backend/Simulator.java +++ b/src/backend/Simulator.java @@ -225,15 +225,33 @@ public class Simulator extends Thread { * method called when clicking on a cell in the interface */ public void clickCell(int x, int y) { + if (clickActionFlag==0) { // cell world.setCell(x, y, getCell(x, y) == 1 ? 0 : 1); + } else if (clickActionFlag==1) { // sheep - Sheep sheep = new Sheep(x,y); - agents.add(sheep); + ArrayList nearby=getNeighboringAnimals(x,y,1); + if (nearby.isEmpty()) { + Sheep sheep = new Sheep(x,y); + agents.add(sheep); + }else { + for (Agent animal:nearby) { + agents.remove(animal); + } + } + + } else if (clickActionFlag==2) { // wolf - Wolf wolf = new Wolf(x,y); - agents.add(wolf); - } + ArrayList nearby=getNeighboringAnimals(x,y,1); + if (nearby.isEmpty()) { + Wolf wolf = new Wolf(x,y); + agents.add(wolf); + }else { + for (Agent animal:nearby) { + agents.remove(animal); + } + } + } }