You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Louis GUICHARD-MONTGUERS 1b753af4e2
continuous-integration/drone/push Build is passing Details
Mise à jour de 'README.md'
12 months ago
Dames update 1 year ago
Documentation update 1 year ago
Gestion_Projet gestion de projet suivi 1 1 year ago
.drone.yml Mise à jour de '.drone.yml' 1 year ago
.gitignore gitignore 1 year ago
README.md Mise à jour de '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 dune seule case à la fois, en avant et en diagonale. Les prises des pions adverses seffectuent 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 lon a le choix de prendre dun côté une dame et de lautre un pion, on nest 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 lordre 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, sil nest 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 jadoube avant de les toucher.- Lorsquun coup joué est en contradiction avec les règles, si ladversaire se trompe de case ou de ligne ou sil enlève ses propres pièces au cours dune prise, vous êtes en droit de maintenir lerreur 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

Lorsquun pion atteint la dernière ligne du camp adverse, il devient une dame. On le recouvre alors dun second pion de sa couleur. Si un pion franchit une case du fond au cours dune prise sans sarrê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 à nimporte quelle hauteur sur la ligne du dernier pion capturé.

Elle peut aussi bifurquer sur dautres diagonales quand il y a dautres 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

Lapplication 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 lapplication. Débutant ou confirmé tous trouveront leur place. Lapplication vous proposera une navigation simple et accessible à tous. Lancer une partie , choisissez vos pseudos et vous navez 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

image image image image image

Personnas

image image image

Use case

image

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

image

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, cest grâce à elle que lon peut déplacer les pions en indiquant les coordonnées de celui-ci et celle de lendroit ciblé. Également, elle gère les règles car cest 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 dun 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 dinstancier 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 linterface ISerializer et lancer la partie.

De plus , afin dajouter de la persistance à notre projet il y a les classes JsonSerializer et XMLSerializer qui implémentent linterface ISerializer. Cette interface comprend une méthode pour écrire dans un fichier et une autre méthode pour lire le fichier.

Diagramme d'architecture

image

Description

Nous avons une solution “Dames” qui comporte 4 projets:

Le projet “Models” contient toutes les classes nécessaires au fonctionnement de l'application, cest le noyau de lapplication.

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 cest ce qui permet de faire fonctionner lapplication 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

image

Description

Notre application est divisée en 4 grands paquets principaux:

Le paquet “Models” qui contient lui-même dautres 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 linterface 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.

Diagramme de Sequence

image