| Server IP : 109.234.162.214 / Your IP : 216.73.216.222 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/carpe/www/starship/tests/ |
Upload File : |
<?php
class Personne{
public $nom;
public $prenom;
public $age;
public function __construct($n,$p,$a) {
$this->nom = $n;
$this->prenom = $p;
$this->age = $a;
}
public function sePresenter(){
return "Je m'appelle {$this->nom} {$this->prenom}, j'ai {$this->age} ans.";
}
function getNom(){
return "{$this->prenom} {$this->nom}";
}
public function getJustNom(){
return "{$this->nom}";
}
}
class Operateur extends Personne{
public $metier;
public function __construct($n,$p,$a,$m) {
parent::__construct($n,$p,$a);
$this->metier = $m;
}
public function presentation(){
$this->sePresenter();
return "Je suis {$this->metier}.";
}
public function agir(Vaisseau $vaisseau){
if($this->metier == "Pilote"){
return "Le vaisseau {$vaisseau->nom} n'a pas besoin d'un pilote tout de suite";
}
if($this->metier == "Agent dentretien"){
$vaisseau->etat_proprete += 1;
return "Le vaisseau a été entretenu, il est propre à {$vaisseau->etat_proprete}%.";
}
if($this->metier == "Technicien"){
$vaisseau->etat_technique += 1;
return "Le vaisseau a été réparé partiellement, il est fonctionnel à {$vaisseau->etat_technique}%.";
}
}
public function malAgir($vaisseau){
if($this->metier == "Agent dentretien"){
$vaisseau->etat_proprete -= 1;
return "Le vaisseau a été sali, il est propre à {$vaisseau->etat_proprete}%.";
}
if($this->metier == "Technicien"){
$vaisseau->etat_technique -= 1;
return "Le vaisseau a été endommagé partiellement, il est fonctionnel à {$vaisseau->etat_technique}%.";
}
}
public function toArray() {
return [
'nom' => $this->nom,
'prenom' => $this->prenom,
'age' => $this->age,
'metier' => $this->metier,
];
}
}
class Mentaliste extends Personne{
public $mana;
public function __construct($n,$p,$a,$m) {
parent::__construct($n,$p,$a);
$this->mana = $m;
}
public function faireAgir(Operateur $operateur, Vaisseau $vaisseau){
return $operateur->malAgir($vaisseau);
}
public function toArray() {
return [
'nom' => $this->nom,
'prenom' => $this->prenom,
'age' => $this->age,
'mana' => $this->mana,
];
}
}
$personnes = [
new Operateur("Briams", "Jhon",30,"Medecin"),
new Operateur("Lews","Devis", 35,"Agent dentretient"),
new Operateur("Clark", "Aline",30,"Pilote"),
new Operateur("Grimes","Steve", 35,"Technicien"),
new Operateur("Houston", "Pauline",30,"Medecin"),
new Operateur("Arts","Assya", 35,"Agent dentretient"),
new Operateur("Strep", "Keven",30,"Technicien"),
new Operateur("Pens","Dwerry", 35,"Technicien"),
new Operateur("Bryan", "Ash",30,"Medecin"),
new Operateur("Kloupsounano","Kay", 35,"Agent dentretient"),
new Mentaliste("Charlie","Arieta", 28 ,50),
new Mentaliste("Oak","Abrahams", 32, 50),
new Mentaliste("Scroutedansmonpannier","Jessica", 28 ,50),
new Mentaliste("Ohohohoh","Lise", 32, 50),
new Mentaliste("Obama","Barack", 28 ,50),
new Mentaliste("Hamilton","Lewis", 32, 50),
new Mentaliste("Mbappe","Kylian", 28 ,50),
new Mentaliste("Potter","Harry", 32, 50),
new Mentaliste("Oust","Asterion", 28 ,50),
new Mentaliste("Frigiel","Alexandre", 32, 20)
];
class Vaisseau {
public $nom;
public $vie;
public $etat_technique;
public $etat_proprete;
public $bouclier2 = false;
public $recharge = 2;
public function __construct($n,$v, $et, $ep) {
$this->nom = $n;
$this->vie = $v;
$this->etat_technique = $et;
$this->etat_proprete = $ep;
}
public function getNom() {
return $this->nom;
}
public function peutDecoller() {
return $this->etat_technique > 80 AND $this->etat_proprete > 70;
}
public function bouclierOn(){
$this->bouclier2 = true;
}
public function bouclierOff(){
$this->bouclier2 = false;
}
public function bouclier(){
return $this->bouclier2;
}
public function recharge(){
$this->recharge = 2;
return "Le vaisseau a rechargé ! Il peut désormais tirer {$this->recharge} fois.";
}
public function attaquer($enemi) {
if ($this->peutDecoller() AND $this->recharge>0) {
echo "Le vaisseau {$this->nom} attaque {$enemi->getNom()}";
echo "<br/>";
$this->recharge -= 1;
echo "Il reste {$this->recharge} coup au vaisseau";
echo "<br/>";
if($enemi->bouclier2){
echo "le vaisseau s'est protégé";
$enemi->bouclierOff();
}else{
echo "le vaisseau a prit des dégats";
echo "<br/>";
$enemi->vie -= 30;
echo "Il lui reste {$enemi->vie} hp";
}
} else {
return "Le vaisseau {$this->nom} ne peut pas décoller et attaquer.";
}
}
}
$v1 = new Vaisseau('Aurora',100,81,80);
$v2 = new Vaisseau('Spectrus',100,10,20);
//echo $v1->attaquer($v2);
$o1 = new Operateur("Klark", "Kouss",30,"Technicien");
//echo $o1->agir($v1);
$m1 = new Mentaliste("Scroutedansmonpannier","Jessica", 28 ,50);
//echo $m1->faireAgir($o1,$v1);
//$v2->bouclierOn();
echo $v1->attaquer($v2);
echo $v1->attaquer($v2);
echo $v1->recharge();
?>