TP Java no3 (suite) : Memory

Transcription

TP Java no3 (suite) : Memory
TP Java no3 (suite) : Memory
IUP I.I.E.S
1er Avril
A. Lemay
Objectifs du TP : comprendre la notion de variable de classe (mot clef static), utilisation
du JDK, dessin.
Exercice 1: Static
Le mot clé static indique qu’une méthode ou une variable appartient à la classe (et non à
l’instance). On caractérise ainsi les variables ou les méthodes qui agissent sur la classe toute
entière, et non sur un objet séparés, ou encore des variables ou méthodes qui sont partagées par
tous les objets.
Téléchargez le fichier Vehicules.java. Aucune des variables et des méthodes de cette classe
n’est ”statique”. Ajoutez le mot clef static là où il faut.
Exercice 2: Jeu de Memory
On désire réaliser un jeu de Memory. Téléchargez le fichier Memory.java. Ce plateau utilise
la classe Cartes que vous allez concevoir. Vous pouvez télécharger le fichier Cartes.class pour
tester le comportement de Memory.java.
Le programme Memory.java crée un plateau de cartes (entre 6 et 36 cartes, toujours un nombre
pair) et construit les cartes correspondantes. Il appelle les méthodes suivantes de la classe Cartes :
• select() : la carte est selectionnée (on clique dessus). Lorsqu’on clique sur une carte, on
la retourne. Le seul cas particulier qui peut se présenter est lorsqu’on a déjà retourné un
nombre pair de cartes. Auquel cas, lorsqu’on clique sur une carte, on retourne les deux
dernières cartes retournées sauf si elles présentent le même symbole.
• paint(Graphics, int, int) : demande à la carte de s’afficher sur l’objet Graphics 1 aux
coordonnées indiquées. On considère qu’une carte se dessine sur un rectangle de 50 × 70. La
carte s’affichera différemment selon qu’elle est sur le dos ou sur la face.
• fini() : méthode de classe qui indique si le jeu est terminé (toutes les cartes sont retournées)
ou non.
Mis à part ces trois méthodes, vous êtes libres de faire ce qu’il vous plaı̂t pour concevoir la classe
Cartes.
Question 2.1: Variables d’instances
Qu’est ce qui caractérise un objet de type Cartes ? Commencez à écrire la classe Cartes en
indiquant ses variables d’instance.
Question 2.2: Constructeur
Lors de la création d’une carte, on doit lui attribuer une certaine valeur. Dans le jeu de Memory,
les cartes vont par deux (pour toute carte, il existe exactement une autre carte qui a la même
1 La classe Graphics est une classe qui permet de faire des dessins. On peux voir un objet de type Graphics
comme un tableau noir sur lequel on dessine. Par exemple, si g est un objet de type Graphics, la commande
g.drawRect(10,20,30,40) dessine sur g un rectangle de dimensions 30 × 40 aux coordonnées (10, 20). Pour utiliser
cette classe, mettez import java.awt.*; au début de votre programme. pour voir toutes les méthodes de la classe
Graphics, allez voir l’API de java 2 sur le site de SUN (http://java.sun.com)
valeur). Réalisez le constructeur de classe Cartes ainsi que tout autre élément qui vous sera utile
pour ce constructeur.
Question 2.3: fini
La fonction fini renvoie un booléen et indique si le jeu est terminé ou non. Il est terminé lorsque
toutes les cartes sont retournées. Quelles sont les informations que l’on doit stocker pour cette
fonction ?
Réalisez la fonction fini() et les variables (de classe ou d’instance) dont vous aurez besoin.
Question 2.4: Select
La méthode select est invoquée lorsqu’on clique sur une carte (voir la description ci-dessus).
Réalisez la méthode select()
Question 2.5: Dessin
Réalisez la méthode paint pour dessiner les cartes. Vous vous aiderez de l’API (voir le site de
SUN). Notez qu’une carte n’est pas affichée de la même manière si elle est retournée ou non.
Note : Vous devriez utiliser la syntaxe du switch. Le switch permet d’avoir un code dont le
comportement varie selon la valeur d’une variable. Pour information,
switch(x)
{
case 0: truc();
break;
case 1: machin();
break;
case 2: bidule();
break;
default: bazar();
}
est équivalent à :
if (x == 0) truc();
else if (x == 1) machin();
else if (x == 2) bidule();
else bazard();
2

Documents pareils