TD Programmation par objets - Java, Licence3 - Module ULIN504, Université de Montpellier II- Resp. J. Ferber
TD
3: Tableau et Surcharge
1 Tableau de type primitif
Exos
1: On
veut coder le jeu du Morpion. Pour cela, écrivez le code de la classe Morpion.
Celle-ci doit posséder les méthodes suivantes :
- void nouvellePartie() : vide la grille du jeu.
- char joueurCourant() : retourne le symbole du
joueur courant ('X' ou 'O').
- boolean jouer(int l,int c) : le joueur courant
joue à la position (l,c), la méthode retourne false si le coup n'est pas
valide.
- boolean gagner() : retourne true ssi le dernier
joueur a gagné.
- void affiche() : affiche la grille à l'écran
en mode console, pour cela utiliser les caractères: | - X et O.
Par exemple:
l\c 1 2 3
2 X|O|
-----
3 O| |X
2 Tableau d'objets et surcharge
Exos
2: Définir
une classe Point qui modélise un point dans un espace à 2 dimensions (on
supposera que les coordonnées sont représentées sous forme d'entiers).
En plus des accesseurs cette classe doit fournir une méthode distance
telle que, si p et q sont des instances de Point :
p.distance(q) -> retourne la distance qui sépare les points p et q.
p.distance() -> retourne la distance de p par rapport à l'origine.
NB:
Math.sqrt(double d) retourne la valeur de la racine carrée de d.
Exos
3: Définir
une classe Polygone qui modélise un polygone dans un espace à 2
dimensions. Le nombre de cotés du polygone est donné en paramètre de
construction et ne pourra pas être changé par la suite, par contre les points
définissant les extrémités du polygone pourront être manipulés. Pour cela
la classe doit fournir les méthodes:
- int nbrCotes() , retourne le nombre de cotés du
polygone.
- Point getPoint(int n) , retourne le point numéro
n (si le polygone contient N points on numérote les points de 0 a
(N-1)).
- void changePoint(int n, Point p) et void
changePoint(int n, int x, int y) pour changer la valeur d'un point.
Exos
4:
Ajouter à la classe Polygone la méthode perimetre qui calcule et
retourne la valeur du périmètre du polygone.
Exos
5:
Ecrire un programme qui instancie un polygone à 6 cotés. Puis qui modifie les
coordonnées d'un des points extrémités choisi au hasard. Les nouvelles
coordonnées de ce point doivent chacune être tirées aléatoirement dans
l'intervalle [0;300]. L'opération est répétée avec un autre point jusqu'à
ce que le périmètre du polygone atteigne (ou dépasse) la valeur 600.
NB:
La fonction Math.random() retourne une valeur décimale aléatoire
comprise dans l'intervalle [0;1[ .