Projet UE704-EC1

But

Réaliser un jeu dans lequel un joueur doit trouver une liste de mot. Il dispose de fragments de mots qu'il doit assembler de manière à reconstituer les mots du pool.
Il gagne s'il reconstitue les 10 mots ; il perd s'il abandonne.
Il doit pouvoir recommencer une partie.

Interface

L'interface doit présenter :

  • 2 champs de type texte dans lesquels le joueur propose les fragments
  • un bouton pour valider sa proposition
  • la liste des fragments dont il dispose
  • la liste des mots trouvés
  • la liste des mots incorrects proposés (option)
  • un moyen d'abandonner et/ou de recommencer une partie

Lexique

Pool de mots
Liste des 10 mots tirés au hasard
Fragment
Partie d'un mot coupé

Mots et leurs fragments

A partir d'une liste de mots donnés, 10 mots sont tirés au hasard en suivant les règles suivantes :

  • 2 mots de 4 caractères
  • 6 mots de 5 caractères
  • 2 mots de 6 caractères
  • un mot ne peut apparaître qu'une seule fois dans le pool de mots

Les mots sont coupés en fragment de 2 ou 3 lettres, avec uniquement 2 fragments par mot.

Déroulement

  1. constitution du pool de mots (cf. répartition décrite plus haut)
  2. découpage des mots en fragments
  3. affichage de la liste des fragments réorganisés aléatoirement
  4. lecture des 2 propositions de fragment du joueur :
    • il dispose de 2 champs pour inscrire les fragments
    • les fragments doivent être donnés dans l'ordre :
      • abs + ent : valide pour "absent"
      • ent + abs : invalide pour "absent"
  5. analyse de la proposition du joueur :
    • si la proposition est correcte, les fragments sont retirés
    • si la proposition est incorrecte, le mot proposé est refusé
  6. la liste correspondante au résultat est enrichie du mot obtenu avec les fragments
  7. suppression des fragments de la liste des fragments si la proposition est correcte

Remarques

Par mesure de simplicité :

  • les accents sont exclus ;
  • les majuscules sont exclues.

Options (développement optionnel)

Pour enrichir la difficulté, il sera possible :

  • d'offrir au joueur la possibilité d'augmenter la taille du pool de mots à 20 ou 30 mots
  • d'imposer un nombre limite d'erreur ; si le joueur dépasse ce nombre limite, il perd.

Projet

Le but du projet est de vous amener à concevoir un programme mettant en place les éléments principaux du jeu en question. Ce qui doit être mis en avant, c'est la réflexion, l'utilisation des éléments vus durant le cours et le débuggage de votre code.

La cohérence entre votre réflexion dans le rapport et votre code dans les parties gérant la logique du jeu sera à mettre en valeur : cela doit se voir !

Liste de mots

Vous trouverez également un fichier zip qui contient tous les mots.

Ce fichier doit rester extérieur à votre projet (un fichier à part), fournissant à votre programme la liste des mots.
Vous ne devez pas modifier cette liste.

Votre programme doit prendre en compte que cette liste peut être modifiée par une autre liste lors de mes tests de votre code.

Bonnes pratiques de développement

Trois choses seront prises en compte dans la notation, au-delà de la réflexion :

  • la propreté du code (absence de code mort, indentation, aération réfléchie du code)
  • l'utilisation à bon escient de commentaires pour indiquer les passages importants
  • la "solidité" du programme : s'il plante au premier essai, c'est pas bon !

Aide

Parmi ce que vous pouvez utiliser, il y a :

Rendu graphique

Un soin sera apporté au rendu graphique du jeu en utilisant vos connaissances en HTML et CSS. Bien entendu, ça n'est pas le point essentiel mais un rendu un minimum attrayant sera un plus.

Javascript

L'usage du Javascript est à exclure. Tout doit être fait rien qu'avec du PHP, HTML et CSS.

Rapport

