Le 4 2 1

Modéliser et coder

Cette partie vous permettra de mettre en pratique les notions suivantes :

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.​

Scénario nominal :​

  1. Le joueur indique le nombre de manches.​
  2. Le système initialise le jeu.​ 3 Le système retourne la valeur visible des 3 dés triés.​
  3. Le joueur a obtenu 421. Retour à 3.​

Extensions.​

Travail à réaliser

  1. Réalisez un diagramme de collaboration entre les objets impliqués dans le jeu.​

  2. 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.

  1. 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 ?

Implémentation

Vous allez implémenter la classe De. Pour cela vous devez:​

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:

​> 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.​

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.​

Réalisez le diagramme de classe détaillé de la classe Partie. Pour cela, vous devez vous poser les questions:

​> 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 ?

Commentez le code de votre Bibliotheque421.