Sunteți pe pagina 1din 2

Master M2I/MQL

Anne Universitaire
20122013

Programmation Oriente Objet


Dure : 2h ; aucun document n'est autoris
Exercice 1. (12 pts)
Il s'agit de dvelopper une application Client/Serveur minimale avec des sockets UDP d'un jeu rseau
de type Gomoku cinq points. Deux joueurs, o les adversaires, jouent chacun leur tour en plaant
leur pictogramme (symbole 'X' ou 'O' ) respectif sur le plateau de jeu (voir figure 1). Le but de jeu est
qu'un joueur arrive aligner cinq de ses pictogrammes sur une ligne verticale, horizontale ou
diagonale.
Description du Jeu : Le premier joueur, dmarre la partie en plaant son pictogramme o il le veut sur
le plateau de jeu. Le deuxime joueur se patiente jusqu' ce que le premier joueur place son
pictogramme et ensuite il fait en de mme. Un jour peut placer son pictogramme dans n'importe quelle
case du champ, moins que cette case ne soit toujours occupe par un autre pictogramme (en analysant
si c'est son pictogramme ou celui de son adversaire). Un joueur devra placer votre pictogramme de telle
manire que son adversaire ne puisse pas aligner cinq de ses pictogrammes sur une ligne verticale,
horizontale ou diagonale. Dans le mme temps, Il doit connecter cinq de ses pictogrammes de cette
manire. Le premier qui arrive aligner les cinq remporte la partie.
Questions :
1. Proposer une architecture ce jeu.
2. crire une classe PlateauJeu. Cette classe
possde un constructeur avec un argument qui
caractrise la taillePlateau. Elle possde aussi
une mthode boolean placerpictogramme
(inti,intj,charsymb) qui permet de
placer un pictogramme symb la position (i,j)
si la position est libre.
3. crire un programme SeuveurJeu qui permet de :
a) connecter seulement deux joueurs un plateau de
jeu. (Pour se faire utiliser des Threads).
Figure 1: Interface de jeu
b) alterner les deux joueurs afin qu'ils jouent tour
de rle. Le premier joueur connect tant le premier jouer, son pictogramme est 'O'. Sur
quel objet les deux joueur devront tre synchroniss?
placer les pictogrammes des joueurs dans le tableau PJ. Envoyer OK si le placement est russi et
KO dans l'tat contraire.
A tout placement est russi une mthode booleanverfication()sera excute pour vrifie
le joueur est arriv aligner cinq pictogrammes sur une ligne (verticale, horizontale ou
diagonale). Si c'est le cas il remporte la partie, le serveur lui envoie Vainqueur et l'autre
joueur reoit Perdant.
Le cas o la grille est plaine sans que un des deux joueurs gagne ne sera pas trait ici.
4. crire un programme Joueurqui permet de :
1/2

Master M2I/MQL

Anne Universitaire
20122013

a) connecter un joueur un plateau de jeu.


b) envoyer des paquets avec son identifiant et les coordonnes de la case o il souhaite
placer son pictogramme et recevoir les rponses du serveur: OK, KO, Vainqueur,
ou Perdant.
c) rejouer en cas dchec de placement.
Exercice 2. (8 pts)
Une socit de location de vhicules souhaite grer ses activits l'aide d'une petite base de donnes
de type relationnelle. Dans cette base de donnes, on s'intresse pour l'instant uniquement aux
informations suivantes :

des clients, identifis par un nom,

des vhicules, possdant un numro.

1. crire la classe Client, munie de ses mthodes usuelles d'accs aux champs et d'affichage
(toString()).
2. crire une mthode init(inti) remplissant automatiquement le champ nom avec la valeur
nomi, par exemple si c est une instance de clients, c.init(2) mettra nom2 dans son
champ nom.
3. crire un constructeur acceptant un entier pour paramtre et crant une instance initialise
comme dans la question prcdente.
4. crire une mthode statique demo() de sorte que Client.demo() cre une instance de
Client, de nom nom4 et l'affiche.
On suppose la classe Vhicule est dj crite et possdant les mmes mthodes que celles dcrites dans
Client.
5. crire une classe Parc, hritant de ArrayList, cense contenir l'ensemble des vhicules en
location et possdant les mmes mthodes que celles dfinies ci-dessus (accs aux champs,
init, constructeurs, toString et demo).
Remarque : init(3) crera un tableau contenant les vhicules de numro respectif 11, 22 et 33.
On dfinit une classe LouePar permettant de mmoriser un lien entre les objets de la classe Vhicule et
ceux de la classe Client : cette classe possde comme champ une variable de type Vhicule et une
de type Client.
6. crire cette nouvelle classe LouePar avec les mmes mthodes que ci dessus.
On souhaite utiliser une classe Classeur, drivant la classe SET afin de mmoriser l'ensemble des liens
prcdemment voqus.
7. crire cette classe, puis les mthodes permettant de retrouver un client lorsque l'on connat son
nom.
8. crire galement une mthode retournant un ensemble (HashSET) de tous les vhicules lous
par un client donn.

2/2

S-ar putea să vă placă și