@Override
	public void agisci(Parco parco) {
		if (this.isMorto()) {
			parco.eliminaAnimale(this);
			return;
		}
		this.riproduci(parco);

		Posizione nuovaPosizione;
		Animale roditore;
		roditore = trovaRoditore(parco);
		if (roditore != null) {
			this.incrementaCibo(1);
			parco.eliminaAnimale(roditore);
			nuovaPosizione = roditore.getPosizione();
		} else {
			Animale rapace;
			rapace = rapacePiuDebole(parco);
			if (rapace != null) {
				this.incrementaCibo(1);
				parco.eliminaAnimale(rapace);
				nuovaPosizione = rapace.getPosizione();
			} else {
					this.incrementaCibo(-1);
					nuovaPosizione = parco.posizioneLiberaVicino(this.getPosizione());
			}
		}
		if (nuovaPosizione!=null){
			parco.muovi(this, nuovaPosizione);
		}
		this.invecchia();
	}