Game of life in javascript
- Compte Rendu *
Le TP de GameOfLife se trouve être la version la plus aboutie que nous ayons.
Objectifs atteints: _ Afficher le tableau _ Faire fonctionner le jeu _ Donner la possibilité de rentrer la taille du tableau et ajustement automatique de la taille des cellules _ Donner la possibilité de changer la valeure d'une cellule à n'importe quel moment du jeu _ Créer un bouton pour passer à la génération suivante _ Créer un bouton pour reset le tableau ou mettre des valeurs aléatoires _ Permettre une avance rapide et un ralentissement du jeu. Affichage de la vitesse. _ Afficher un compteur de générations _ Permettre à l'utilisateur de prédéfinir des formes spéciales _ Permettre à l'utilisateur d'enregistrer une phase d'un tableau pour la retrouver à n'importequel moment _ Mise en place d'un système de cellules mortes-vivantes pour visualiser les cellules ayant déjà connu la phase de vie _ Mise en place d'un système de notification et d'achievement pour agrémenter la partie Jeu
Objectifs envisageables _ Donner des objectifs au joueur (mission du style : débloquer tous les achievements) afin de lui permettre de gagner des points _ Faire un classement des joueurs (neccessite une base de donnée et donc un serveur) _ inclure un chat ou un système de message pour permettre aux utilisateurs de communiquer entre eux _ Donner la possibilité aux joueurs d'enregistrer leurs propres formes prédéfinis _ Donner la possibilité de partager ses propres formes prédéfinis avec les autres joueurs _ Créer un bouton pour recentrer la forme au centre de l'écran _ Rendre le tableau torique _ Donner la possibilité de jouer à plusieurs (avec plusieurs modes de jeu, ex : concquérir le plus grand territoire avant l'autre)
Difficultés rencontrés : _ transformation du play-pause en accélération-décélération (Résolu) _ Sauvegarde effacé lors du reset (Résolu) _ Taille du tableau trog grande si elle dépasse 80 (Résolu) _ Problème d'affichage dû au document.write (Résolu) _ Problème sur la gestion des vitesses (Partiellement résolu)
Temps neccessaire à la création du projet (à l'état actuel) : environ 4 jours Notions acquises : Gestion des tableaux (une ou deux dimensions), Utilisation du switch, Maniement des fonctions, Appel des fonctions dans des fichiers extérieurs, transformation des class à travers le javascript, utilisation des booléens, appel de fonction au travers de boutons, documentation et optimisation du code.
Sources de certains bout de code : _ M. LEPOIVRE (code initial pour initialiser, créer et afficher le tableau ainsi que mettre les valeurs aléatoires) _ Commentçamarche.net (utilisation d'effets sonore) _ devellopez.net (utilisation du TimeOut) _ openclassroom (utilisation du document.GetElementById et du changement de class) _ meyerweb.com (fichier reset.css)
AUTEURS :
- Rémi WETTEREN H1 P2018
- Matthieu TOURDES H1 P2018