Please enable JavaScript.
Coggle requires JavaScript to display documents.
Présentation du fonctionnement du programme à chaque tour : (Un tour…
Présentation du fonctionnement du programme à chaque tour :
Un tour correspond au balayage par le programme de chaque case de la matrice (fonction :
Deplacement
)
Si la case étudiée est vide (l'index [0] de la liste d'identité de la case vaut -1, ce qui correspond à une case d'océan, ou 0, ce qui correspond à une case vide de la carte)
Rien ne se passe, le programme passe à une autre case
Si la case étudiée est occupée par un prédateur (index [0] de la liste d'identité de la case vaut 2)
Si le prédateur n'a pas encore joué à ce tour (l'index [3] de la liste d'identité vaut 1)
Tous les quatre tours, le confort du prédateur diminue d'un point, ce qui augmente sa probabilité de décès au début du tour (fonction :
DeplacementPredateur
)
Si le prédateur meurt, une case vide est attribuée à son emplacement (liste d'identité de la case devient [0,0,0,0]) et l'algorithme reprend le balayage de la carte (fonction :
Deplacement
)
Si le prédateur ne meurt pas de faim
Si son confort est suffisamment haut et qu'une case est libre aux alentours, il se reproduit et se déplace vers la case libre. Alors, il vieillit, son confort diminue de moitié, et il devient inactif. L'algorithme reprend le balayage des cases de la matrice (fonction :
ReproductionPredateur
)
Sinon, il scrute les cases alentours (rayon : 2) (fonction :
DeplacementPredateur
)
Si une ou plusieurs proies se trouvent dans les environs, il en choisit une au hasard, et l'attaque. Alors son âge augmente, son confort augmente et il devient inactif. L'algorithme reprend le balayage des cases de la matrice (fonction :
DeplacementPredateur
)
Si aucune proie n'est présente, le prédateur tente de se déplacer aléatoirement
Si au moins une case est libre, le prédateur s'y rend. Alors son âge augmente et il devient inactif. L'algorithme reprend le balayage des cases de la matrice (fonction :
DeplacementAleatoirePredateur
)
Sinon, le prédateur ne fait rien, devient inactif, son âge augmente, l'algorithme reprend le balayage de la carte
Si la case étudiée est occupée par une proie (l'index [0] de la liste d'identité de l'individu vaut 1, ce qui correspond à une proie endémique, ou 3 ce qui correspond à une proie invasive)
Si la proie n'a pas encore joué à ce tour (l'index [3] de la liste d'identité vaut 1)
(fonction :
DeplacementProie
) L'individu a une probabilité de mourir de vieillesse qui est proportionelle à son âge (et à son confort ?)
Si la proie meurt, une case vide est attribuée à l'emplacement de la proie (liste d'identité de la case devient [0,0,0,0]) et l'algorithme reprend le balayage de la carte (fonction :
Deplacement
)
Si la proie ne meurt pas de vieillesse, elle scrute les case immédiateent aux alentours (rayon : 1) (fonction :
DéplacementProie
<-- découper et faire une petite fonction ?)
S'il y a un ou plusieurs prédateur(s) dans les environs, la proie tente de s'enfuir (fonction :
DeplacementProie
s'il n'y a qu'un seul prédateur,
Fuite
si plusieurs prédateurs)
Si la case choisie pour la fuite est libre, la proie y va, elle devient inactive (index [3] de la liste d'identité), son âge augmente d'un tour (index [1] de la liste d'identité) et l'algorithme reprend le balayage des cases de la matrice
Si la case choisie n'est pas libre, alors la proie choisit une autre case aléatoirement (fonction :
DeplacementAleatoireEtReproduction
)
Si une case est libre, la proie s'y rend, se reproduit avec une certaine probabilité, son âge augmente, elle devient inactive, l'algorithme reprend le balayage des cases de la matrice
Sinon, la proie ne fait rien, devient inactive, et son âge augmente, l'algorithme reprend le balayage de la carte
S'il n'y a pas de prédateurs dans les environs immédiats, la proie tente un déplacement aléatoire et une reproduction
Si au moins une case proche est libre, la proie se déplace aléatoirement et se reproduit avec une certaine probabilité (fonction :
DeplacementAleatoireEtReproduction
). La proie devient inactive, son âge augmente, l'algorithme reprend le balayage des cases de la matrice
Sinon, la proie ne fait rien, devient inactive, son âge augmente, l'algorithme reprend le balayage de la carte