summaryrefslogtreecommitdiff
path: root/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /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.java65
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());
+ }
+}