DEV/DEV3.4/TP5/stub/exo3/Chef.java
2023-12-15 12:28:32 +01:00

63 lines
1.6 KiB
Java

import java.util.*;
/** feuille du motif composite */
public class Chef extends Person {
ArrayList<Person> subalternes;
public boolean addSubalterne(Person p){
return this.subalternes.add(p);
}
/** constructeur
*
* @param n fun factor
*
*/
public Chef(int n){
super(n);
this.subalternes = new ArrayList<Person>(100);
// d'autres choses peut-être.
}
/**
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
*
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
*
*/
public int bestPartyWithoutMe(){
int funParty = 0;
for(int i=0;i<this.subalternes.size();i++){
funParty += this.subalternes.get(i).bestParty();
}
return funParty;
}
/**
* La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes).
* soit c'est la meilleure fête avec moi.
*
* @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
*
*/
public int bestParty(){
return Integer.max(this.bestPartyWithMe(),this.bestPartyWithoutMe());
}
private int bestPartyWithMe(){
int funParty = this.getFunFactor();
for(int i=0;i<this.subalternes.size();i++){
funParty += this.subalternes.get(i).bestPartyWithoutMe();
}
return funParty;
}
}