Skip to content

Latest commit

 

History

History
379 lines (376 loc) · 15.3 KB

readme.md

File metadata and controls

379 lines (376 loc) · 15.3 KB
<style> code{ font-family: 'Courier New', Courier, monospace; } .key{ color:black; background-color: lightgray; } .instruction{ color:green; background-color: rgb(49, 49, 49); } .file{ font-weight: bold; color:slategray; } table, th, tr, td{ border: solid 2pt; border-color:rgb(49, 49, 49); } th{ color:black; font-weight: bold; background-color: grey; } td{ font-style: italic; } </style>

BESTIOLES

Le sujet du projet est dans Sujet.pdf

GROUPE 4

Mehdi Hajjam - Wadia Ferjani - Anass Benfathallah - Julien Bénard

INSTALLER

  • Utiliser le Makefile: :$ make all
  • Lancer le programme avec :$ ./main
  • Si vous voulez, nettoyez les objets :$ make clean
  • Le Paramétrage de la simulation se fait via le fichier "InputData.txt".
  • La récupération des résultats de la simulation se fait dans le fichier "Output.csv".
  • Pour Désinstaller :$ make clean-all

CONTROLES EN COURS DE SIMULATION

  • spacebar (dans le programme de simulation) Pour mettre la simulation en pause, ou remettre en route
  • k (dans le programme de simulation) Pour activer l'utilitaire de suppression de créatures. Il faut alors ensuite écrire dans la console le numéro de la Bestiole à tuer. Un faux numéro annule la commande. La commande met automatiquement la simulation en pause. Réactivez avec spacebar
  • Esc (dans le programme de simulation)Interrompre définitivement la Simulation
  • r (dans le programme de simulation) Afficher le contenu de la simulation
  • c (dans le programme de simulation) Compter les Bestioles dans l'Aquarium
  • n (dans le programme de simulation) Ajouter des Bestioles dans la simulation, en utilisant, dans la console, la syntaxe de paramétrage de simulation, et en remplaçant la proportion par le nombre de bestioles à ajouter. Une erreur annule la commande. La commande met automatiquement la simulation en pause. Réactivez avec spacebar

