TP Programmation par objets - Java, Licence Informatique, Sept-Déc 2002, Université de Montpellier II

Enseignant resp : Jacques Ferber,ferber@lirmm.fr

TP 5 : Morpion et Tamagoshi



1 Le jeu du Morpion

Exercice 1: Ajouter à la classe Morpion (vue à l'exercice 1 du TD5) une fonction main de sorte que l'exécution du programme permette de jouer effectivement au jeu du Morpion.

A chaque tour, le programme doit afficher la grille suivie du texte ci-dessous, pour demander le prochain coup à jouer:     
                  Au tour du joueur O : position (lc) >_

Après un coup gagnant, le programme s'arrête.

 

2 Les tamagoshis

On dit souvent que les méthodes d'instance définissent le comportement des objets d'une classe. Pour bien comprendre cette notion, on peut faire une analogie entre le comportement des instances et celui d'êtres vivants. Un tamagoshi va donc être un objet qui vit (perd de l'énergie) et qui doit être alimenté pour survivre (augmenter son énergie). Le but est donc ici de réaliser un petit programme qui consiste à faire interagir l'utilisateur dans le but de maintenir en vie une petite colonie de tamagoshis ayant un comportement basique.


Exercice 2
:
Ecrire une classe Tamagoshi qui contient les attributs suivants : age, lifeTime, maxEnergie, energie de type entier et name de type String.
Le constructeur prend comme paramètre une chaîne pour le nom du tamagoshi et initialise les autres attributs ainsi: age à zéro, et de façon aléatoire: lifeTime entre 9 et 14, maxEnergie entre 5 et 9 et energie entre 3 et 7.


Exercice 3
:
Ecrire une méthode de signature public void parler() qui écrit à l'écran le nom du tamagoshi et son état de forme: "heureux", si la variable energie est supérieure à 5, ou "affamé" dans le cas contraire.


Exercice 4
:
Ecrire une méthode de signature public void manger() qui augmente d'une valeur aléatoire, comprise entre 1 et 3, la valeur de l'attribut energie et affiche ensuite à l'écran un message de satisfaction. Si energie est déjà à son niveau maximum (maxEnergie) alors le tamagoshi n'a pas faim et un message doit montrer son mécontentement.


Exercice 5
:
Ecrire une méthode de signature public boolean ageLimite() qui permet de tester si le tamagoshi a atteint son age limite.


Exercice 6
:
Ecrire une méthode de signature public boolean vivre() qui fonctionne suivant trois cas :
1. ne fait rien et retourne true si les valeurs age et lifeTime sont égales.
2. si energie <= 0: affiche un message de fin ("je meurs") et retourne false.
3. si energie > 0: augmente age, réduit energie, puis, si le tamagoshi a rejoint son âge limite, affiche un message de satisfaction ou dans le cas contraire fait simplement parler le tamagoshi (return true).


Exercice 7
:
Ecrire un programme (fonction main) qui crée n tamagoshis, la valeur n étant fournie en paramètre d'appel du programme.
Le programme exécute en boucle les actions suivantes :
-la méthode vivre() est appliquée sur tous les tamagoshis.
-l'utilisateur a la possibilité de choisir le tamagoshi qu'il souhaite nourrir pour ce cycle.

On sort de la boucle uniquement dans les deux conditions suivantes:
- Gagné : tous les tamagoshis ont rejoint leur âge limite.
- Perdu : un tamagoshi est mort de faim.


Exemples d'exécution

> java Tamagoshi  3
Quel nom pour le nouveau tamagoshi : Pierre
Quel nom pour le nouveau tamagoshi : Paul
Quel nom pour le nouveau tamagoshi : Jacques

 -------Cycle n° 1 -------
 Pierre : je suis affamé !
 Paul : tout va bien !
 Jacques : je suis affamé !

 (0) Pierre   (1) Paul   (2) Jacques 
 Nourrir quel tamagoshi ?  1

 Paul : je n'ai pas faim !!

 -------Cycle n° 2 -------
 Pierre : je suis affamé !
 Paul : tout va bien !
 Jacques : je suis affamé !

 (0) Pierre   (1) Paul   (2) Jacques 
 Nourrir quel tamagoshi ?  0

 Pierre : Merci !

 -------Cycle n° 3 -------
 Pierre : tout va bien !
 Paul : je suis affamé !
 Jacques : je suis affamé !

 (0) Pierre   (1) Paul   (2) Jacques
 Nourrir quel tamagoshi ?  1

 Paul : Merci !

-------Cycle n° 4 -------
 Pierre : je suis affamé !
 Paul : c'est gagné pour moi !
 Jacques : je suis affamé !

 (0) Pierre   (2) Jacques 
 Nourrir quel tamagoshi ?  2

 Jacques : Merci !

 -------Cycle n° 5 -------

 Pierre : je meurs... Arrrggh !

PERDU !!

Exercices facultatifs :


Exercice 8:
Changer le programme principal de façon à pouvoir nourrir 2 tamagoshis dans un seul cycle.


Exercice 9:
Ecrire de nouvelles méthodes de façon à donner un nouveau comportement aux tamagoshis. Par exemple, on peut imaginer que les tamagoshis ont un besoin vital qu'on joue avec eux, sans quoi ils dépérissent d'ennui.


Exercice 10:
Modifier la fonction main de façon à pouvoir préciser au démarrage le nombre de repas et de jeux par cycle.


Site des infos concernant le module de programmation par objets en licence:
http://www.lirmm.fr/~ferber/Licence