đŸ”„ Chef d’Ɠuvre : terminĂ©. ✔

đŸ”„ Objectifs du chef d’Ɠuvre

Mettre en Ɠuvre tout ce qui a Ă©tĂ© vu sur la SDL, en crĂ©ant un mini jeu. Nous proposons un jeu totalement diffĂ©rent (validĂ© par l'enseignant). Ce n'est qu'un exercice et il ne faudrait pas lui accorder plus d'une journĂ©e : nous avons passĂ© 2 jours sur cet exercice. Notre jeu mets en Ɠuvre une chaĂźne de Markov afin de gĂ©rer le comportement d'au moins un Ă©lĂ©ment du jeu (le feu).

đŸ”„ But du jeu

EmpĂȘcher la propagation du feu en Ă©teignant les flammes avec vos seaux d'eau.

đŸ”„ ChaĂźne de Markov

Notre chaßne de Markov se déploie sur le comportement du feu.

Il y a 5 états pour un feu :

➀ s'Ă©teint

➀ Ă©tincelle

➀ petit feu

➀ feu fort

➀ se propage

Un tableau de Markov pour l'Ă©volution du feu peut ĂȘtre comme ceci :

Le tableau dans le programme est généré depuis le fichier texte markov.txt.

DĂ©taillons une ligne de ce tableau. Prenons la ligne Étincelle (1). Elle modĂ©lises qu'une Étincelle (1) Ă  30% de chance de rester une Étincelle (1) et 70% de devenir un Petit feu (2). Nous avons remplis ce tableau afin d'approcher une forme de comportement rĂ©el tout en donnant du challenge aux joueurs.

đŸ”„ S'Ă©teindre (0) et Se propage (4)

Un feu peut ĂȘtre Ă©teint (0) et existĂ© ! Il modĂ©lise un dĂ©part de feu soudain. L'Ă©tat Se propage (4) modĂ©lise la multiplication du feu. Dans cet Ă©tat, le feu a une probabilitĂ© uniforme de se propager en croix autour de lui. Il est effectivement créé s'il n'y a pas dĂ©jĂ  un feu ou une source d'eau !

→

đŸ”„ Organisation de l'Ă©quipe

Nous avons travaillé avec Git et l'utilisation des branches. Nous avons rapidement séparé le travail comme suit :

➀ Taha Belkhiri : toute la partie visuelle (carte, assets, menu, dessins, implĂ©mentations) et les animations.

➀ Marc Beret : structure et mĂ©canique du feu; chaĂźne de Markov; propagation du feu.

➀ Antoine Meyer : logique du personnage (collisions); gestion du clic et de ses actions possibles.

→


đŸ”„ ModĂ©lisation

Chaque Ă©lĂ©ment du jeu doit ĂȘtre modĂ©lisĂ©. VoilĂ  nos modĂ©lisations (non exhaustives) de nos principaux Ă©lĂ©ments :

➀ le pompier : position (x,y); nombre de seaux d'eau courant; vitesse de dĂ©placement; nombre de points de vie courant; derniĂšre fois qu'il a touchĂ© le feu.

➀ le feu : position (x,y); Ă©tat (Ă©tincelle, petit feu, etc).

➀ liste chaĂźnĂ©e des feux courants : structure de feu; pointeur sur chainon suivant.

➀ la carte : gĂ©nĂ©rĂ©e depuis le fichier map.txt; dimension (20 cases par 20).

đŸ”„ Animation

➀ le pompier a 3 animations : Se dĂ©place, Immobile et Vient de subir des brĂ»lures.

➀ le feu a diffĂ©rentes tailles suivant son Ă©tat.

➀ les points de vie ont une petite animation de mouvement.

đŸ”„ RĂšgles

➀ Ă©teindre le feu : Mat le pompier ne peut Ă©teindre le feu que dans un rayon de une case autour de lui. Si jamais le joueur clique sur une case non accessible, il perd un seau d’eau inutilement donc attention !

➀ remplir les seaux : Quand Mat se trouve Ă  une case de portĂ©e d’une source d’eau il peut remplir ses seaux en cliquant sur l’eau.

➀ vie du pompier : Mat le pompier dispose de 3 point de vie. Il en perd un Ă  chaque fois qu’il entre en collision avec un feu.

➀ collisions : Mat le pompier ne peut pas traverser des arbres ou marcher sur l’eau. Il ne peut pas non plus sortir de la carte.

➀ prochain feu : Un timer annonce la prochaine Ă©volution des feux (vague de propagation du feu, augmentation du feu, diminution du feu, etc).

➀ score : Chaque feu Ă©teint correspond Ă  un point.

➀ conditions de victoire : Mat gagne quand il a Ă©teint tous les feux. Le score est le nombre de feux Ă©teints : il doit ĂȘtre le plus petit possible. Nous n'avons pas eu le temps de faire un Ă©cran de victoire..

➀ conditions de dĂ©faite : Le joueur perd si Mat n'a plus aucuns points de vie. Il arrive alors sur un Ă©cran de dĂ©faite et peut choisir de recommencer une partie ou de quitter le jeu.

đŸ”„ Tous les feux sont Ă©teints.