TP Java no1: Les d´es sont jet´es
IUP I.I.E.S 1
2 F´evrier
A. Lemay et J. Carme
Objectifs du TP : Manipuler de petits objets
Exercice 1: Jeu de d´e
Le grand avantage de Java est qu’il permet de faire de la programmation objet. Nous allons
´etudier un programme utilisant un objet : un d´e. Un objet java est caract´eris´e par deux types
d’´el´ements :
ses attributs : des variables qui permettent de caract´eriser cet objet,
ses m´ethodes : des fonctions qui permettent de le manipuler.
Les objets de type ”d´e” que nous utiliserons dispose ainsi d’un attribut : sa valeur (de type int),
et d’une m´ethode : lancer(). Chaque type d’objets est d´efini dans java par une classe.
Question 1.1: Premier lancer
T´el´echargez les fichiers De.class1(le fichier compil´e d´efinissant ce qu’est un d´e) et Jeu.java,
sauvegardez-les dans votre r´epertoire de travail. Examinez le fichier Jeu.java, compilez-le et
ex´ecutez-le plusieurs fois.
Examinez le fichier Jeu.java. Ce programme commence par cr´eer un d´e (de1) par la commande
suivante :
De de1 = new De();
de1 est donc un objet de type De que l’on vient de cr´eer. On peut ensuite consulter (ou mod-
ifier) ses attributs (ici de1.valeur) et le manipuler `a l’aide de ses m´ethodes (de1.lancer() par
exemple).
Question 1.2: Deux d´es
R´ealisez un programme qui lance deux d´es, affiche leur somme puis la valeur de chacun des d´es.
Question 1.3: 421
T´el´echargez le fichier Jeu421.class Ex´ecutez le et r´ealisez un programme Java r´ealisant la mˆeme
chose (en utilisant la classe De).
Pour cela, vous cr´eerez les deux fonctions suivantes:
public static boolean gagne(De de1, De de2, De de3);
Cette fonction renvoie vrai si les trois d´es qu’on lui donne en argument forment une combinaison
gagnante du 421.
public static void main(String [] args);
C’est la fonction principale du programme telle que vous avez l’habitude de l’´ecrire. Elle d´ecrit
le d´eroulement du jeu lui-mˆeme et fait appel `a la fonction gagne(De de1, De de2, De de3).
Question 1.4: La classe De
1Les fichiers n´ecessaires pour ce TP se trouvent sur www.grappa.univ-lille3.fr/~carme/iies1.html
Vous avez maintenant appris `a manipuler les objets. Vous allez maintenant ´etudier leur fonc-
tionnement interne.
T´el´echargez le fichier De.java. Examinez-le. Il contient la d´efinition de la classe De. Celle-ci a
un attribut, valeur, et deux m´ethodes, lancer() et De().
La m´ethode De() a un statut particulier : c’est le constructeur. Un constructeur est une m´ethode
qui a le mˆeme nom que sa classe. Elle est appel´ee quand un d´e est cr´ee (par exemple, par
l’instruction De de1 = new De(); dans le programme de jeu). Elle d´ecrit ce qu’il faut faire quand
on cr´ee un d´e. Par exemple, ici, quand un d´e est cr´ee, on d´ecide de l’initialiser en lui donnant la
valeur 1.
Comme nous l’avons d´eja vu dans la section pr´ec´edente, lorsqu’on utilise un objet, on peut
acc´eder `a ses attributs et ses m´ethodes ansi: <objet>.<attributs>, par exemple de1.valeur.
A l’interieur de l’objet, ses attributs et m´ethodes sont acc´essibles directement. Par exemple, la
m´ethode lancer() modifie la valeur de l’attribut valeur en l’appelant directement par son nom.
Modifier la classe De pour que, lorsqu’un e est cr´ee, sa valeur initiale soit choisie al´eatoirement.
Question 1.5: D´es pip´es
Ajouter `a la classe De une m´ethode piper() qui modifie le d´e de mani`ere `a ce qu’il ne fasse plus
que des 1, des 2 et des 4, r´eduisant ainsi consid´erablement la difficult´e du jeu de 421.
Chaque d´e cr´e´e se comportera normalement au d´ebut, et ne deviendra pip´e que si on appelle sa
m´ethode piper(). Une fois pip´e, le d´e le restera.
Exercice 2: Nombre Mystere
Question 2.1: Un d´e `a 100 faces
Sur le mod`ele de la classe De, construisez un objet De100 qui poss`ede un attribut (valeur) et
cinq m´ethodes :
De100() : le constructeur de la classe. Il initialise la valeur en lan¸cant le d´e.
lance() : pareil que pour la classe De, mais g´en`ere un nombre al´eatoire compris entre 1 et
100.
exact(int chiffre) : fonction qui prend en entr´ee un chiffre qui renvoie un bool´een (boolean),
renvoie true si l’argument correspond `a la valeur du d´e, false sinon.
tropgrand(int chiffre) : idem, mais renvoie true si l’argument est plus grand que la valeur du
d´e, false sinon
troppetit(int chiffre) : l’inverse de tropgrand
Question 2.2: Nombre myst`ere...
R´ealisez un jeu du nombre myst`ere `a l’aide de la classe De100.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !