Jeu d échecs CSC4102. Denis Conan et Christian Bac. Revision : 430

Documents pareils
Règles du Jeu d Echecs de la FIDE

Igor Štohl - Les meilleures parties de Garry Kasparov / Volume 1 PARTIE 13

Matériel. . 9 cartes Personnage

- Livret de Règles -

Validation de votre inscription et questionnaire

2.4 Représentation graphique, tableau de Karnaugh

Votre Réseau est-il prêt?

Jean Dubuffet AUTOPORTRAIT II

2013 Pearson France Photoshop Elements 12 pour les photographes du numérique Loïc Olive

Priorités de calcul :

Utilisation de la plateforme VIA ecollaboration

Créer son ASBL. VERSION 1 01 février 2013

Emprunts indivis (amortissement)

SVP ISO - Sécurité & Protection

AYEZ LE RÉFLEXE!

Faites connaissance avec votre Rubik s Cube Étape 1

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

GYMNASTIQUE ACROBATIQUE

NOUVEAU. Cadets de la Rapière. Circuit national Jeunesse. Tournoi par équipes. 40 ans à

Fiche pédagogique : ma famille et moi

Ys - Règle Française. Le Plateau. Ys et plus...

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

I. Cas de l équiprobabilité

PRÉSENTATION VITRINEMEDIA

2013/2014. Championnats 11 ans ; 13 ans 15 ans 17 ans. Tableau des âges. Thèmes de jeux jeunes

POSTE INFORMATIQUE. Mr DUJARDIN a acheté du matériel informatique sur une boutique en ligne afin de se monter un PC. N'y

FÉDÉRATION INTERNATIONALE DE PÉTANQUE ET JEU PROVENÇAL REGLEMENT DU CHAMPIONNAT DU MONDE DE TIR INDIVIDUEL

Projet Matlab : un logiciel de cryptage

Le bridge c'est quoi? Laval Du Breuil École de bridge Picatou, Québec

CHAMPIONNAT INTERCLUBS de Nationale VI

«Laissez-moi jouer en sécurité»

.4..ESCALIER. Critères d'accessibilité répondant aux besoins des personnes ayant une déficience visuelle. 4.1 Concept de base

Solution Vidéo Surveillance

Unity Real Time 2.0 Service Pack 2 update

En fonction de votre demande, nous définirons ensemble le produit le mieux adapté à vos cibles et à vos besoins.

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Université de Bangui. Modélisons en UML

ASCENSEUR ET APPAREILS ÉLÉVATEURS

BACCALAUREAT GENERAL MATHÉMATIQUES

La pratique du football chez les U13. et les U14F-U17F

Chapitre 7 : CHARGES, COURANT, TENSION S 3 F

Règles du Jeu et Code du Fair-Play

CLUB POKER 05. Règlement intérieur

Ecran : Processeur : OS : Caméra : Communication : Mémoire : Connectique : Audio : Batterie : Autonomie : Dimensions : Poids : DAS :

REGLEMENT LOTERIE PIRELLI «IPAD AIR 2 et APPLE WATCH» pneumatiques de marque Pirelli des gammes Diablo Rosso Corsa, Diablo Rosso II et Angel GT.

Conception des bases de données : Modèle Entité-Association

Le cycle de vie d'un projet en intelligence d'affaires

Si vous choisissez de les utiliser avec les règles du marché financier, vous en profiterez autant quel que soit le nombre de joueurs.

Intelligence Inventive & Mapping des réseaux de Recherche. Expernova & Active Innovation Management GFII 5 Mars 2015

La Stratégie de l'entame à Sans Atout

Concours de création

Championnat de France de Grilles Logiques Finale 7 juin Livret d'instructions

Le Livre de l Overlord

Opérations de base sur ImageJ

Muret Laurentien MC. Classique et Versatile

Service d impression 2013

! "# $ " % &# "' ()( ' *& +

Premiers Pas en Programmation Objet : les Classes et les Objets