SYNTAXE DE PARAMETRAGE DE LA SIMULATION

  • Le fichier à modifier est "InputData.txt" pour le paramétrage initial de la simulation. Les résultats sont stockés dans "Output.csv"
  • Les sauts de ligne sont requis entre chaque instruction et on ne peut pas enchaîner plusieurs instructions sur une même ligne. Il est recommandé de ne pas écrire à la suite d'instructions, sur la même ligne, cela pouvant avoir des effets inattendus, allant d'aucun effet à un arrêt de la lecture des instructions.
  • Il est impossible de couper une instruction et de la répartir sur plusieurs lignes. Il est possible Néanmoins de sauter autant de lignes que l'on souhaite entre chaque instruction.
  • Les indentations sont prohibées, ainsi que les caractères d'espacement à la fin des lignes.
  • Tout paramétrage, qu'il soit réalisé avec le fichier d'entrée ou les commandes de la console, doit s'achever par une instruction STOP (ou Stop).
  • De manière générale, répéter une instruction ou redéfinir une valeur est possible, et la simulation sera réalisée avec la dernière redéfinition de la valeur
  • Le fichier d'instruction doit commencer par la définition des paramètres de simulation. Le bloc des paramètres de simulation commence par l'instruction Simulation sur une ligne. Il est suivi (ou non) par plusieurs lignes attribuant des valeurs personnalisées aux propriétés de la simulation.
  • Chaque propriété peut voir sa valeur redéfinie à l'aide du mot Propriété suivie du Nom de la propriété (voir liste des propriétés plus bas) et de la valeur attribuée à la propriété. Cette redéfinition est facultative et les valeurs par défaut seront appliquées si l'instruction de redéfinition n'est pas donnée. (voir tableau)
  • Il est ensuite nécessaire de définir les bestioles présentes. Cela est fait via le bloc "Bestioles", qui doit commencer par l'instruction, sur une ligne Bestioles.
  • Dans le bloc "Bestioles" peuvent être définies les différents types de Bestioles. La définition d'un type de Bestiole se fait via l'instruction Type [Nom de type (facultatif)] p: [valeur de la proportion]. Le nom de type sert à identifier le type de bestioles dans les retours de la console, mais également sur les statistiques. Il est facultatif, de même que la proportion et son préfixe p:. Indiquer la proportion est néanmoins fortement recommandé, ou la valeur par défaut de 1 sera donnée, et pourra causer un sureffectif. Il est également recommandé que la somme des proportions fasse 1, ou l'effectif réel ne sera pas celui demandé.
  • Après la définition d'un type suivent obligatoirement les différentes caractéristiques de ce type (membres et comportements). Celles-ci sont déclarées sur les lignes suivantes de cette manière [nom de caractéristique] [paramètre] [valeur] [paramètre] [valeur] [paramètre] [valeur] où le Nom de la caractéristique (voir liste des caractéristique plus bas) est le nom de l'organe ou du comportement, et les différents paramètres et leurs valeurs correspondent aux paramètre de cette caractéristique. Une bestiole doit obligatoirement avoir toutes ses caractéristiques spécifiées, sinon elle n'en aura pas. Les paramètres de chaque caractéristiques doivent tous recevoir une valeur, sinon la caractéristique ne sera pas appliquée. Seul le comportement peut être ommis, auquel cas il est défini comme "Dumb" (Aller en ligne droite).
  • Lors de l'utilisation de la commande n, seule l'instruction de type, les définitions de caractéristiques, et l'instruction STOP sont nécessaires.

TABLEAU DES PROPRIETES

Nom de propriété Type Description Valeur Min Valeur Max Par défaut
POPULATION int Population Moyenne visée (si les proportions sont bien renseignées) 0 300 64
LIFE int Espérance de vie en époques d'une Bestiole 20 2000 660
WINDOW_H int Hauteur en Pixels de la fenêtre 400 +Inf 600
WINDOW_W int Largeur en Pixels de la fenêtre 400 +Inf 800
AFF_SIZE double Taille d'affichage des bestioles à l'écran 3.1 +Inf 8.0
MULTIPLE_CHANGE_RATE int Nombre moyen d'époques de la simulation avant qu'un comportement multiple ne change 10 +Inf 300
MAX_VITESSE double Vitesse Maximale d'une Bestiole sans membre supplémentaire 2.0 10.0 6.5
MAX_PHI double Valeur Max du paramètre Phi des Camouflages MIN_PHI, 0 +Inf 1.0
MIN_PHI double Valeur Min du paramètre Phi des Camouflages 0 MAX_PHI 0
MAX_DELTA_O double Valeur Max du paramètre Delta des Oreilles MIN_DELTA_O, 0 +Inf 39.6
MIN_DELTA_O double Valeur Min du paramètre Delta des Oreilles 0 MAX_DELTA_O 11.5
MAX_GAMMA_O double Valeur Max du paramètre Gamma des Oreilles MIN_GAMMA_O, 0 +Inf 1.0
MIN_GAMMA_O double Valeur Min du paramètre Gamma des Oreilles 0 MAX_GAMMA_O 0
MAX_DELTA_Y double Valeur Max du paramètre Delta des Yeux MIN_DELTA_Y, 0 +Inf 68.8
MIN_DELTA_Y double Valeur Min du paramètre Delta des Yeux 0 MAX_DELTA_Y 16.5
MAX_GAMMA_Y double Valeur Max du paramètre Gamma des Yeux MIN_GAMMA_Y, 0 +Inf 1.0
MIN_GAMMA_Y double Valeur Min du paramètre Gamma des Yeux 0 MAX_GAMMA_Y 0
MAX_ALPHA double Valeur Max du paramètre Alpha des Yeux MIN_ALPHA, 0 2*PI 4.59
MIN_ALPHA double Valeur Min du paramètre Alpha des Yeux 0 MAX_ALPHA, 2*PI 0.31
MAX_OMEGA double Valeur Max du paramètre Omega de la Carapace 1.0 10.0 4.5
MAX_ETA double Valeur Max du paramètre Eta de la Carapace 1.0 5.5 2.9
MAX_NU double Valeur Max du paramètre Nu de la Nageoire 1.0 5.5 2.7
CLONE_RATE double Probabilité de clonage d'une créature à chaque époque de la simulation 0 0.1 0.0008
GENERATION_RATE double Facteur de réapparition des Bestioles (selon les proportions initiales) 0 10.0 3.26
SURVIVE_COLLISION double Probabilité qu'une Bestiole survive à une collision avec une autre bestiole 0 1.0 0.88
PROPORTION_CHANGE double Pourcentage maximal de modification de sa vitesse pour une bestiole (sans collision). Non-Inertie 0 1.0 0.207

