Files

60 lines
1.6 KiB
Java
Raw Permalink Normal View History

2025-12-10 11:16:18 +01:00
import java.util.*;
2025-12-10 10:19:06 +01:00
import java.util.Objects;
2025-12-10 11:16:18 +01:00
import java.util.ArrayList;
2025-12-10 10:19:06 +01:00
/** feuille du motif composite */
public class Chef extends Person {
2025-12-10 11:16:18 +01:00
private List<Person> grp;
2025-12-10 10:19:06 +01:00
public boolean addSubalterne(Person p){
2025-12-10 11:16:18 +01:00
return grp.add(p);
2025-12-10 10:19:06 +01:00
}
/** constructeur
*
* @param n fun factor
*
*/
public Chef(int n){
super(n);
2025-12-10 11:16:18 +01:00
this.grp = new ArrayList<>();
2025-12-10 10:19:06 +01:00
// 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(){
2025-12-10 11:16:18 +01:00
int total = 0;
for (Person p : grp) {
total += p.bestParty(); // Chaque subalterne peut choisir de venir ou non
}
return total;
2025-12-10 10:19:06 +01:00
}
/**
* 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(){
2025-12-10 11:16:18 +01:00
int sansMoi = bestPartyWithoutMe();
int avecMoi = getFunFactor();
for (Person p : grp) {
avecMoi += p.bestPartyWithoutMe(); // Si je viens, mes subalternes ne peuvent pas venir
}
return Math.max(sansMoi, avecMoi);
2025-12-10 10:19:06 +01:00
}
}