Le sujet du projet est dans Sujet.pdf
GROUPE 4
Mehdi Hajjam - Wadia Ferjani - Anass Benfathallah - Julien Bénard-
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
- 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
- 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
(ouStop
). - 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éfixep:
. 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.
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 |
Caractéristique | Effet | Paramètres | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Camouflages | Réduit la visibilité de la Bestiole |
|
|||||||||||||||
Carapace | Réduit la probabilité de mort de Bestiole lors des chocs. Ralentit la Bestiole. |
|
|||||||||||||||
Nageoire | Augmente la vitesse de la bestiole. |
|
|||||||||||||||
Oreilles | Permet à la bestiole de percevoir les autres bestioles dans un rayon autour d'elle. |
|
|||||||||||||||
Yeux | Permet à la bestiole de percevoir les autres bestioles dans un secteur angulaire devant elle. |
|
|||||||||||||||
Comportement | Détermine les actions de la Bestiole: |
|
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