misterchoudebxl
Messages postés77Date d'inscriptionmardi 28 décembre 2010StatutMembreDernière intervention29 novembre 2023
-
10 mars 2021 à 13:56
jordane45
Messages postés38314Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention24 novembre 2024
-
10 mars 2021 à 16:18
Bonjour. voici 3 questions pour adapter mon code qui fonctionne mais je dois juste faire quelques modification
si quelqu'un pouvait m'aider ce serait sympa
les questions sont dans le code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Examen_POO</title>
</head>
<body>
<!--
* Question1 :
Afficher le résultat par ordre d’arrivée (Le premier en haut et le dernier en base de la liste)
* Question 2 :
Dans l’idée de l’orienté objet, le test suivant n’est pas approprié : ($joueur1->position < 100) && ($joueur2->position < 100) && ($joueur3->position < 100) && ($joueur4->position < 100) && ($joueur5->position < 100)
Il faudrait trouver une autre solution. Une idée serait d’intégrer cette notion à l’objet voiture (donc dans la classe voiture) à l’aide d’une propriété ou d’une méthode. Par exemple dans le code on pourrait imaginer de tester $joueur1->gagnant() qui vaudrait VRAI quand le joueur est gagnant et FAUX quand le joueur n’a pas gagné.
Utiliser cette notion dans la détermination du vainqueur.
* Question 3 :
Adapter la méthode déplacement pour le vainqueur soit celui qui arrive juste 100 (et pas le dépasse). Donc s’il est à la position 98 et le dé indique 5 il passe à la position 97 (voir jeu de l’oie). Ne pas oublier que cela aura un impact sur la question 7.</!-->
<?php
//Declaration de la classe
class voiture
{
//Pour directement faire commencer les joueurs à la case 0
//Q5, Version "Christophe Mesman" on peut mettre FALSE ça fonctionne je ne sais pas si c'est mieux par conctre on en peu pas mettre en private puisque nous essayons d'acceder a un attribut privé et cela est interdit.
public $position = 0; // Q5, Version "Christophe Mesman"ou false;
public $couleurVoit;
public $pilote;
public $marque; // Q6, Version "Christophe Mesman" pour que cela soit plus propre créé le paramettre $marque et cela devient plus logique pour l'utilisé dans la fonction __construct
function __construct($couleurVoit, $pilote, $marque)
{
$this->couleurVoit = $couleurVoit;
$this->pilote = $pilote;
$this->marque = $marque;
}
public function set_deplacement($new_position)
{
$this->position = $this->position + rand(1,6);
return $this->position;
}
};
//Declaration des objets, attribution des couleurs et marques de voiture ainsi que des noms des joueurs
$joueur1 = new voiture('Grise', 'Lewis Hamiltaton', 'Mercedeces-Beanz');
$joueur2 = new voiture('Bleue', 'Sebastian Loebé' , 'Citroné');
$joueur3 = new voiture('Verte', 'Raton Cena', 'McLorraine');
$joueur4 = new voiture('Rouge', 'Michel Sumaler', 'Ferroro');
//Q2, Version "Christophe Mesman" je change la couleurs en mauve pour l'affichage
$joueur5 = new voiture('Mauve', 'Noel Baillant', 'Vaillante');
/*Q1, Version "Christophe Mesman" rajout des joueurs" 6,7,8"*/
$joueur6 = new voiture('Jaune', 'Riri', 'Pigeote');
$joueur7 = new voiture('Blanc', 'Fifi', 'Fortissimo');
$joueur8 = new voiture('Orange', 'Loulou', 'Doloréanesse');
// " Mesman Christophe" il manque Picsou mais vous avez dit que jusque 8
//Boucle de deplacement jusqu'à ce qu'il y ait un/des gagnant(s)
//Q1, Version "Christophe Mesman" rajout des joueurs" 6,7,8"
while (($joueur1->position < 100) && ($joueur2->position < 100) && ($joueur3->position < 100) && ($joueur4->position < 100) && ($joueur5->position < 100) && ($joueur6->position < 100) && ($joueur7->position < 100) && ($joueur8->position < 100) )
{
$joueur1->set_deplacement($new_position);
$joueur2->set_deplacement($new_position);
$joueur3->set_deplacement($new_position);
$joueur4->set_deplacement($new_position);
$joueur5->set_deplacement($new_position);
//Q1, Version "Christophe Mesman" rajout des joueurs" 6,7,8"
$joueur6->set_deplacement($new_position);
$joueur7->set_deplacement($new_position);
$joueur8->set_deplacement($new_position);
};
//Determination du vainqueur
//Q1, Version "Christophe Mesman" rajout des joueurs" 6,7,8"
$MaxNbpoints=max($joueur1->position,$joueur2->position,$joueur3->position,$joueur4->position,$joueur5->position,$joueur6->position,$joueur7->position,$joueur8->position);
if ($MaxNbpoints == $joueur1->position)
{
$vainqueur= $joueur1->pilote;
$teamVainqueur= $joueur1->marque;
}
else if ($MaxNbpoints == $joueur2->position)
{
$vainqueur= $joueur2->pilote;
$teamVainqueur= $joueur2->marque;
}
else if ($MaxNbpoints == $joueur3->position)
{
$vainqueur= $joueur3->pilote;
$teamVainqueur= $joueur3->marque;
}
else if ($MaxNbpoints == $joueur4->position)
{
$vainqueur= $joueur4->pilote;
$teamVainqueur= $joueur4->marque;
}
else if ($MaxNbpoints == $joueur5->position)
{
$vainqueur= $joueur5->pilote;
$teamVainqueur= $joueur5->marque;
}
else if ($MaxNbpoints == $joueur6->position)
{
$vainqueur= $joueur6->pilote;
$teamVainqueur= $joueur6->marque;
}
else if ($MaxNbpoints == $joueur7->position)
{
$vainqueur= $joueur7->pilote;
$teamVainqueur= $joueur7->marque;
}
else
{
$vainqueur= $joueur8->pilote;
$teamVainqueur= $joueur8->marque;
}
//Q2, Version "Christophe Mesman" rajout des Couleurs dans l'affichage, pour éviter une confrontation de gris je vais juste changer la couleurs du fond du tableau et mettre l'écriture en noir et changé la couleur noire de la voiture en mauve
/*
Joueur1: Grise
Joueur2: Bleue
Joueur3: Verte
Joueur4: Rouge
Joueur5: mauve
Joueur6: Jaune
Joueur7: Blanc
Joueur8: Orange
*/
//Affichage du resultat
//Merci Walid !!
echo '<div style="width:700px;">';
echo '<h1 style="text-align:center;font:bold 20px Helvetica;padding-top:20px;"> Résultats de la course </h1>';
echo '</div>';
echo '<div style="display:grid; grid-template-columns:repeat(4,150px);grid-template-rows: repeat(5,110px); width:700px; background-color:#25a8a0; justify-content: center; align-content:end; margin-top:20px;">';
echo '<div style="padding-top:80px;font:bold 20px Helvetica;"><b> Nom </b> </div>';
echo '<div style="padding-top:80px;font:bold 20px Helvetica;"><b> Marque </b> </div>';
echo '<div style="padding-top:80px;font:bold 20px Helvetica;"><b> Couleur </b> </div>';
echo '<div style="padding-top:80px;font:bold 20px Helvetica;"><b> Points </b> </div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9d9d9c;height:50px;color:#1d1d1b;font:bold 20px Helvetica;">'.$joueur1->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9d9d9c;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur1->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9d9d9c;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur1->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9d9d9c;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur1->position.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #009fe3;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur2->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #009fe3;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur2->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #009fe3;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur2->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #009fe3;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur2->position.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #1fa93b;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur3->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #1fa93b;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur3->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #1fa93b;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur3->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #1fa93b;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur3->position.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #e30613;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur4->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #e30613;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur4->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #e30613;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur4->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #e30613;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur4->position.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9185be;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur5->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9185be;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur5->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9185be;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur5->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #9185be;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur5->position.'</b></div>';
//Q1, Version "Christophe Mesman" rajout des joueurs" 6,7,8"
echo '<div style="margin:20px 1px;padding : 5px;background-color : #ffed00;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur6->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #ffed00;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur6->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #ffed00;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur6->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #ffed00;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur6->position.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : white;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur7->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : white;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur7->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : white;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur7->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : white;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur7->position.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #f39200;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"><b>'.$joueur8->pilote.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #f39200;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur8->marque.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #f39200;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur8->couleurVoit.'</b></div>';
echo '<div style="margin:20px 1px;padding : 5px;background-color : #f39200;height:50px;color:#1d1d1b;font:bold 20px Helvetica;"> <b>'.$joueur8->position.'</b></div>';
echo '</div>';
echo '<div style="width:700px;">';
echo '<p style="font:bold 20px Helvetica;text-align:center; color:green;">Le vainqueur de la course est '.$vainqueur.' avec la Team '.$teamVainqueur.'</p>';
echo '</div>';
?>
</body>
</html>
jordane45
Messages postés38314Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention24 novembre 20244 705 10 mars 2021 à 16:18
Pour traiter les questions de ton exercice, moi je serai passé .. soit par un array de joueurs.. soit, encore mieux, à une collection de joueurs.
jordane45
Messages postés38314Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention24 novembre 20244 705 10 mars 2021 à 14:59
Bonjour
Quelles sont les questions ? les trucs qui sont marqués en plein milieu de ton code html ??
Mais bon... Sur quoi bloques tu exactement ?
Qu'as tu essayé pour y répondre ?