Skip to content
Snippets Groups Projects
Commit 494e88fc authored by Jana Eltayeb El Rafei's avatar Jana Eltayeb El Rafei
Browse files

changer_decision

parent 0bc5d6b2
No related branches found
No related tags found
2 merge requests!14Merge v2,!10Controleur
......@@ -28,7 +28,8 @@ const (
Wait
Move
Disapear
Expel
Expel // virer l'agent
Stop // arreter l'agent
)
type Coord [2]int
......
......@@ -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")
......
......@@ -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")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment