19 vues
# *Cahier des charges* # Projet : BITS CLICK ## I/ Contexte et définition du problème : ***Contexte :*** Jeu type "Cookie Clicker" ou "Universal Paperclips", version NSI :computer: . L'objectif sera de rassembler le plus de bits (la monnaie du jeu) en clickant sur bouton au départ. Plus le joueur deviendra riche en bits, plus ses clicks lui rapporteront de bits rapidement, jusqu'à ce que le jeu devienne de plus en plus "autonome", en clickant lui-même sur le bouton de gain de bits. De plus, pour pousser notre projet en maximum, nous allons réaliser ce jeu en deux versions : une version de notre jeu codé "fait maison", à l'aide de toutes nos connaissances et compétences, et une seconde version (du même jeu) mais boostée par l'I.A., pour comparer ces deux méthodes de travail au sein d'un même projet. ***Problème :*** * Utilisation de Flask (Python) * HTML et CSS * JavaScript ## II/ Les objectifs : L'objectif est de developper un jeu incrémental, c'est-à-dire un jeu qui devient autonome plus l'utilisateur joue. Le joueur cherchera à avoir le plus de bits possible pour devenir de plus en plus riche pour aller de plus en plus loin dans le jeu. Les objectifs d'apprentissage sont : * Renforcer nos compétences languages WEB (et en Flask) * Apprendre le JavaScript * Essayer de finir le jeu pour qu'il soit jouable fin mai ## III/ Le périmètre du projet : Ce que nous comptons réaliser dans ce jeu : * création de la monnaie se nommant "les bits" * programmation d'un bouton principal pour gagner des bits à chaque click * codage de boosts à acheter pour améliorer les gains par click * création d'un casino virtuel pour miser des bits * programmation d'un système de mini-jeux pour gagner un certain nombre de bits par seconde (plusieurs levels) ---> faire plusieurs types de mini-jeux * réalisation d'un système de conversion de bits en euros virtuel * codage d'objets virtuels à acheter sur le jeu avec l'euro virtuel, pour que le joueur augmente ainsi son patrimoine sur le jeu Ce que nous aimerions faire, mais que l'on pense ne pas avoir le temps de réaliser : * ajouter du graphisme dans style.css * faire fonctionner le serveur Flask qui herberge le jeu * créer un système d'inscription et de connexion pour que chaque joueur ait son compte ## IV/ Description fonctionnelle : Le projet sera constitué : * d'un serveur flask pour faire tourner les pages WEB * d'une pages HTML, qui sera la page de jeu * d'une page CSS pour le style * d'une page Javascript pour réaliser toute la partie dynamique de la page WEB et des aspects "autonomes" du jeu ## V/ Répartitions des rôles : Audric s'occupait plus du projet version IA, et Alban de la version "fait maison". Cependant, nous nous sommes quand même entraidés lorsque nous rencontrons des problèmes, où nous réflichissions ensemble a une solution. | Eléments | Explication | | -------- | -------- | | Objectif | création de la monnaie : "les bits" | | Description | créer et afficher variable "bits" qui peut évoluer au cours du temps | | Contrainte | toujours afficher la bonne valeur de bits, même après qu'elle évolue | | Eléments | Explication | | -------- | -------- | | Objectif | avoir un bouton qui donne des bits à chaque click | | Description | programmation d'un bouton principal qui rajoute des bites | | Contrainte | pas de contrainte | | Eléments | Explication | | -------- | -------- | | Objectif | pouvoir acheter une amélioration de gain par click quand on appuie sur le boutton principal | | Description | changer une variable "gain_click" et la faire augmenter quand elle passe au niveau superieur | | Contrainte | le bouton principal doit ajouter le gain_click par click et non seulement 1 seul bit | | Eléments | Explication | | -------- | -------- | | Objectif | création d'un casino virtuel pour miser des bits | | Description | pouvoir miser des bits avec un pourcentage de doublage de la mise | | Contrainte | le joueur doit miser un nombre de bits qu'il possède et supérieur à 0 | | Eléments | Explication | | -------- | -------- | | Objectif | créer d'un système de mini-jeux pour gagner un certain nombre de bits par seconde (plusieurs levels) ---> faire plusieurs types de mini-jeux | | Description | programmer plusieurs jeux différents qui font gagner des bits toutes les secondes | | Contrainte | réussir à ce que chaque mini-jeu ait plusieurs niveaux + coder des boucles qui ajoutent le bon nombre de bits au joueur toutes les secondes + régler tous les bugs de code qui arrivent au cours de la programmation (→ donc important de bien nommer les varibles pour bien s'y repérer) | | Eléments | Explication | | -------- | -------- | | Objectif | réalisation d'un système de conversion de bits en euros virtuel | | Description | pouvoir transformer des bits en euros virtuels, pour ensuite acheter des richesses (dans le jeu) | | Contrainte | pas de contraintes | | Eléments | Explication | | -------- | -------- | | Objectif | codage d'objets virtuels à acheter sur le jeu avec l'euro virtuel, pour que le joueur augmente ainsi son patrimoine sur le jeu | | Description | créer une liste déroulante d'objets à acheter en euros virtuels, pour ainsi s'enrichir | | Contrainte | apprendre les bases des inputs en liste en HTML | | Eléments | Explication | | -------- | -------- | | Objectif | ajouter du graphisme | | Description | coder la partit style WEB dans style.css | | Contrainte | réussir à ce que le rendu soit comme celui imaginé | | Eléments | Explication | | -------- | -------- | | Objectif | faire fonctionner le serveur Flask qui herberge le jeu | | Description | faire tourner le jeu WEB sur un serveur Python | | Contrainte | aucune | ## VI/ Délais et calendrier (Carnet de Bord): FIN DU PROJET : 27 mai :warning: 30 avril ---> propositions d'idées de projet 6 mai ---> choix définitif du projet + structure du projet avec *le Cahier des Charges* (quel est l'objectif, comment le réaliser, quels languages, difficultés attendues,...) 13 mai ---> départ de la programmation du projet (remise en tête des bases du language WEB) (travail à la maison : avancement sur les bases du jeu) 15 mai ---> projet en cours de développement, pour avoir une bonne base pour notre jeu WEB en fin de séance + apparition des premiers bugs et difficultés (erreurs de code pour les gains automatiques) (travail à la maison : réglages des bugs) 20 mai ---> réglage de certaines erreurs + ajout d'améliorations pour rendre le jeu attractif (travail à la maison : ajouts des dernières améliorations + corrections des dernières erreurs de code) 22 mai ---> programmer un système de conversion de bits en euros virtuels, pour ainsi construire un patrimoine virtuel sur le jeu (travail à la maison : faire le style.css + faire fonctionner le jeu sur serveur Flask) En BONUS : * créer un système d'inscription et de connexion pour accéder à