continuous-integration/drone/push Build is passing
Details
|
12 months ago | |
---|---|---|
Dames | 1 year ago | |
Documentation | 1 year ago | |
Gestion_Projet | 1 year ago | |
.drone.yml | 1 year ago | |
.gitignore | 1 year ago | |
README.md | 12 months ago |
README.md
SAE_2.01
Jeu de dames
Louis Guichard Montguers Jules Benier
Lien Video Promo
https://opencast.dsi.uca.fr/paella/ui/watch.html?id=c6cb2e7f-ab2a-451a-9971-ec5819860bc3
Jouer dans le terminal:
Il faudra rentrer 2 noms de joueur avant le lancement de la partie. Une fois le plateau Afficher pour déplacer un pion il faudra entrer les coordonées de la case du pion que l'on veut déplacer en commençant par la colonne puis la ligne. (la case en haut a gauche a pour coordonées 0:0) Puis il faudra entrer les coordonées de la case sur laquelle on veut se déplacer. Pour manger un pion il faudra donc entrer les coordonnées de la case d'arrivé et non du pion que l'on veut manger.
Règles:
Le principe du jeu consiste à ‘prendre’ tous les pions adverses.
Déroulement de la partie:
La partie se déroule sur un tablier de 100 cases (50 blanches et 50 noires). Chaque joueur possède 20 pions qui sont installés sur les quatre premiers rangs du damier au début de la partie (sur les cases noires seulement).
Déplacement des pions
Les pions se déplacent d’une seule case à la fois, en avant et en diagonale. Les prises des pions adverses s’effectuent en sautant par-dessus, en avant ou en arrière.
Important : La prise est obligatoire. Si plusieurs possibilités de prises se présentent, celle qui offre le plus grand nombre de pions est imposée. Si les prises sont égales, le joueur prend où il veut.
Si l’on a le choix de prendre d’un côté une dame et de l’autre un pion, on n’est pas obligé de tenir compte de la qualité des pièces : on prend selon son intérêt, la dame ou le pion.
Les pions capturés doivent être retirés du tablier une fois le coup joué dans l’ordre normal ou bien inverse de la prise.
Discipline du jeu
– Une pièce touchée est réputée jouée. Un pion poussé sur une case peut toutefois, s’il n’est pas lâché, être joué sur une autre case. Il en est de même pour la dame. – Quand on veut mettre ses pièces en ordre, on doit dire ‘j’adoube’ avant de les toucher.- Lorsqu’un coup joué est en contradiction avec les règles, si l’adversaire se trompe de case ou de ligne ou s’il enlève ses propres pièces au cours d’une prise, vous êtes en droit de maintenir l’erreur ou de faire jouer votre adversaire correctement. Mais si vous avez joué à votre tour, vous ne pouvez plus demander réparation. (Le coup fautif est ‘couvert’ par votre propre coup).
Promotion du pion en Dame
Lorsqu’un pion atteint la dernière ligne du camp adverse, il devient une dame. On le recouvre alors d’un second pion de sa couleur. Si un pion franchit une case du fond au cours d’une prise sans s’arrêter, il demeure un pion. Il peut devenir dame ‘en passant’.
La dame peut se déplacer en avant ou en arrière et se poser à n’importe quelle hauteur sur la ligne du dernier pion capturé.
Elle peut aussi bifurquer sur d’autres diagonales quand il y a d’autres pions à prendre.
Fin de la partie
Est déclaré vainqueur celui qui a pris le plus grand nombre de pions à son adversaire ou a empêché tout mouvement aux pions adverses. La partie peut être déclarée nulle si les joueurs en viennent à opposer des forces qui rendent les prises quasi impossibles (par exemple, trois dames contre une dame et deux pions, etc.).
Contexte
L’application que nous allons réaliser est un jeu de dames desktop à 2 joueurs. Vous pourrez jouer partout sans connexion et sur un seul écran. Pas besoin de connaître les règles! Une page de règles sera disponible sur l’application. Débutant ou confirmé tous trouveront leur place. L’application vous proposera une navigation simple et accessible à tous. Lancer une partie , choisissez vos pseudos et vous n’avez plus qu’à jouer! Le choix de la couleur est aléatoire alors ne vous prenez pas la tête. Si vous êtes perdu, pas de panique, un bouton retour sera disponible à tout moment pour revenir au menu principal.
Sketchs
Personnas
Use case
User Story
En tant que personne qui n'est pas très à l'aise avec l'informatique, je souhaite avoir une application simple et facile d'accès afin de pouvoir l'utiliser sans aide.
En tant que grand-père , j'aimerai une application qui me permet de jouer avec mes petis enfant afin de passer de bons moments.
En tant que personne découvrant le jeu, je souhaite une application qui peut m'expliquer les règles du jeu afin de pouvoir jouer convenablement et découvrir les subtilités du jeu.
Diagramme de classe
Description
Dans notre application, la class pion permet de créer et de gérer les pions nécessaires à son fonctionnement. Grâce à elle, on peut obtenir des informations sur ceux-ci comme leur position ou leur couleur.
La class Case correspond quant à elle, aux cases du damier de notre jeu. Elle permet de situer les pions sur le plateau via des coordonnées et indique si un pion se trouve sur elle.
Pour ce qui est de la class plateau, elle permet de créer le plateau en utilisant les classes case et pion. De plus, elle permet de gérer les pions, c’est grâce à elle que l’on peut déplacer les pions en indiquant les coordonnées de celui-ci et celle de l’endroit ciblé. Également, elle gère les règles car c’est elle, via la méthode déplacer, mangerAffiler, coupPossible et Possibilité manger qui va dire si le déplacement est possible et si cela entraîne la prise d’un pion adverse.
Concernant la class joueur, elle permet de gérer les joueurs qui sont dans la partie. On a accès à leur nombre de pions ainsi qu’à la couleur de ceux-ci et leur nom.
La class partie nous permet de lancer le jeu. Elle lance la création du plateau, crée les joueurs et détermine si un joueur a gagné.
La class Display contient les méthodes que nous allons abonner aux événements.
La class Dame permet d’instancier une dame et de la différencier des autres pions.
La class Program contient les abonnements entre événements et les méthodes de la class Display ainsi que la boucle de jeu.
La class Game permet de faire la persistance sur la class partie via l’interface ISerializer et lancer la partie.
De plus , afin d’ajouter de la persistance à notre projet il y a les classes JsonSerializer et XMLSerializer qui implémentent l’interface ISerializer. Cette interface comprend une méthode pour écrire dans un fichier et une autre méthode pour lire le fichier.
Diagramme d'architecture
Description
Nous avons une solution “Dames” qui comporte 4 projets:
Le projet “Models” contient toutes les classes nécessaires au fonctionnement de l'application, c’est le noyau de l’application.
Le projet “Views” représente la partie visuelle du projet avec notamment toutes les vues en XAML.
Le projet “TestUnit” représente l'ensemble des tests sur le code.
Le projet “Console” contient le main dans lequel nous faisons les appels des méthodes des classes c’est ce qui permet de faire fonctionner l’application en attendant de faire le binding. Les projets “Console” , “TestUnit” et “Views” utilisent tous les classes du projet “Models”. La solution “Dames” utilise les données contenues dans la base de données.
Diagramme de Paquetage
Description
Notre application est divisée en 4 grands paquets principaux:
Le paquet “Models” qui contient lui-même d’autres paquets notamment “Events” qui contient les classes d ‘événements et “Jeux” qui lui contient à son tour un paquet “Plateau” et les classes “Partie” et “Joueur”. Le paquet “Plateau” contient les classes “Pions” , “Dames”, “Couleur”, “Plateau” et “Case”. Et pour finir le paquet Persistance qui contient l’interface ISerializer et les classes Json et XML.
Le paquet “TestUnit” qui rassemble tous les tests et se sert des classes du paquet “Models”.
Le paquet “Console” qui contient les appels des méthodes dans le main , utilise lui aussi les classes du paquet “Models”
Le paquet “Views” contient plusieurs paquets comme “Vues” qui contient la partie visuelle avec les vues en XAML, ces vues utilise les classes du paquet “Models” ou encore le paquet “Ressources” qui contient notamment les images pour les vues.