1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| <?php
class Personnage
{
private $force;
private $localisation;
private $experience;
private $degats;
// -----------------------------------------------------------------------------------------
// __construct () permet d'initialiser les valeurs des attributs.
// Le reste du code est inchangé sauf lors des instanciations.
// -----------------------------------------------------------------------------------------
public function __construct ($force, $degats) // __construct attend 2 valeurs.
{
echo 'Un objet vient d\'être créé.<br/>'; // Message s'affichant à chaque instance.
$this->force = $force; // Initialisation de la force à la 1e valeur entre ().
$this->degats = $degats; // Initialisation des dégâts à la 2e valeur entre ().
$this->experience = 1; // Initialisation de l'expérience à 1.
}
// ---------------------------------------------------------------------------------------
public function deplacer()
{
// Pour l'instant, aucune méthode.
}
// ---------------------------------------------------------------------------------------
// Ici, on exige de la méthode "frapper" un paramètre de la classe "Personnage".
public function frapper(Personnage $persoAFrapper)
{
// "$persoAFrapper->recevoirDegats" permet d'appeler de l'objet "$persoAFrapper"
// la méthode recevoirDegats pour lui passer (à cette méthode) la valeur de $this->force.
// NB La méthode "recevoirDegats" est plus loin; l'emplacement de la méthode importe peu
// puisque l'on est ici dans une classe (dans la fabrication des plans de construction).
$persoAFrapper->recevoirDegats ($this->force);
}
// ---------------------------------------------------------------------------------------
public function gagnerExperience()
{
$this->experience++;
// Ce qui signidie $this->experience = $this->experience + 1
}
// ---------------------------------------------------------------------------------------
// Dans cette méthode $persoAFrapper (ou tout autre Personnage créé) se reçoit des dégâts
// qui ont une valeur égal à la force (+1 point).
public function recevoirDegats ($force)
{
$this->degats += $force;
// Ce qui signifie $this->degats = $force + 1;
}
// -----------------------------------------------------------------------------------------
// On crée ci-dessous les setters afin de pouvoir obtenir la valeur chaque attribut private.
// -----------------------------------------------------------------------------------------
public function setForce ($force)
{
if (is_int ($force)) // On vérifie bien qu'on ne met pas n'importe quoi.
$this->force = $force;
}
public function setExperience ($experience)
{
if (is_int ($experience))
$this->experience = $experience;
}
// -----------------------------------------------------------------------------------------
// On crée ci-dessous les getters afin de pouvoir obtenir la valeur chaque attribut private.
// -----------------------------------------------------------------------------------------
public function getForce()
{
return $this->force;
}
public function getLocalisation()
{
return $this->localisation;
}
public function getExperience()
{
return $this->experience;
}
public function getDegats()
{
return $this->degats;
}
}
// -----------------------------------------------------------------------------------
// On crée de nouvelles instances et on leur attribue des valeurs.
// -----------------------------------------------------------------------------------
$perso1 = new Personnage(10,5);
$perso2 = new Personnage(90,30);
$perso1->frapper ($perso2); // $perso1 frappe $perso2.
$perso1->gagnerExperience(); // On gagne de l'expérience.
$perso2->frapper ($perso1); // $perso1 frappe $perso2.
$perso2->gagnerExperience(); // On gagne de l'expérience.
echo 'Le premier personnage a ' . $perso1->getForce() . ' de force, contrairement au second qui a ' . $perso2->getForce() . ' de force.<br />';
echo 'Le premier personnage a ' . $perso1->getExperience() . ' d\'expérience, contrairement au second qui a ' . $perso2->getExperience() . ' d\'expérience.<br />';
echo 'Le premier personnage a ' . $perso1->getDegats() . ' de dégâts, contrairement au second qui a ' . $perso2->getDegats() . ' de dégâts.<br />';
echo '<br/>';
echo '------------------------------------------------------------------------------------------------------------------------------<br/><br/>';
?> |