Mastermind
Description de l'application
Contexte
L’application que nous allons réaliser est un jeu de société appelé Mastermind. L’objectif de cette application est de se divertir. Le public visé est varié, allant de jeunes enfants à des adultes. Cette application a été développée pour Windows et elle est destinée à être jouée par deux personnes.
Notre jeu possédera plusieurs pages. Notamment une page d'accueil, une autre pour expliquer les règles du jeu, une page destinée à afficher le classement de tous les joueurs de Mastermind, une autre pour la connexion, ainsi que la page d'affichage des résultats, et enfin la page dédiée au plateau du jeu.
Le menu ou page d'accueil regroupera l'ensemble des interactions possibles avec les autres pages. Il sera possible à tout moment de quitter la progression, ce qui renverra directement à la page d'accueil. C'est un repère, liant les interfaces entre elles.
Pour la page rappelant les règles du jeu, elle sera accessible à n'importe quel moment pour les deux joueurs. Elle permettra aux joueurs d'obtenir si nécessaire un rappel condensé du Mastermind.
Le classement, quant à lui, ne sera accessible que depuis la page d'accueil. Il regroupera l'ensemble des joueurs ayant déjà joué à Mastermind. Les joueurs seront classés par défaut du meilleur au moins bon, mais il sera également possible de choisir comment trier le classement. Chaque joueur pourra se trouver dans le classement et observer les différentes statistiques qu'il a réalisées.
Avant de commencer à jouer, les joueurs devront passer par la page connexion. Ils saisiront entrer leurs identifiants et ainsi leurs anciennes progressions seront récupérées ce qui leur permettra de mettre à jour leurs résultats à chaque fin de partie.
La page résultat sera impactée par la finalité d'une partie. Chaque joueur obtiendra un message avec son résultat et les statistiques qu'il a réalisées. Cette page disparaîtra une fois que les joueurs auront pris connaissance de leurs résultats et ils seront renvoyés sur la page d’accueil.
Et enfin, la page destinée au plateau de jeu est initialement identique pour chaque joueur. Chaque joueur doit jouer à son tour. Pour la personne qui est en train de jouer, il lui sera possible de voir ses anciennes tentatives, ainsi que des indicateurs lui permettant de trouver la combinaison secrète. Le joueur devra valider la combinaison qu’il aura réalisée et s'il s’est trompé, il aura la possibilité de supprimer sa combinaison et de retenter sa chance.
Règles du jeu
Pour jouer au Mastermind, il faut être deux joueurs. Le but du Mastermind est de gagner un maximum de parties et pour ce faire, il faut trouver un maximum de combinaisons secrètes avant son adversaire. Chaque joueur joue tour à tour, le joueur numéro un est toujours le premier à commencer la partie. Une partie est constituée de douze manches maximum.
Au début d’une partie, deux combinaisons de quatre couleurs sont générées aléatoirement, une combinaison différente pour chaque joueur. Six couleurs sont présentes dans le jeu : jaune, bleu, rouge, vert, blanc et noir. Quand c’est le tour du joueur, celui-ci doit sélectionner les quatre couleurs qu’il souhaite tester.
Si la combinaison est correcte et qu’il s’agit du joueur numéro un, le joueur numéro deux à la possibilité de tenter une dernière fois sa chance. Chaque joueur a le même nombre de coups à réaliser, c’est pour cela que le joueur numéro deux dispose d’une seconde chance. Si le joueur numéro deux trouve la combinaison secrète à sa dernière chance, il y a égalité entre les deux joueurs, aucun des deux ne gagnent de points.
En revanche, si le joueur numéro deux trouve la combinaison en premier, le joueur numéro un ne pourra pas tenter de trouver la combinaison. Le joueur numéro deux a gagné et la partie est finie.
Si la combinaison est incorrecte, quatre indicateurs apparaissent pour aider le joueur en difficulté. Ces indicateurs représentent chacune des quatre couleurs sélectionnées par le joueur. Un rond noir signifie qu’une couleur est à la bonne place, un rond blanc correspond à une mauvaise place et s'il n’y a pas d’indicateur aucune des couleurs n’est présentent dans la combinaison. Il est judicieux au joueur de comparer les anciennes lignes réalisées, les lignes n’ayant pas d’indicateur peuvent également être utiles pour éliminer définitivement des couleurs.
Personas
User stories
Charlotte
Après une longue journée de travail à son cabinet de psychologie, Charlotte décide de passer une soirée sympathique avec son enfant.
Elle se rappelle de ce post Facebook sur lequel elle était tombée il y a quelques jours et qui parlait de cette nouvelle application de Mastermind en duo.
En y pensant, ce jeu est parfait pour elle et son petit. Ce jeu de réflexion lui permettrait d'améliorer ses capacités cérébrales ainsi que celles de son enfant.
Elle télécharge l'application, et la lance. L'interface est simple et épurée et Charlotte n'est pas perdue. Les couleurs vives attirent directement l'attention de son enfant qui a hâte de commencer à jouer.
Les deux partenaires de jeu saisissent leurs noms, et commencent à jouer.
Charlotte joue son premier coup, rouge bleu vert jaune, parmis lequel il y a une couleur juste et une mal placée.
L'enfant voulant imiter sa mère saisit les mêmes couleurs mais n'obtient aucune couleur juste, et deux couleurs mal placées.
Les deux adversaires comprennent qu'ils ne partagent pas le même code et un esprit de compétition s'installe.
Finalement, Charlotte trouve le code qui était vert bleu blanc noir en 5 coups. Quant à son petit, il échoue au 5ie coup, ne trouvant pas son code.
Un écran affichant bravo Charlotte apparaît. Sur cet écran, les deux codes secrets apparaissent et un message encourage le joueur perdant afin qu'il fasse mieux la prochaine fois.
Très satisfaite de ce nouveau moyen de divertissement, Charlotte profite de la soirée en compagnie de son enfant.
Une soirée qu'ils réorganiseront avec joie.
Maxime
Malgré sa résolution de passer mois de temps sur Internet, Maxime est encore sur Discord. Il défile les messages de ses différents serveurs jusqu'à tomber sur une publicité postée il y a quelques jours.
Un message invitait les fans de jeux vidéo à essayer le nouveau jeu de société numérique hors ligne en duo à la mode Le Mastermind.
Il télécharge l'application et invite son colocataire à le rejoindre. Cela faisait quelques semaines qu'ils ne trouvaient plus le temps de se voir mais c'est acté, ce soir, ils vont jouer ensemble.
Ils lancent le jeu et le colocataire aperçoit directement le bouton menant au classement. Leur nouvel objectif devient simple, apparaître à la tête du classement.
Les deux amis passent la soirée à jouer, gagner des places au classement, et finissent enfin par atteindre le sommet.
Maxime est très satisfait de cette soirée, il a pu décompresser de sa semaine de cours, passer moins de temps sur internet, se rapprocher de son colocataire et enfin exceller et atteindre le sommet du classement, le rendant très heureux.
Sabrine
Sabrine, après sa journée de travail, arrive à son club de jeux de société. Le club est vide, et cela est sûrement dû au manque d'activités de ce dernier. Sabrine a soudain une idée, relancer le club. Elle discute avec le directeur et ils ont l'idée d'organiser un tournoi de Mastermind.
Sabrine télécharge l'application et fait une partie d'essai avec son ami.
Après la partie, elle décide de partager une capture du jeu avec une légende disant : "Rendez-vous demain soir à 20 heures pour le tournoi de Mastermind".
Le lendemain, le club est rempli, plein de nouvelles personnes sont venues pour participer au tournoi.
Sabrine, satisfaite, leur fait installer le logiciel et chacun des joueurs peut accéder facilement aux règles depuis l'application lui simplifiant l'organisation.
A la fin de la soirée, elle vient relever le classement, et récompense le meilleur joueur.
Depuis, plusieurs soirées ont été organisées au club, et Sabrine se félicite de ce succès.
Sketchs
Storyboard
Diagramme de cas d'utilisations
Use cases
USE CASE 1 | “Choisir les différents joueurs” |
---|---|
Pré-conditions | L’application se lance |
Description | Les utilisateurs choisissent s'ils veulent être le joueur 1 ou le joueur 2 |
Conditions de Fin Réussie | L’utilisateur arrive à choisir quel joueur il veut être 1 ou 2 |
Conditions de Fin Échouée | L’utilisateur n’arrive pas à choisir quel joueur il veut être (1 ou 2) car le joueur voulu est déjà pris |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | Le premier utilisateur clique sur joueur 1 ou 2 | |
2 |
Le deuxième utilisateur clique sur le joueur restant | |
Variantes | PAS | Action variante |
2a.1 | Le joueur choisi est déjà pris | |
2a.2 | Le système affiche un message d’erreur |
USE CASE 2 | “Entrer son pseudo” |
---|---|
Pré-conditions | L’utilisateur a choisi quel joueur il veut être |
Description | L’utilisateur entre un pseudo pour qu’il soit reconnu et enregistré dans le jeu |
Conditions de Fin Réussie | L’utilisateur à entrer un pseudo valide |
Conditions de Fin Échouée | L’utilisateur n’a pas entré de pseudo valide (Il ne faut pas de caractères spéciaux !, @, #, $, %. Il ne faut pas d'espace. Il faut qu’il soit en dessous de 20 caractères) |
Le pseudo est déjà pris | |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | L’utilisateur entre son pseudo | |
Variantes | PAS | Action variante |
1a.1 | Le pseudo n'est pas valide | |
1a.2 | Le système affiche un message d'erreur | |
1b.1 | Le pseudo est déja utiliser |
USE CASE 3 | “Choisir un pseudo déjà existant” |
---|---|
Pré-conditions | L’utilisateur a déjà un pseudonyme enregistré |
Description | L’utilisateur choisit son ancien pseudo |
Conditions de Fin Réussie | L’utilisateur a sélectionné son pseudo |
Conditions de Fin Échouée | L’utilisateur n’a pas sélectionné son pseudo |
Niveau | Tâche Secondaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | L’utilisateur sélectionne un pseudo déjà existant | |
Variantes | PAS | Action variante |
1a.1 | Le pseudo n'existe pas | |
1a.2 | Le système affiche un message d’erreur |
USE CASE 4 | “Commencer la partie” |
---|---|
Pré-conditions | Les utilisateurs se sont répartie leurs rôles |
Les utilisateurs ont entré leur pseudo | |
L’application à généré deux codes couleurs différentes | |
Description | Lancement de la partie et début du round du joueur 1 |
Conditions de Fin Réussie | La partie se lance |
C’est au tour du premier joueur | |
Conditions de Fin Échouée | La partie ne se lance pas ( Les codes couleurs n’ont pas pu être généré ) |
Ce n’est pas au joueur 1 de commencer | |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | L’utilisateur lance la partie | |
2 | Le système génère deux codes couleurs distincts pour chaque joueur | |
3 | Le système affiche le round du joueur 1 | |
4 | La partie est lancée | |
Variantes | PAS | Action variante |
2a.1 | Le système rencontre une erreur lors de la génération des codes couleurs | |
2a.2 | Le système affiche un message d'erreur et propose à l’utilisateur de réessayer |
USE CASE 5 | “Fait une proposition” |
---|---|
Pré-conditions | C’est au round d’un joueur |
Description | Le joueur valide sa proposition de la couleur et de son emplacement |
Conditions de Fin Réussie | Le joueur a validé sa proposition |
Conditions de Fin Échouée | La proposition ne correspond pas au format attendu ( 4 couleurs dans 4 emplacements différent) |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | Le joueur valide sa proposition | |
2 | Le système vérifie la proposition par rapport au code couleur générée par le système | |
Variantes | PAS | Action variante |
3a.1 | La proposition ne correspond pas au format attendu | |
3a.2 | Le système affiche un message d'erreur et demande au joueur de réessayer |
USE CASE 6 | “Affiche les indicateurs” |
---|---|
Pré-conditions | Le joueur a fait une proposition valide |
Description | Le système affiche les indicateurs en fonction de la proposition du joueur. Les indicateurs indiquent s’il a des bonnes couleurs et si elles sont au bon emplacement |
Conditions de Fin Réussie | Les indicateurs sont affichés |
Conditions de Fin Échouée | Les indicateurs ne se sont pas affichés correctement |
Niveau | Tâche Primaire |
Acteur Principal | Système |
Acteur Secondaire |
USE CASE 7 | “Passer la main” |
---|---|
Pré-conditions | Le joueur a fait une proposition valide |
Description | La main passe au joueur suivant après que le joueur actuel ait fait une proposition. Sauf si la partie est finie |
Conditions de Fin Réussie | La main est passée au joueur suivant |
Conditions de Fin Échouée | La main ne passe pas au joueur suivant |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
USE CASE 8 | “Finir la partie” |
---|---|
Pré-conditions | Le joueur a fait une proposition |
Les deux joueurs ont fait au moins une proposition chacun | |
La partie a atteint une condition de fin (égalité, victoire, défaite) | |
Description | La partie se termine, car une des conditions de fin a été atteinte |
Conditions de Fin Réussie | La partie c’est terminer correctement |
Conditions de Fin Échouée | La partie ne sait pas terminer correctement |
Niveau | Tâche Primaire |
Acteur Principal | Système |
Acteur Secondaire |
USE CASE 12 | “Sauvegarder les données de la partie” |
---|---|
Pré-conditions | Une partie vient de se finir |
Description | Le système sauvegarde les données pour qu’il soit ensuite accessible dans le tableau des scores. |
Conditions de Fin Réussie | Les données de la partie sont bien sauvegardées |
Conditions de Fin Échouée | Les données de la partie n’ont pas pu être sauvegardées (corruption des données) |
Niveau | Tâche Primaire |
Acteur Principal | Système |
Acteur Secondaire |
USE CASE 9 | “Consulter le tableau des scores” |
---|---|
Pré-conditions | L’application est lancée |
Les données sont chargées | |
Description | L’utilisateur consulte le tableau des scores de tous les joueurs |
Conditions de Fin Réussie | Le tableau des scores est affiché |
Conditions de Fin Échouée | Le tableau des scores ne s’affiche pas (Les données n’ont pas pu être récupérées) |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
USE CASE 10 | “Trier” |
---|---|
Pré-conditions | Le tableau des scores est chargé |
Description | Le système trie le tableau en fonction du choix demandé par l’utilisateur (positions dans le classement, Ordre alphabétique des pseudos, Nombre de coûts moyens, Nombre de point total ) |
Conditions de Fin Réussie | Le tableau des scores est affiché et trié selon le critère choisi |
Conditions de Fin Échouée | Le tableau des scores n’est pas trié selon le critère choisi |
Niveau | Tâche Secondaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
USE CASE 11 | “Consulter les règles du jeu” |
---|---|
Pré-conditions | L’application est lancée |
Description | L’utilisateur consulte les règles du jeu |
Conditions de Fin Réussie | Les règles sont affichées |
Conditions de Fin Échouée | Les règles ne sont pas affichées |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Diagramme de cas d'utilisations - Les règles du jeu
Use cases - Les règles du jeu
USE CASE 1 | “Fait une proposition” |
---|---|
Pré-conditions | C’est au round de l’utilisateur |
Description | Le joueur valide sa proposition de la couleur et de son emplacement |
Conditions de Fin Réussie | Le joueur a validé sa proposition |
Conditions de Fin Échouée | La proposition ne correspond pas au format attendu ( 4 couleurs dans 4 emplacements différents) |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
USE CASE 2 | “Choisir sa couleur” |
---|---|
Pré-conditions | C’est au premier joueur de commencer |
Le joueur fait une proposition | |
Description | Le joueur sélectionne une couleurs parmi celle disponible |
Conditions de Fin Réussie | Le joueur a sélectionné une couleur |
Conditions de Fin Échouée | Le joueur ne sélectionne pas de couleur |
Niveau | Tâche Secondaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | Le joueur sélectionne la couleur parmi les 6 couleurs disponible | |
2 | Le joueur valide sa proposition de couleur | |
Variantes | PAS | Action variante |
1a.1 | Le joueur supprime sa couleur | |
1a.2 | Le joueur sélectionne une couleur |
USE CASE 3 | “Choisir l’emplacement” |
---|---|
Pré-conditions | Le joueur a sélectionné une couleur |
Le joueur fait une proposition | |
Description | Le joueur sélectionne un emplacement parmi les 4 emplacements disponible |
Conditions de Fin Réussie | Le joueur a sélectionné un emplacement |
Conditions de Fin Échouée | Le joueur n’a pas sélectionné un emplacement |
Niveau | Tâche Secondaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |
Scénario Principal | PAS | Actions/Description Pas |
---|---|---|
1 | Le joueur sélectionne un emplacement parmi les 4 | |
2 | Le joueur valide l’emplacement | |
Variantes | PAS | Action variante |
1a.1 | Le joueur supprime l’emplacement | |
1a.2 | Le joueur sélectionne un emplacement |
USE CASE 4 | “Finir la partie” |
---|---|
Pré-conditions | Le joueur a fait une proposition |
Les deux joueurs ont fait au moins une proposition chacun | |
La partie a atteint une condition de fin :
|
|
Description | La partie se termine, car une des conditions de fin a été atteinte par un des joueurs |
Conditions de Fin Réussie | La partie c’est terminer correctement |
Conditions de Fin Échouée | La partie ne sait pas terminer correctement |
Niveau | Tâche Primaire |
Acteur Principal | Système |
Acteur Secondaire |
USE CASE 5 | “Passer la main” |
---|---|
Pré-conditions | Le joueur a fait une proposition valide |
Description | La main passe au joueur suivant après que le joueur actuel ait fait une proposition. Sauf si la partie est finie |
Conditions de Fin Réussie | La main est passée au joueur suivant |
Conditions de Fin Échouée | La main ne passe pas au joueur suivant |
Niveau | Tâche Primaire |
Acteur Principal | Utilisateur |
Acteur Secondaire |