From 9e055f7e0e68c5f664d14f14ee82d2203e56fd4e Mon Sep 17 00:00:00 2001
From: Kurteshi <agnon.kurteshi@etu.hesge.ch>
Date: Mon, 20 Jun 2022 22:19:03 +0200
Subject: [PATCH] push selon autorisation

---
 fourmi/fourmi.c          |   1 +
 fourmi/fourmi.h          |   1 +
 graphe/graphe.c          |   3 ++-
 le_plus_court_chemin.txt |   2 +-
 tp_fourmi                | Bin 72128 -> 72128 bytes
 5 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/fourmi/fourmi.c b/fourmi/fourmi.c
index 2189dc7..462f519 100644
--- a/fourmi/fourmi.c
+++ b/fourmi/fourmi.c
@@ -7,6 +7,7 @@ frmi create_fourmi(int nb_sommet)
     fr->path = malloc(sizeof(stack));
     stack_init(fr->path, nb_sommet);
     fr->distance = 0;
+    fr->ttl = nb_sommet;
     return fr;
 }
 
diff --git a/fourmi/fourmi.h b/fourmi/fourmi.h
index 140b2d3..5f2ec1e 100644
--- a/fourmi/fourmi.h
+++ b/fourmi/fourmi.h
@@ -14,6 +14,7 @@ typedef struct _fourmi
     stack *path;
     int distance; //stocke la distane parcourue par la fourmi
     int depose_pheromone; //permet d'activer le dépôt de phéromones
+    int ttl;
 }f;
 
 typedef f *frmi;
diff --git a/graphe/graphe.c b/graphe/graphe.c
index 0a9648a..e85393b 100644
--- a/graphe/graphe.c
+++ b/graphe/graphe.c
@@ -236,7 +236,8 @@ void create_graph_vis(graph g)
 
 void shortest_path(graph g, frmi f, int noeud)
 {
-    if (noeud == g->nourriture)
+    f->ttl--;
+    if (noeud == g->nourriture || f->ttl == 0)
     {
         stack_push(f->path, noeud);
         return;
diff --git a/le_plus_court_chemin.txt b/le_plus_court_chemin.txt
index 8071ff1..c6aeb19 100644
--- a/le_plus_court_chemin.txt
+++ b/le_plus_court_chemin.txt
@@ -1 +1 @@
-the shortest path is [0][1][3][7] with a cost of 8
+the shortest path is 
\ No newline at end of file
diff --git a/tp_fourmi b/tp_fourmi
index d17ce93c5315f4c3094f59e6faf87ceec5994e74..82c056cc98098eba2fe0510d0e5444c0d9c8cf89 100755
GIT binary patch
delta 10129
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

delta 9983
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

-- 
GitLab