Badminton Niveau 3. Public concerné : CAP 1 ère année et terminale Bac pro 3 ans 1 ère année

DEVENEZ UN POKER-KILLER AU TEXAS HOLD EM!

LES DÉTERMINANTS DE MATRICES

Audit 360 CONFORT, ENERGIE, SÉCURITÉ, VALORISATION. Une solution pour y voir plus clair dans votre copropriété

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

45. CONTRIBUTION MUTUALISEE DES CLUBS AU DEVELOPPEMENT REGIONAL (C.M.C.D.)

Sujets. Éléments de la Loi Position de hors-jeu Jeu actif. Infractions Recommandations

La persistance des nombres

Maximisons les performances de votre stratégie digitale

Former des sportifs citoyens

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

3 Charges électriques

Yphise optimise en Coût Valeur Risque l informatique d entreprise

Nouveautés dans Excel 2013

Programme Opérationnel Européen Fonds social européen FICHE ACTION

Jeu de tirs et passes L artilleur

Le Pavé Mosaïque. Temple?» C est la question que je me posais la première fois que je vis le Pavé Mosaïque à

ÉLÉMENTS DE GESTION DE PROJET

Satisfaction des stagiaires de BRUXELLES FORMATION Résultats 2013

Art. 18 Championnat de Belgique par équipes Messieurs, Dames et Vétérans

Mention : En débat

Casisa Anthony DOSSIER PERSONNEL

TUTORIAL Microsoft Project 2010 Fonctionalités de base

L exclusion mutuelle distribuée

Projet Active Object

Surf 3. Design Patrick DUBOIS

Les Tutoriaux Utilisez Foxmail comme client de messagerie

Mystères au PLUS! Jeu pédagogique pour les Sciences de la Vie et de la. Frédéric BLASSELLE, PLUS de Cappelle-la-Grande

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

UML et les Bases de Données

A7 Picking : 1 fonds, 7 expertises... L'interview gérant de P. Maupas

Formats d images. 1 Introduction

Mode d Emploi. Résult Arc Logiciel de Gestion de Compétitions. Droits d utilisation Informations Générales. 1/. Présentation de Résult Arc

COMMUNE DE LOMBERS FAUCARDAGE DES VOIES COMMUNALES ET CHEMINS RURAUX CAHIER DES CHARGES SIMPLIFIE MERCREDI 23 AVRIL 2014 A 15 HEURES

PASSAGE A NIVEAU HO/N

QUI SOMMES-NOUS? Cette solution s adresse aussi bien aux PME/PMI qu aux grands groupes, disposant ou non d une structure de veille dédiée.

Introduction à MATLAB R

Transcription:

Denis Conan et Christian Bac Revision : 430 CSC4102 Télécom SudParis 7 décembre 2009

