Telechargé par be_yasser

Atelier Jeu de Des

publicité
Public :
BTS SIO
Objectifs :
Atelier Jeux de dés (en 4 parties)
Contexte :
Durée prévue :
Auteur :
DAIGL prog - Java
4*2 h
P. Erny
Manipuler et concevoir des classes, des méthodes, des constructeurs
Créez un nouveau projet AtelierJeuDeDes
1e PARTIE – LA CLASSE DE AVEC SES CONSTRUCTEURS ET SES METHODES
1. - Créez une classe De avec les propriétés num (n° du dé), nbFaces (nombre de faces) et valeur.
- Encapsulez-les et créez les accesseurs getNbFaces(), getValeur(), getNum().
- Créez un constructeur sans paramètre qui initialise par défaut le nombre de faces à 6 et la valeur
du dé à 0.
- Créez un autre constructeur avec un paramètre permettant d'initialiser le n° du dé.
- Écrivez une méthode lancer() qui simule un lancer du dé en tenant compte du nombre de faces.
Demandez-vous s'il est préférable d'utiliser une fonction ou une procédure.
- Écrivez une méthode toString() qui retourne le n° et la valeur du dé selon le format "dé n : valeur".
- Écrivez une classe Test qui crée puis lance 3 dés et affiche leur valeur.
- Ecrivez une méthode piper() pour la classe De qui truquera le dé en lui faisant sortir uniquement
des 4, 2 ou 1. Un attribut estPipe dira s'il est pipé ou non.
- Testez à nouveau avec des dés pipés.
2. Prenez un peu de temps pour répondre aux questions suivantes (si possible sans consulter de
cours) :
- Quelle est la différence entre une classe, un objet, une instance ?
- Quelle est la différence entre variable d'instance et variable locale ?
- A quoi sert la méthode main(), peut-il en exister plusieurs dans un projet ?
- Comment s'appelle le fait d'écrire dans une classe deux méthodes portant le même nom ?
Annexe – Comment générer des nombres aléatoires ? (rappel du cours)
En java, il y a 2 manières d'obtenir un nombre aléatoire, voici la 1ère :
– dans la classe Math, utiliser la méthode random, par exemple :
int n = Math.random();
int n = (int)(Math.random() * 8);
// retourne un réel compris entre 0 (inclus) et 1 (exclus)
// retourne un entier de 0 à 7
– voici la seconde :
import java.util.Random;
…
Random r = new Random();
int n = r.nextInt(9) ;
// on crée un objet de type Random
// on utilise la méthode nextInt de l'objet r en lui passant
// un paramètre p
// nextInt() retourne un entier de 0 à p-1 (p exclus)e
2e PARTIE – LE JEU DU SIMULATEUR
Dix amis décident de se défier aux dés. Ils choisissent de lancer chacun 20 fois un dé marqué à 6 faces.
Comme la partie risque de durer longtemps avec un vrai dé, ils vous proposent d'écrire le programme en
java qui va réaliser une simulation.
Vous implanterez les 20 lancers des 10 joueurs dans un tableau à 2 dimensions :
N° du lancer
0
1
X
2
X
3
X
4
X
5
X
6
X
...
X
X
.17
X
18
X
19
X
Joueur 1
2
...
9
10
Nota : vous n'utiliserez pas la ligne 0 afin que le joueur n° 1 soit à l'indice 1.
1. Créez une classe Simulateur comprenant le tableau t d'entiers ainsi qu'un objet de la classe De. Un
constructeur sans paramètre sera chargé d'initialiser toutes les cases à 0.
2. Écrivez une méthode remplir() qui remplira le tableau automatiquement. Le travail de lancer le dé est
délégué à la classe De.
3. Écrivez une méthode afficheLancersJoueur(int numJoueur) qui affiche les 20 lancers obtenus par le
joueur dont le n° est transmis en paramètre :
Joueur 09 :
4
1
6
…
1
4. Ecrire une classe TestSimulateur avec une méthode main pour tester les méthodes précédentes, par
exemple pour afficher les lancers des 10 joueurs :
…
Simulateur s1 = new Simulateur(); // le constructeur est appelé
s1.remplir();
for(int i = 1 ; i < 11 ; i++) {
s1.afficheLancersJoueur(i);
}
5. Dans Simulateur, écrire une méthode totalJoueur(int numJoueur) : int, qui retourne le total des
lancers obtenus par un joueur. Testez, puis afficher les résultats selon l'écran suivant (c'est un
exemple) :
Total joueur n° 1 : 3520
Total joueur n° 2 : 3408
...
Total joueur n° 10 : 3527
6. Complétez votre projet (une méthode à créer) pour obtenir le nombre de six réalisés par joueur :
Total joueur n° 1 : 3520 (dont 412 six)
Total joueur n° 2 : 3408 (dont 319 six)
...
Total joueur n° 10 : 3527 (dont 147 six)
7. Si ce n'est déjà fait, comment modifier la classe Simulateur pour qu'il soit possible de choisir le
nombre de joueurs et de lancers lors de l'instanciation (création) d'un Simulateur ?
3e PARTIE – LE JEU DU 421
Créer une classe Jeu421 qui simulera approximativement le fameux jeu du 421.
Principe : on lance simultanément 3 dés puis on choisit un dé à relancer jusqu'à ce qu'on obtienne la
combinaison 4, 2, 1 dans un ordre quelconque.
Ex. de déroulement :
dé 1 : 4
dé 2 : 6
dé 3 : 1
Quel dé relancer ? 2
dé 1 : 4
dé 2 : 3
dé 3 : 1
Quel dé relancer ? 2
dé 1 : 4
dé 2 : 2
dé 3 : 1
Gagné en 3 coups
Une méthode jouer() sera chargée de simuler une partie. Tester.
Modifier la méthode jouer() en utilisant des dés à 4 faces. Tester.
4e PARTIE – LE DE-A-DEVINER
Le principe du Dé-à-deviner est très simple : l'ordinateur lance (sans l'afficher) un dé à 100 faces (donc
valeur comprise entre 1 et 100) et le joueur doit deviner sa valeur dans le moins de coups possibles.
Si la valeur donnée par l'utilisateur est supérieure au dé l'ordi répond "C'est moins", si elle est inférieure
il répond "C'est plus" et s'il donne la bonne valeur l'ordi répond "Trouvé en n essais".
Imaginez puis créez les classes et méthodes nécessaires pour réaliser cet exercice.
Téléchargement