Skip to content

Commit

Permalink
CEJM chap 19,20 , dev POO php, annal Cyber
Browse files Browse the repository at this point in the history
New exos CEJM chap 19,20
finished dev fight game POO php
new annal CYBER KOUDOU
  • Loading branch information
whoamitty committed Mar 12, 2024
1 parent 54bb2d6 commit aaf31f2
Show file tree
Hide file tree
Showing 7 changed files with 153 additions and 6 deletions.
Binary file added CEJM/sm2/chap19.docx
Binary file not shown.
Binary file added CEJM/sm2/chap20.docx
Binary file not shown.
Binary file added CSERVIUS/PHP/POO/PHP_POO_Exo02_Jeu_Combat.pdf
Binary file not shown.
122 changes: 122 additions & 0 deletions CSERVIUS/PHP/POO/exo2_jeu_de_combat.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
<?php

class Personnage{
private string $nom;
private int $pointsDevie=5000;
private int $forceAttaque=100;
private Arme $armeJoueur;

public function init($nom,$pointsDevie, $forceAttaque): void{
$this->nom=$nom;
$this->pointsDevie=$pointsDevie;
$this->forceAttaque=$forceAttaque;

}

public function initArme($nom, $bonusAttaque): void {
$this->armeJoueur = new Arme();
$this->armeJoueur->init($nom, $bonusAttaque);
}

public function attaquer(Personnage $cible): int{
if ($cible->pointsDevie>0){
echo $this->nom .' attaque ' . $cible->getName()."<br>";
$degats=$this->forceAttaque+$this->armeJoueur->getbonusAttaque();
$this->recevoirDegats($degats,$cible);
return 1;
}
else {
echo "Le combat est terminé<br>";
echo $this->nom.' as gagné';
return 0;
}



}


public function recevoirDegats(int $degats,Personnage $cible){

$cible->pointsDevie-=$degats;
if ($cible->pointsDevie<0){
$cible->pointsDevie=0;

}
echo $cible->getName() .' as perdus '. $degats.'PV' ;
echo '<br>';




}

public function getName() : string {
return $this->nom;
}

public function getPointsDevie() : string {
return $this->pointsDevie;
}
public function presentation(){
echo $this->nom . '<br>';
echo "Points de vie: ".$this->pointsDevie . '<br>';
echo 'Arme: '.$this->armeJoueur->getName();
}



}





class Arme{
private string $nom;
private int $bonusAttaque;

public function init($nom, $bonusAttaque): void {
$this->nom=$nom;
$this->bonusAttaque=$bonusAttaque;

}

public function getBonusAttaque() : int {
return $this->bonusAttaque;

}
public function getName() : string {
return $this->nom;

}



}

$joueur1=new Personnage;
$joueur2=new Personnage;

$joueur1->init("Carine",50000,300);
$joueur1->initArme("Voix",3000);

$joueur2->init("Mikasa",50000,200);
$joueur2->initArme("Lame",200);


$live=1;
while ($live) {
$joueur1->presentation();
echo '<br>';
$joueur2->presentation();
echo '<br><br>';


$live=$joueur1->attaquer($joueur2);
if ($live){
$live=$joueur2->attaquer($joueur1);}

}


37 changes: 31 additions & 6 deletions CSERVIUS/PHP/POO/tp2_1er_part.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,35 @@
<!-- 04-03-2024 14:42:44 -->
<?php
class Pont{
// unit="m²"
// unit="m²";
// private string $unite = "m²";

private const UNITE="";
private float $longueur;
private float $largeur;
// 5*2='10 m2';

public function __construct(float $longueur,float $largeur)
{
self::validerTaille($longueur);
$this -> longueur = $longueur;

self::validerTaille($largeur);
$this -> largeur = $largeur;

}

/* public function __destruct()
{
print 'Destroying' . __CLASS__ . "\n" ;
} */

public function __toString(): string{
return 'Longeur:' . $this->longueur;
}

public static function validerTaille(float $taille): bool {
if ($taille < 0){
if ($taille <= 0){
trigger_error('La longueur ne doit pas être négative', E_USER_ERROR);
return false;
}
Expand All @@ -33,15 +53,20 @@ public function getSurface(): string{
return $this->longueur*$this->largeur . self::UNITE;
}
}
/* $bridge-> setLargeur(1200.5);
$bridge-> setLongueur(22); */

$PontC = new Pont(110,2299);

$bridge = new Pont();
// $bridge->longueur=1200;
// $bridge->largeur=15;

/* $bridge-> setLargeur(1200.5);
$bridge-> setLongueur(15); */

$bridge-> setLargeur(1200.5);
$bridge-> setLongueur(22);
echo $bridge->getSurface();
// echo $PontC->getSurface();

echo $PontC;

// echo $bridge->getSurface();

Binary file not shown.
Binary file not shown.

0 comments on commit aaf31f2

Please sign in to comment.