public boolean execute() {
		DonneesSimulation donnees = this.donnees;
		Robot robot = donnees.getRobot(this.nRobot);
		int temp = 0, is_incendie = 0;
		boolean return_value = false;

		for(int i = 0; i<donnees.getIncendies().size(); i++) { /* On vérifie qu'il y a bien un incendie sur la case du robot */
			if (donnees.getIncendie(i).getCase().equal(robot.getPosition())) {
				is_incendie = 1;
				temp = i;
			}
		}

		if (is_incendie == 0) { /* Si il n'y a pas d'incendie */
			robot.setDateDisponibilite(1);
			throw new Error("Le robot "+robot.getClass().getName().split("DonneesSimulation.")[1]+" numéro "+this.nRobot+" n'est pas sur un incendie");
		}

		Incendie incendie = donnees.getIncendie(temp);
		if (incendie.getPotentielEau() == 0) { /* On regarde si l'incendie est déja éteint (à enlever par la suite si on enlève 
				l'incendie de la liste) */
			System.out.println("Le robot "+robot.getClass().getName().split("DonneesSimulation.")[1]+" numéro "+this.nRobot+" veut intervenir mais l'incendie est déjà éteint\n");
			robot.setDateDisponibilite(1);
			return_value = true;
		}

		else if (robot.getReservoir() == 0) { /* On regarde si le réservoir du robot est vide */
			System.out.println("Le réservoir du robot "+robot.getClass().getName().split("DonneesSimulation.")[1]+" numéro "+this.nRobot+" est vide\n");
			robot.setDateDisponibilite(1);
			return_value = true;
		}

		else {

			int potentiel_incendie = incendie.getPotentielEau();
			int volume_intervention_robot = robot.getVolumeIntervention();
			double temps_intervention_robot = robot.getTempsIntervention();
			long date_disponibilite;

			if (potentiel_incendie > robot.getReservoir()) { /* On détermine la nouvelle date de disponibilité du robot selon
						la capacité qu'à le robot à éteindre entièrement l'incendie ou non */
				date_disponibilite = (int)((robot.getReservoir()/volume_intervention_robot)*temps_intervention_robot);
			}
			else {
				date_disponibilite = (int)((potentiel_incendie/volume_intervention_robot)*temps_intervention_robot);
			}

			incendie.setNRobot(this.nRobot); /* On affecte le robot à l'incendie */
			robot.setDateDisponibilite(date_disponibilite); /* On set la date de dispo du robot */

			incendie.setPotentielEau(robot.deverserEau()); /* On diminue le potentiel en eau de l'incendie */
			
			if(robot.getReservoir() == 0){
				System.out.println("Le réservoir du robot "+robot.getClass().getName().split("DonneesSimulation.")[1]+" numéro "+this.nRobot+" vient de se vider " + incendie.getPotentielEau() + "\n");
				robot.setDateDisponibilite(1);
				return_value = true;
			}
			else System.out.println("Le robot "+robot.getClass().getName().split("DonneesSimulation.")[1]+" numéro "+this.nRobot+" vient de verser de l'eau sur l'incendie et son réservoir n'est plus que de "+robot.getReservoir());

			if (incendie.getPotentielEau() == 0) { /* Si l'incendie est déjà éteint alors on dit au simu qu'on a finit le travail */
				System.out.println("L'incendie " + robot.getNIncendie() + " est éteint !\n");
				this.donnees.removeIncendie(incendie);
				robot.setNIncendie(-1);
			} 
			else { /* Sinon on lui dit qu'il faut continuer à agir au prochain T */
				System.out.println("L'incendie n'est pas encore éteint et le réservoir du robot "+robot.getClass().getName().split("DonneesSimulation.")[1]+" numéro "+this.nRobot+" est de : "+robot.getReservoir());
				this.setDate(1);
				return_value = false;
			}
		}
		return return_value;
	}