public void move() {
    for (Organism org : Ecosystem.getRed()) {
      if (getDist(org) < 50) {
        int x = posX - org.posX;
        int y = posY - org.posY;
        double d = Math.sqrt(x * x + y * y);

        movX += 10 * (x / d);
        movY += 10 * (y / d);
      }
    }

    for (Organism org : Ecosystem.getOrange()) {
      if (getDist(org) < sight) {
        int x = posX - org.posX;
        int y = posY - org.posY;
        double d = Math.sqrt(x * x + y * y);

        movX += 10 * (x / d);
        movY += 10 * (y / d);
      }
    }

    int dist = 1000;
    for (Organism g : Ecosystem.getBlue()) {
      if (getDist(g) < dist) {
        target = g;
        dist = getDist(g);
      }
    }

    if (!(target == null)) {
      if (getDist(target) < 20) {
        attack();
      } else {
        int x = posX - target.posX;
        int y = posY - target.posY;

        double d = Math.sqrt(x * x + y * y);

        movX = -(x / d);
        movY = -(y / d);
      }
      if (target.life.get() <= 0) {
        target = null;
      }
    }
  }