L3 Info : PHP et Applications Web
 
◃  Ch. 3 Un coup de poker  ▹
 

Classe PokerUI

  • La classe PokerUI permet de produire les composants nécessaires pour interagir avec l'utilisateur
    Diagramme UML de la classe PokerUI
    /**
     * Classe PokerUI
     *
     * @author Dominique Fournier
     * @date 2017-2022
     * @version 1.3 compatible PHP7.4
     */
    
    include_once "JeuCartes.php";
    include_once "Main.php";
    
    class PokerUI {
    
      /**
       * @access private
       * @var JeuCartes $paquetCartes
       */
      private JeuCartes $paquetCartes;
    
      /**
       * @access private
       * @var Main $main
       */
      private Main $main;
    
      /**
       * @access public
       */
      public function __construct(){
        $this->paquetCartes = new JeuCartes();
        $this->paquetCartes->melangePaquet();
        $this->main = new Main();
        for($i=0;$i<5;$i++) {
            $this->main->addCarte($this->paquetCartes->distribueCarte());
        }
        $this->main->triMain();
      }
    
      /**
       * @access public
       * @param array $indexes les indices des cartes à renouveler
       * @return void
       */
      public function renouvelleMain(array $indexes): void {
        foreach ($indexes as $index) {
          $c = $this->main->getCarte($index);
          $this->main->setCarte($index,$this->paquetCartes->distribueCarte());
          $this->paquetCartes->remiseCarte($c);
        }
        $this->main->triMain();
      }
    
      /**
       * @access public
       * @return void
       */
      public function affichePaquetCarte():void {
        $bjc = new BoiteJeuCartes($this->paquetCartes);
        echo $bjc;
      }
    
      /**
       * @access public
       * @return void
       */
      public function afficheMain(): void {
        echo new BoiteMain($this->main);
      }
    
      /**
       * @access public
       * @return void
       */
      public function afficheFormulaireMain(): void
      {
          $form = "<form action='" . $_SERVER['PHP_SELF'] . "' method='get'>
    <div class='main'><fieldset><legend>Formulaire de changement de cartes</legend>";
    
          for ($i = 0; $i < 5; $i++) {
              $form .= "<input type='checkbox' name='main[]' value='$i' />";
              $form .= new BoiteCarte($this->main->getCarte($i))."\n";
          }
          $form .= "<input type='submit' value='changer' name='action' />\n
    <input type='submit' value='finir' name='action' />\n
    <input type='submit' value='raz' name='action' />\n
    </div></form>\n";
          echo $form;
      }
    
      /**
       * @static
       * @access public
       * @retrun void
       */
      public static function afficheMessage($message): void {
        echo "<h3>$message</h3>\n";
      }
    
      /**
       * @access public
       * @return void
       */
      public static function afficheLienRecommencer(): void {
        echo "<p><a href='".$_SERVER['PHP_SELF']."'>Recommencer ?</a></p>\n";
      }
    
    }