package draftdb.intelligences;
import draftdb.Coureur;
import draftdb.Equipe;
import draftdb.Simulation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
public class IntelligenceJoueur extends Intelligence {
public IntelligenceJoueur(Equipe equipe, Simulation simulation) {
this.equipe = equipe;
this.simulation = simulation;
this.budgetProvisoire = this.equipe.getBudget();
this.compositionEquipe = new ArrayList<>();
}
@Override
public Coureur choisirCoureur() {
Scanner scanner = new Scanner(System.in);
int idCoureurChoisi;
Coureur coureurChoisi;
// id des coureurs dont le salaire est inférieur au budget de l'équipe
List<Integer> idCoureursRecrutables = new ArrayList(
simulation.getCoureursLibres().entrySet().stream()
.filter(c -> c.getValue().getSalaire() <= budgetProvisoire)
.collect(Collectors.toMap(c -> c.getKey(), c -> c.getValue())).keySet()
);
do {
System.out.println(idCoureursRecrutables);
System.out.println(idCoureursRecrutables.size()
+ " coureurs recrutables (" + idCoureursRecrutables.get(0) + ")");
idCoureurChoisi = scanner.nextInt();
coureurChoisi = simulation.getCoureursLibres().get(idCoureurChoisi);
}
while (!idCoureursRecrutables.contains(idCoureurChoisi));
this.embaucherCoureur(coureurChoisi);
return coureurChoisi;
}
@Override
//TODO: Laisser la possibilité au joueur de choisir
public void choisirNbMaxCoureurs() {
this.nbMaxCoureurs = 30;
}
}