TABLEAU DES CARACTERISTIQUES

Caractéristique Effet Paramètres
Camouflages Réduit la visibilité de la Bestiole
PhiFacteur de Camouflage[MIN_PHI; MAX_PHI]
Carapace Réduit la probabilité de mort de Bestiole lors des chocs. Ralentit la Bestiole.
OmegaFacteur de Protection[1.0; MAX_OMEGA]
EtaFacteur de Ralentissement[1.0; MAX_ETA]
Nageoire Augmente la vitesse de la bestiole.
NuCoefficient d'accélération[1.0; MAX_NU]
Oreilles Permet à la bestiole de percevoir les autres bestioles dans un rayon autour d'elle.
DeltaDistance maximale de perception[MIN_DELTA_O; MAX_DELTA_O]
GammaEfficacité de la perception[MIN_GAMMA_O; MAX_GAMMA_O]
Yeux Permet à la bestiole de percevoir les autres bestioles dans un secteur angulaire devant elle.
DeltaDistance maximale de perception[MIN_DELTA_Y; MAX_DELTA_Y]
GammaEfficacité de la perception[MIN_GAMMA_Y; MAX_GAMMA_Y]
AlphaAngle du secteur de perception[MIN_ALPHA; MAX_ALPHA]
Comportement Détermine les actions de la Bestiole:
MultipleLa bestiole change de comportement régulièrement parmi les autres comportementsN°-1
PeureuseLa bestiole fuit dès qu'elle détecte trop de bestioles prochesN°0
KamikazeLa bestiole ralentit puis attaque à toute vitesse la bestiole la plus procheN°1
PrévoyanteLa bestiole tourne à gauche ou à droite pour éviter les collisionsN°2
GrégaireLa bestiole s'adapte à la vitesse de ses voisines.N°3

EXEMPLE DE PARAMETRAGE

Simulation
Propriété POPULATION 80
Propriété LIFE 680
Propriété MAX_PHI 1.0
Propriété WINDOW_H 800

Propriété MAX_ETA 5.4

Bestioles

Type Troupeau p: 0.25

Carapace eta 2.6 omega 3.8
Camouflages phi 0.1
Oreilles delta 26.5 gamma 0.3

Comportement Gregaire



Type Thinker p: 0.25
Oreilles gamma 0.9 delta 18.5
Nageoire nu 2.6
Camouflages phi 0.2
Comportement Prevoyante

Type Rusé p: 0.25
Yeux delta 48.6 alpha 0.78 gamma 0.4
Comportement Multiple

Type Chasseur p: 0.25
Yeux delta 31. alpha 0.66 gamma 0.4
Oreilles delta 16.9 gamma 0.88
Nageoire nu 1.8
Comportement Kamikaze

Stop