Avertissement : cet exemple de spécification et de conception correspond à un sujet donné en bureau d étude noté du module CSC4002 il y a quelques années. Par conséquent, le programme ayant changé depuis, il y manque des éléments, comme la formalisation des préconditions et des postconditions des cas d utilisation, ou encore la préparation des tests de validation. Par ailleurs, la modélisation est très incomplète. 1 Cahier des charges «Le jeu d échecs se joue entre deux adversaires qui déplacent alternativement des pièces sur un plateau carré appelé échiquier. Le joueur ayant les pièces blanches commence la partie. L objectif de chaque joueur est de placer le roi adverse sous une attaque de telle manière que l adversaire n ait aucun coup légal. On dit que le joueur qui atteint ce but a maté le roi adverse et gagné la partie. Si la position est telle qu aucun des deux joueurs n a la possibilité de mater le roi adverse, la partie est nulle. «L échiquier se compose d une grille 8x8 de 64 cases identiques alternativement claires (les cases blanches ) et foncées (les cases noires ). Au début d une partie, un joueur dispose de 16 pièces claires (les pièces blanches ) et l autre de 16 pièces foncées (les pièces noires ). Ces pièces sont les suivantes : un roi blanc, une dame blanche, deux tours blanches, deux fous blancs, deux cavaliers blancs, huit pions blancs, un roi noir, une dame noire, deux tours noires, deux fous noirs, deux cavaliers noirs, huit pions noirs. «Il y a deux façons différentes de déplacer le roi, soit par un mouvement sur l une des cases adjacentes qui n est pas attaquée par une ou plusieurs pièces adverses soit par le roque. Le roque est un mouvement du roi et de l une ou l autre des tours de la même couleur, sur la première rangée du joueur. Le droit de roquer est perdu (a) si le roi a déjà bougé, ou (b) avec une tour qui a déjà bougé. Le roi est dit en échec, s il est attaqué par une ou plusieurs pièces adverses. «Les huit lignes de cases verticales sont appelées colonnes. Les huit lignes de cases horizontales sont appelées rangées. La position initiale des pièces sur l échiquier est présentée dans la figure qui suit.»[extraits de «Fédération Française des Échecs, Direction nationale de l arbitrage, Règles du jeu et nouveauté FIDE en vigueur au 1er Juillet 2009, Bulletin des Arbitres Fédéraux, numéro 122, Juin 2009.»] Le système que nous modélisons dans ce sujet est un système d enregistrement et d affichage d une partie de Jeu d Échecs. Par conséquent, nous ne nous intéressons pas aux règles de déplacement des pièces, ni au calcul des meilleurs coups à jouer. Les utilisateurs du système sont les joueurs (1) qui enregistrent leurs coups pendant leurs parties et (2) qui déroulent les coups d une partie pour l étudier (du premier coup au dernier coup, en avançant et en revenant en arrière). Un coup est constitué de un ou deux déplacements de pièces. En effet, un joueur déplace une ou deux pièces 1 d une case de départ vers une case d arrivée. Si la pièce déplacée arrive sur une pièce adverse, c est-à-dire de l autre couleur, alors la pièce adverse est capturée et retirée de l échiquier pour le reste de la partie. Pour afficher la partie, les différents types de pièces possèdent chacun un de représentation sur l échiquier. À tout moment de la partie, il est possible de déterminer le joueur le mieux engagé dans la partie (que nous appelons le «joueur gagnant courant») en attribuant une (un nombre de points) à chaque type 1. Deux pièces dans le cas particulier du roque. Télécom SudParis Denis Conan et Christian Bac 7 décembre 2009 CSC4102 2

de pièce autres que le roi : par exemple, une dame vaut 9 points, une tour vaut 5 points, un fou vaut 4 points, un cavalier vaut 3 points et un pion vaut 1 point. À la fin de la partie, les utilisateurs désirent aussi connaître le gagnant. Simplification 1 : nous considérons qu une seule partie est jouée, donc le modèle ne modélise que deux joueurs possédant chacun 16 pièces et un échiquier de 64 cases. Simplification 2 : nous pouvons dans un premier temps ignorer le roque : un coup est alors constitué d un seul déplacement de pièce. Conseil : la formulation du cahier des charges ci-dessus suggère que, pour positionner les pièces sur l échiquier après un coup donné, il est nécessaire de jouer tous les coups depuis le début de la partie. 2 Spécification et conception 2.1 Liste des classes et des attributs Les classes et attributs obtenus après analyse du texte sont les suivants : JeuÉchecs : classe «interface» du système, patron de conception Façade ; Joueur : nom, prénom, gagnant ; chaque joueur possède 16 pièces ; la couleur est promue en classe ; Pièce : capturée ou non ; la couleur est promue en classe ; Tour : en point,, a déjà été déplacée ou non (pour roquer) ; Pion : en point, ; Fou : en point, ; Cavalier : en point, ; Dame : en point, ; Roi :, a déjà été déplacée ou non (pour roquer), en échec ou non, maté ou non ; Échiquier : ; Case : indice de la rangée, indice de la colonne ; Partie : partie jouée à deux joueurs ; Coup : numéro de séquence ; un coup comprend un ou deux déplacements de pièces ; une pièce peut être capturée ; DéplacementPièce : ; un déplacement de pièce concerne une pièce et deux cases (départ et arrivée), il y en a deux maximum dans un coup. 2.2 Diagramme de cas d utilisation La figure suivante présente l acteur et les cas d utilisation du système. Télécom SudParis Denis Conan et Christian Bac 7 décembre 2009 CSC4102 3

