Petite questions pour adapter mon code [Résolu]

Signaler
Messages postés
60
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
10 mars 2021
-
Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
-
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>

3 réponses

Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Pour traiter les questions de ton exercice, moi je serai passé .. soit par un array de joueurs.. soit, encore mieux, à une collection de joueurs.

Pour faire une collection, il faut créer une class et c'est elle qui gèrera tes joueurs.
https://odan.github.io/2019/08/30/creating-a-strictly-typed-collection-of-objects-in-php.html

Tu pourrais aussi compter le nombre de fois que tu as instancié ta class voiture histoire de lui attribuer automatiquement les bonne couleur (via une variable private de type array dans la class)
http://www.learningaboutelectronics.com/Articles/How-to-count-the-number-of-objects-in-a-class-in-PHP.php

Enfin bon, ne sachant pas ce que vous avez étudié ou non ... il me sera difficile de te donner LA réponse attendue par ton prof.


Messages postés
32942
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
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 ?

A noter que : https://www.commentcamarche.net/faq/10925-demander-de-l-aide-pour-vos-exercices-sur-ccm



Messages postés
60
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
10 mars 2021

ce sont effevement les questions qui sont dans le code HTML.

j'ai essayer tellement de chose.

des boucles des if

mais le hic c'est que je ne sais jamais comment tout placer en faite .