Nicolas VEYLON et Sophie TUTON
Dans le cadre de mes études, j'ai été menée à travailler en groupe sur des projets.
Je vous présenterai ici un projet informatique, mené en binôme [Nicolas VEYLON et Sophie TUTON], correspondant à une simulation de comportement. Le but était de simuler le comportement d'un ensemble de personnes dans un endroit restreint composé de zones caractéristiques.
Chaque personne doit posséder un champ de vision limité, des attributs, aller vers certaines personnes, et en fuir d'autres. Les personnes seront catégorisées et auront un comportement dépendant de leur catégorie. De plus, la simulation doit se faire tour par tour.
Deux parties sont demandées: une première sans interface graphique, et une seconde avec interface graphique. Pour le moment, seulement la première partie a été réalisée et est publiée ici.
♦ Voici le rapport expliquant le programme Python crée complet :
UV21_EnstaZ_TUTON_VEYLON.pdf
Principale erreur : Dans ce dossier, il faudrait montrer le diagramme des classes en entier
♦ Voici les codes de mi-projets : (sans interface graphique)
EnstaZ_TUTON_VEYLON.rar
README : [Afficher]
Lancer le script enstaZ.py dans une console Python
♦ Voici les codes finaux : (avec interface graphique)
EnstaZ 2016.zip
README : [Afficher]
Ce programme a été réalisé sous Python 3.4 et utilise PyQt4
Lancer le script interface.py
Principale erreur : Ne pas avoir laissé des testes pour chaque partie du programme
♦ Voici quelques transparents explicatifs :
Soutenance_TUTON_VEYLON.pdf
"These are the end times. There was no hope of survival. This is how they died." Project Zomboid.
<< Le
but de ce projet est de modéliser le comportement des habitants d'une
ville lors d'une apocalypse zombie. Dans cette simulation, les personnes
vivantes tenteront de fuir les zombies tout en subvenant à leurs besoins
en nourriture. Chaque personne est dotée de caractéristiques différentes
(le courage et la force par exemple) selon qu'elle soit médecin, enfant
ou encore militaire. Ces caractéristiques ont un impact notable sur le
devenir de la personne, car elles sont ancrées dans les mécanismes de
prise de décision et de combat.
La partie commence par l'arrivée
de zombies dans la ville. Les habitants sont bien sûr déjà sur place. A
partir de là, les joueurs (vivant ou zombie) joueront à tour de rôle. Un
tour est composé d'une phase d'entretien (alimentation, soin), d'une
prise de décision sur l'action à faire, et enfin d'un déplacement
(interféré ou non par un combat contre un zombie).
La simulation
respecte le genre zombie : si un habitant vient à mourir suite à une
morsure, il se relèvera zombifié quelques tours plus tard et, en outre,
un système d'équipement et de "loot" est mis en place, permettant aux
survivants d'affronter leur destin. S'ajoute à cela des événements
aléatoires visant à rajouter de la dynamique à la simulation. >>


La majeure partie de l’interface a été élaborée à l’aide de l’outil
QtDesigner. Le stylesheet (habillage de l’interface, thème ou encore
«skin ») a été récupéré en ligne sur le site de Yasin Uludag3. Cette
interface (cf photo suivante) nous donne les informations nécessaires
pour comprendre la si-mulation via :
- Deux cartes 1 où sont représentés les joueurs et les objets (respectivement onglet « Carte des joueurs » et « Carte des objets »).
- Une zone de textes 2 de type label où le tour simulé est détaillé. (Ce label est appelé histo-rique)
- Des compteurs de type lcdNumber 3 où le tour, le nombre de survivants, de zombies et de morts du sont comptabilisés,
- Un graphique 4 représentant l’évolution du nombre de zombies, de vivants et de morts au cours de la simulation.
Les boutons
5
servent à jouer et visualiser la simulation avec différentes vitesses.
Il est également possible de redémarrer une nouvelle simulation à l’aide
du dernier bouton. Les images utilisées pour les boutons ont été
récupérées sur Internet. (cf le rapport)
- Voici la présentation générale des classes créées :

Nous avons la classe mère Personne, servant à la création des classes filles Zombie et Vivant.
Nous avons également des classes filles LambdaZ et Tank héritant de la classe Zombie, et 5 autres classes (Enfant, Medecin, Militaire, LambdaV et Religieux_ext) héritant de la classe Vivant.

Nous avons une classe Objet, avec 3 classes filles Nourriture, Medicament et Arme héritant de la classe Objet.
Ensuite, nous avons deux classes filles héritant de Arme: il s'agit de Arme_a_feu et Arme_de_melee
Nous avons également une classe Case servant à modéliser la map
- Voici le diagramme des classes créées, fait sur le logiciel ArgoUML :
