/**
* 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 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