public void act() {
		if(life <= 0){
			CreatureSimulator cs = (CreatureSimulator)this.getEnvironment();
			cs.removeCreature(this);
		} else {
			// iterate over all nearby plants
			Iterable<ICreature> creatures = plantsAround(this);
			int count = 0;
			for (ICreature c : creatures) {
				if (this.distanceFromAPoint(c.getPosition()) <= this.visionDistance){
					count++;
				}
			}
			switch (count)
			{
			case 2:
				//No action
				break;        
			case 3:
				//Change position
				setPosition(position.getX()+Math.random()-0.5, position.getY()+Math.random()-0.5);
				break;        
			default:
				//decrease life
				decreaseLife(LIFE_DEGEN_SPEED);  
				break;
			}
		}
	}