Un rapport de 10 pages au minimum décrira le processus de réflexion lors de l'élaboration du programme. Il doit donc expliquer les parties importantes de votre code.

Structure

Sa structure devrait suivre la suivante :

  • Page titre et table des matières
  • Introduction (1 page)
  • Présentation du groupe, répartition des tâches (1 page)
  • Réflexion : étude de la logique mise en place : approche, problème(s) rencontré(s), solution(s) pour chacune des grandes parties
  • Conclusion (1 page)
  • Bibliographie & sources

Le rapport sera rendu sous format pdf accompagné d'un fichier zip contenant votre fichier php, le fichier contenant les mots qui vous est fourni et tout autre fichier ajouté pour le rendu graphique (image, fichier css, etc.) Le rapport et le fichier zip devront être nommés avec les noms des membres du groupe.
Par exemple, pour un groupe ayant Albert Dupond et Jean Durand, je dois recevoir :

  • DUPOND_DURAND_rapport.pdf
  • DUPOND_DURAND_projet.zip

Deux pièces jointes pour être sûr que vous n'oubliez ni l'un, ni l'autre !

Formatage

Quelques règles quant au formatage du rapport :

  • Titres, sous-titre, etc. : leur formatage (couleur, police, taille) est laissé à votre appréciation.
  • Le texte de base sera en Calibri ou une autre police sans serif, en taille 12, interligne double.
  • Les extraits de code seront en Courier taille de police 10, retrait à gauche de 0.5cm des paragraphes, interligne simple.
  • Chaque grande partie présentée ci-dessus (introduction, présentation, conclusion, etc.) commencera sur une page vierge.
  • Pagination présente en bas de page.
  • Table des matières dynamiques.
  • L'orthographe et la clarté des explications seront pris en compte.

Modèle de présentation ici.

Demandes

Un interlocuteur par groupe, désigné comme chef de groupe, peut me contacter à l'adresse suivante e.carrinho(at)login-art.com si son groupe a des questions. Il ajoutera en copie les membres de son groupe.

Si la remarque est pertinente, j'enrichirai la partie "FAQ" ci-dessous.

Afin que je puisse informer chaque groupe de l'ajout d'informations, les chefs de groupe me contacteront dès que les groupes seront constitués en m'indiquant les membres du groupe.

FAQ

Quand doit être rendu le projet ? Sous quels formats ?

Le projet (rapport et zip du code) sera envoyé uniquement par le chef de projet à mon e-mail (e.carrinho(at)login-art.com) le 15 janvier 2024 au plus tard.
Il mettra en copie les personnes de son groupe.
J'accuserai réception de votre e-mail dans les 24h.
Le rapport sera au format PDF uniquement et le projet sera compressé en un fichier au format zip (et uniquement zip !) contenant tous les éléments nécessaires (fichiers php, css, images, etc.)
Vous devez nommer les deux fichiers avec les noms des participants au groupe : Nom1-Nom2-Nom3.pdf et Nom1-Nom2-Nom3.zip. Le tout ne devrait pas excéder 5 Mo en poids de fichier.

Quelle est la taille maximale des groupes ?

Les groupes seront constitués au maximum de 4 personnes.

Est-ce que je peux être dans un groupe de 3 ?

Vous pouvez mais je ne serai pas plus clément sur la note si vous êtes en retard ou que le projet et/ou le rapport sont rendus incomplets.

Nous bloquons sur un bug dans notre code, pouvons-nous vous contacter ?

Oui... mais cela doit être fait de manière réfléchie : vous devez autant apprendre à créer un programme qu'à résoudre les bugs d'un programme. Néanmoins, si vous ne trouvez pas par vous-même, le chef de projet peut me contacter en mettant en copie toutes les autres personnes du groupe et en ajoutant un message expliquant le problème rencontré.

Est-ce que je peux demander de l'aide ?

Oui... mais cette aide ne doit pas rédiger de code pour vous sous peine de voir votre projet être refusé. L'intervention d'une IA, pour tout ou partie de votre projet, est strictement interdite.