From 494e88fc8422ffb9ac85c9a76cba238d99a9baaf Mon Sep 17 00:00:00 2001
From: jrafei <jana.eltayeb-el-rafei@etu.utc.fr>
Date: Sat, 16 Dec 2023 18:30:49 +0100
Subject: [PATCH] changer_decision

---
 internal/simulation/agent.go        | 3 ++-
 internal/simulation/controleur.go   | 8 ++++----
 internal/simulation/usagerLambda.go | 4 ++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/internal/simulation/agent.go b/internal/simulation/agent.go
index 15be7fc..74ea199 100644
--- a/internal/simulation/agent.go
+++ b/internal/simulation/agent.go
@@ -28,7 +28,8 @@ const (
 	Wait
 	Move
 	Disapear
-	Expel
+	Expel // virer l'agent
+	Stop  // arreter l'agent
 )
 
 type Coord [2]int
diff --git a/internal/simulation/controleur.go b/internal/simulation/controleur.go
index 8916fa5..6042a40 100644
--- a/internal/simulation/controleur.go
+++ b/internal/simulation/controleur.go
@@ -55,15 +55,15 @@ func (c *Controleur) Deliberate(ag *Agent) {
 	} else {
 		if matchedAgt  && ag.env.controlledAgents[AgentID(c.faceCase)] == false { // si l'agent devant le controleur est un agent et qu'il n'a pas encore été controlé
 			//fmt.Println("L'agent ", c.face, " a été détecté par le controleur")
-			ag.decision = Expel // arreter l'agent devant lui
+			ag.decision = Stop // arreter l'agent devant lui
 		} else if matchedFraud && !ag.env.controlledAgents[AgentID(c.faceCase)]{
 			ag.decision = Expel // virer l'agent devant lui
 		} else{
 			// Comportement de l'usager lambda (comportement par defaut)
 			if ag.stuck {
-				ag.decision = Wait
+				ag.decision = Wait // attendre
 			} else {
-				ag.decision = Move
+				ag.decision = Move // avancer
 			}
 		}
 	}
@@ -75,7 +75,7 @@ func (c *Controleur) Act(ag *Agent) {
 	} else if ag.decision == Wait {
 		n := rand.Intn(2) // temps d'attente aléatoire
 		time.Sleep(time.Duration(n) * time.Second)
-	} else { // Expel
+	} else { // Expel ou Wait
 		agt_face_id := AgentID(c.faceCase) //id de l'agent qui se trouve devant le controleur
 		ag.env.agentsChan[agt_face_id] <- *NewRequest(ag.id, ag.decision) // envoie la decision du controleur à l'agent qui se trouve devant lui
 		//fmt.Print("[Controlleur , Act ]requête envoyée à l'agent ", agt_face_id, "\n") 
diff --git a/internal/simulation/usagerLambda.go b/internal/simulation/usagerLambda.go
index f94f84d..7f3e09c 100644
--- a/internal/simulation/usagerLambda.go
+++ b/internal/simulation/usagerLambda.go
@@ -34,9 +34,9 @@ func (ul *UsagerLambda) Percept(ag *Agent) {
 func (ul *UsagerLambda) Deliberate(ag *Agent) {
 	//fmt.Println("[AgentLambda Deliberate] decision :", ul.req.decision)
 
-	if ul.req.decision == Wait{
+	if ul.req.decision == Stop{
 		ag.decision = Wait
-	} else if ul.req.decision == Expel{ // cette condition est inutile car l'usager lambda ne peut pas etre expulsé
+	} else if ul.req.decision == Expel{ // cette condition est inutile car l'usager lambda ne peut pas etre expulsé , elle est nécessaire pour les agents fraudeurs
 			ag.decision = Expel
 		}else if ag.position == ag.destination && (ag.isOn[ag.position] == "W" || ag.isOn[ag.position] == "S") {
 			//fmt.Println(ag.id, "disapear")
-- 
GitLab