Enregistrer un joueur Commencer une partie Enregistrer un coup Commencer l affichage d une partie Afficher un coup Avancer d un coup Joueur Reculer d un coup Afficher le gagnant courant (à un coup donné) Afficher le résultat de la partie Terminer l affichage d une partie 2.3 Diagramme de classes La figure suivante présente le diagramme de classes. JeuÉchecs coupcourant nom prénom /gagnant Joueur joueur pièces noires joueur pièces blanches Partie Coup numérodeséquence 0..1 pièce capturée 0..1 16 DéplacementPièce capturée 1..2 Piece case début 0..1 partie case arrivée Échiquier case départ rangée colonne 64 Case Tour Roi Dame Cavalier aétédéplacée aétédéplacée maté enéchec Fou Pion Télécom SudParis Denis Conan et Christian Bac 7 décembre 2009 CSC4102 4

2.4 Diagramme de machine à états de la classes Pièce La figure suivante présente le diagramme de machine à états de la classe Pièce. EnConstruction NonCapturée entrée : constructeur() destruction de la partie capture par un un joueur adverse EnDestruction entrée : detruire() destruction de la partie Capturée 2.5 Conception détaillée de la classe Pièce : liste des attributs couleur : @Couleur capturédanscoup : @Coup jouédanscoups : Collection de @DéplacementPièce capturée : booléen 2.6 Diagramme de communications ou de séquence Voici le diagramme de séquence qui correspond au cas d utilisation : «enregistrer un coup». Le prototype de l opération correspondant est le suivant : enregistrercoup(@pièce p, @Case départ, @Case arrivée, @Pièce capturée), avec capturée qui peut être null. Si nous ne choisissons pas d utiliser la simplification 2, c est-à-dire nous ignorons le roque, le prototype de l opération enregistrercoup() comprend une seconde référence sur une Pièce ainsi que deux références supplémentaires pour les Cases de départ et d arrivée de la seconde pièce déplacée dans le coup, ces trois références étant null dans les coups standards sans roque. Pour simplifier la question, nous ignorons le fait d indiquer si le roi est en échec ou maté suite au déplacement des pièces. La description informelle du cas d utilisation est la suivante : appel de l opération enregistrercoup() sur l objet de la classe JeuÉchecs, création de l objet Coup, si @Pièce capturée non null, création de l instance d association vers la pièce capturée création du premier déplacement création de l instance d association vers la pièce déplacée création des deux instances d association vers les cases de départ et d arrivée si roque, création du second déplacement création de l instance d association vers la pièce déplacée création des deux instances d association vers les cases de départ et d arrivée Télécom SudParis Denis Conan et Christian Bac 7 décembre 2009 CSC4102 5

:JeuÉchecs <<new>> :Partie cc:coup cap:pièce <<new>> :DéplacementPièce enregistrercoup(p,cd,da,cap,p2,cd2,ca2) nouveaucoup(p,cd,ca,cap,p2,cd2,ca2) <<create(p,cd,ca,cap,p2,cd2,ca2)>> opt [cap!=null] capturer() <<create(p,cd,ca)>> déplacer() déplacerdépart() déplacerarrivée() opt [p2!=null && cd2!=null && ca2!=null && cap!=roi] <<create(p2,cd2,ca2)>> <<new>> :DéplacementPièce déplacer() déplacerdépart() déplacerarrivée() p:pièce p2:pièce cd:case ca:case cd2:case ca2:case Télécom SudParis Denis Conan et Christian Bac 7 décembre 2009 CSC4102 6