diff options
| author | Gaspard Coulet <gaspard.coulet@mines-ales.org> | 2021-04-28 23:05:53 +0200 |
|---|---|---|
| committer | Gaspard Coulet <gaspard.coulet@mines-ales.org> | 2021-04-28 23:05:53 +0200 |
| commit | 9fe033ea88c2f705ec18c232873d056e0c229d72 (patch) | |
| tree | 0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java | |
Initial commit
Diffstat (limited to 'sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java')
| -rw-r--r-- | sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java new file mode 100644 index 0000000..ccc0db9 --- /dev/null +++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java @@ -0,0 +1,65 @@ +package visites.toTest; +import java.util.Vector; + + +public class Parcours { + private Vector<Troncon> troncons=new Vector<Troncon>(); + + public void ajoutTroncon(Troncon t){ + boolean ajout=true; + + if (!troncons.isEmpty()){ + Troncon dernierTroncon = troncons.lastElement(); + if (dernierTroncon.getArrivee()!=t.getDepart()){ + System.out.println("erreur"); + ajout=false; + } + } + if (ajout){ + troncons.add(t); + } + } +/*** + * Calcul de la durée du parcours + * @return somme des temps de trajet des tronçons et des visites des étapes + */ + public int calculDuree(){ + int resultat=0; + for (Troncon t:troncons){ + resultat+=t.getTempsTrajet(); + resultat+=t.getDepart().getDureeVisite(); + } + return resultat; + } + + /** + * méthode permettant de déterminer s'il y a des boucles dans le circuit, autre que début/arrivée si le parcours est un circuit. + * On considère qu'il y a une boucle dès qu'il y a à l'intérieur du parcours deux passages par la même étape. + * @return retourne vrai ssi il y a au moins une boucle dans le parcours, autre que début/arrivée + */ + public boolean existeBoucle(){ + Vector<Etape> etapes=new Vector<Etape>(); + for (Troncon t:troncons){ + etapes.add(t.getDepart()); + etapes.add(t.getArrivee()); + } + int posEtape=0; + for (Etape etape:etapes){ + for (int i=posEtape+1;i<etapes.size();i++){ + // on regarde de posEtape+1 à la fin de etapes s'il y a une étape égale à etape + if (etapes.get(i).equals(etape)){ + return false; + } + } + posEtape++; + } + return true; + } +/** + * permet de déterminer si le parcours est un circuit (termine au point de départ) + * @return vrai ssi le départ et l'arrivée sont indentiques. + */ + public boolean estUnCircuit(){ + return troncons.firstElement().getDepart().equals(troncons.lastElement().getArrivee()); + } +} |
