L3 Info : PHP et Applications Web
 
◃  Ch. 3 Un coup de poker  ▹
 

Classe Carte.php

  • La classe carte est destinée à modéliser une carte d'un jeu de poker (52 cartes)
    Diagramme UML de la clase Carte
  • /**
     * Classe Carte
     * @author Dominique Fournier
     * @date 2017-2022
     * @version 1.3 compatible php7.4
     */
    class Carte
    {
    
        /**
         * $hauteur : entier ∈ [0;12] indiquant la hauteur de la carte
         * @access private
         * @var int
         */
        private int $hauteur;
    
        /**
         * $couleur : entier ∈ [0,3] indiquant la couleur de la carte
         * @access private
         * @var int
         */
        private int $couleur;
    
        /**
         * @access public
         * @param int $couleur l'entier associé à la couleur
         * @param int $hauteur l'entier associé à la hauteur
         */
        public function __construct(int $couleur, int $hauteur)
        {
            $this->couleur = $couleur;
            $this->hauteur = $hauteur;
        }
    
        /**
         * @access public
         * @return int $this->hauteur
         */
        public function getHauteur(): int
        {
            return $this->hauteur;
        }
    
        /**
         * @access public
         * @param int $hauteur
         */
        public function setHauteur(int $hauteur): void
        {
            $this->hauteur = $hauteur;
        }
    
        /**
         * @access public
         * @return int $this->couleur
         */
        public function getCouleur(): int
        {
            return $this->couleur;
        }
    
        /**
         * @access public
         * @param int $couleur
         */
        public function setCouleur(int $couleur): void
        {
            $this->couleur = $couleur;
        }
    
      /**
       * @access public
       * @param $c une instance de Carte à comparer avec $this
       * @return la différence de hauteur entre la carte appelante et la carte appelée
       */
      public function compareCarte(Carte $c) : int  {
        return $this->hauteur - $c->hauteur;
      }
    
        /**
         * @access public
         * @return string une chaîne de caractères résumant $this
         */
        public function __toString(): string
        {
            return "(couleur:".$this->couleur.", hauteur:".$this->hauteur.")";
        }
    
    }
    
  • Test de la classe (à réaliser au fur et à mesure de l'écriture du code) :
    
    /* Test du constructeur */
    $uneCarte = new Carte(1,1);

    /* Test de __toString */
    echo $uneCarte;
    (couleur:1, hauteur:1)

    /* Test de getCouleur() */
    echo $uneCarte->getCouleur();
    1

    /* Test de setCouleur() */
    $uneCarte->setCouleur(5);
    echo $uneCarte;
    (couleur:5, hauteur:1)

    /* Test de getHauteur() */
    echo $uneCarte->getHauteur();
    1

    /* Test de setHauteur() */
    echo $uneCarte->setHauteur(5);
    echo $uneCarte;
    (couleur:5, hauteur:5)

    /* Test de compareCarte() */
    echo $uneCarte->compareCarte($uneCarte);
    0

    $autreCarte = new Carte(1,1);
    echo $uneCarte->compareCarte($autreCarte);
    4

    echo $autreCarte->compareCarte($uneCarte);
    -4