Le 4 2 1
Modéliser et coder
Cette partie vous permettra de mettre en pratique les notions suivantes :
- Découvrir les notions d’interfaces, d’encapsulation, de conteneurs et de sérialisation.
- Apprendre à commenter son code !
Contexte
Le 421, appelé aussi le 4 21 et prononcé quatre vingt-et-un ou Zanzibar, est un jeu populaire qui se joue encore aujourd’hui.
On joue au 421 (qui tire son nom de la combinaison la plus forte) à l’aide de trois dés.
Règle du jeu d’une manche 421:
Le joueur lance 3 dés, s’il ne fait pas 421, il peut reprendre un nombre quelconque de dés et cela à deux reprises encore. Si au bout des trois lancés, il n’obtient pas la combinaison 4 2 1, il a perdu.
Règle du jeu de la partie de jeu:
S’il gagne une manche 421, il gagne 30 points sinon il en perd 10. Au démarrage du jeu le joueur a un capital de points égal au nombre de manches choisi multiplié par 10. Une partie peut s’arrêter également si le joueur n’a plus de points.
Cas d’utilisation.
- Pré condition : aucune
- Acteur principal : le joueur.
- Portée : la partie de jeux du 421
- Niveau : utilisateur
Scénario nominal :
- Le joueur indique le nombre de manches.
- Le système initialise le jeu. 3 Le système retourne la valeur visible des 3 dés triés.
- Le joueur a obtenu 421. Retour à 3.
Extensions.
- 4.1 Le joueur n’a pas obtenu 421.
- 4.1.1 Le système demande le nombre de dés à modifier.
- 4.1.2 Le joueur indique les dés à relancer.
- 4.1.3 Le système relance les dés demandés. Retour à 3. 4.2 C’est le troisième essai. Retour à 3. 4.3 Le nombre de points disponibles passe en dessous de 0. Fin 4.4 C’était la dernière manche. Fin.
Travail à réaliser
-
Réalisez un diagramme de collaboration entre les objets impliqués dans le jeu.
-
Réalisez le diagramme de classe: vous représenterez seulement les classes sans attributs et méthodes, et leurs relations entre elles
Valider vos diagrammes avec votre formateur.
- Réalisez le diagramme de classe détaillé de la classe
De
. Pour cela, vous devez vous poser les questions:- Quels peuvent être les états et les comportements d’un
De
? - Quels constructeurs dois-je implémenter ?
- Quelle est l’accessibilité des attributs et méthodes ?
- Quels peuvent être les états et les comportements d’un
Implémentation
Vous allez implémenter la classe De. Pour cela vous devez:
- Créer une bibliothèque de classe BibliothequeJeu421 où vous implémenterez vos classes métiers.
- Créer une application console afin d’utiliser vos classes métiers, comme
De
par exemple.
Petite aide pour fournir une valeur aléatoire pour la classe De: la classe Alea qui hérite de la classe Random
public class Alea : Random
{
private static Alea monAlea = null;
private Alea() // constructeur privé
{ }
public static Alea Instance()
{
if (monAlea == null)
{
monAlea = new Alea();
}
return monAlea;
}
public int Nouveau(int valMin, int valMax)
{
return base.Next( valMin, valMax + 1);
}
}
// Exemple d'utilisation
int valeurAleatoire = Alea.Instance().Nouveau(1, 6);
Question: Quelle est la conséquence sur la construction d’instance Alea
de l’implémentation atypique de cette classe ?
Implémentez et tester votre classe De !
Une manche de 421
Rappel des fonctionnalités de la Manche 421:
Une manche 421 consiste a lancé tout d’abord 3 dés dans le but de faire la combinaison 421. Si le joueur ne réalise pas un 421 dès le premier lancé, il a la possibilité de relancer 2 fois les des de son choix.
La manche 421 est stoppée dès que le joueur a atteint 3 nouveaux lancés ou dès qu’il a gagné avec la combinaison 421.
Réalisez le diagramme de classe détaillé de la classe Manche421. Pour cela, vous devez vous poser les questions:
- Quels peuvent être les états et les comportements d’une Manche421 ?
- Quels constructeurs dois-je implémenter ?
- Quelle est l’accessibilité des attributs et méthodes ?
> Implémentez et tester votre classe Manche421 !
Une partie de 421
Rappel des fonctionnalités de la Partie:
Une Partie est initiée par un Joueur. Il fournit à la partie le nombre de Manche421 qu’il va jouer. Pour chaque Manche421, il recevra 10 points.
- S’il perd une Manche421, il perd 10 points.
- S’il gagne une Manche421, il gagne 30 points.
La manche s’arrête s’il n’a plus de points ou s’il a réalisé toutes ses manches et a donc un solde positif de points.
- On ne mémorise dans la Partie que la Manche421 courante.
Réalisez le diagramme de classe détaillé de la classe Partie. Pour cela, vous devez vous poser les questions:
- Quels peuvent être les états et les comportements d’un Partie ?
- Quels constructeurs dois-je implémenter ?
- Quelle est l’accessibilité des attributs et méthodes ?
> Implémentez et tester votre classe Partie !
Commenter son code !
L’utilisation des commentaires remonte aux premiers jours de la programmation informatique. À mesure que les programmes devenaient plus complexes, la nécessité de documenter le code devenait évidente pour aider les développeurs à comprendre et à maintenir le code écrit par eux-mêmes ou par d’autres. Les commentaires sont devenus une pratique standard dans la programmation.
Pourquoi commenter son code ?
- Clarté : Les commentaires peuvent rendre le code plus clair et plus accessible, en expliquant un bloc de code spécifique ou en clarifiant l’objectif de certaines lignes de code.
- Maintenance : Ils facilitent la maintenance du code, en aidant les futurs développeurs à comprendre rapidement le fonctionnement du programme et les raisons derrière certaines décisions de conception.
- Collaboration : Dans un contexte de développement d’équipe, les commentaires peuvent améliorer la communication entre les membres de l’équipe, permettant une collaboration plus efficace.
Commentez le code de votre Bibliotheque421.