' . $joueur . ' joue

'; // // Afficher chaque pièce disponible pour le joueur // $html .= '
'; // foreach ($pieces as $piece) { // // Vérifier si la pièce est jouable // $jouable = true; // On suppose que toutes les pièces sont jouables ici, à adapter selon la logique du jeu // // if ($piece->getCouleur() === PieceSquadro::BLANC) { // // Ajouter le bouton pour la pièce blanche // $html .= PieceSquadroUI::boutonBlanc($x, $y, $piece, $jouable); // } elseif ($piece->getCouleur() === PieceSquadro::NOIR) { // // Ajouter le bouton pour la pièce noire // $html .= PieceSquadroUI::boutonNoir($x, $y, $piece, $jouable); // } // } // $html .= '
'; // Fermeture des boutons // // // Ajouter un formulaire pour soumettre le mouvement // $html .= '
// // // //
'; $html .= SquadroUIGenerator::plateauDeJeu($plateau, $joueur); // Fermeture de la page en utilisant la méthode pied() de ton ami $html .= self::pied(); return $html; } /** * Génère la page d'accueil du jeu. * * @return string Le code HTML de la page d'accueil. */ public static function pageAccueil(): string { // Utilisation de la méthode d'entête de ton ami $html = self::entete("Bienvenue dans le jeu Squadro"); // Contenu spécifique à la page d'accueil $html .= '

Vous jouez avec quelles pièces?

'; // Fermeture de la page en utilisant la méthode pied() de ton ami $html .= self::pied(); return $html; } /** * Génère la page de fin de jeu. * * @param PlateauSquadro $plateau * @param String $joueur * @return string Le code HTML de la page de fin de jeu. */ public static function pageFinDeJeu(PlateauSquadro $plateau, string $joueur): string { // Utilisation de la méthode d'entête de ton ami $html = self::entete("Fin de la Partie"); // Contenu spécifique à la page de fin de jeu $html .= '

' . $joueur . ' a gagné

Retour à l\'accueil

'; $html .= self::plateauDeJeu($plateau, $joueur); // Fermeture de la page en utilisant la méthode pied() de ton ami $html .= self::pied(); return $html; } /** * Génère la page de confirmation de mouvement avec un formulaire. * * @param int $x La coordonnée x de la pièce sélectionnée. * @param int $y La coordonnée y de la pièce sélectionnée. * @return string Le code HTML de la page de confirmation de mouvement. */ public static function pageConfirmerMouvement(int $x, int $y): string { // Générer l'entête de la page $html = self::entete("Confirmer le mouvement"); // Contenu de la page avec un formulaire pour confirmer le déplacement $html .= '

Confirmer le mouvement

Vous avez choisi de déplacer la pièce située en (' . $x . ', ' . $y . ').

Annuler
'; // Ajouter le pied de page $html .= self::pied(); return $html; } /** * Méthode pour générer l'en-tête HTML. * Utilisée par toutes les pages pour inclure le début de la structure HTML. * * @param string $title Titre de la page. * @return string Le code HTML de l'en-tête. */ public static function entete(string $title): string { $entete = ' Squadro '; return $entete; } /** * Méthode pour générer le pied de page HTML. * Utilisée par toutes les pages pour inclure la fin de la structure HTML. * * @return string Le code HTML du pied de page. */ public static function pied(): string { $pied = " "; return $pied; } /** * Génère le plateau de jeu avec des boutons liés à des formulaires. * * @param PlateauSquadro $plateau L'état actuel du plateau. * @param string $joueur Le joueur actif ("Blanc" ou "Noir"). * @return string Le code HTML du plateau de jeu. */ public static function plateauDeJeu(PlateauSquadro $plateau, string $joueur): string { $jouableBlanc = $joueur == "Blanc"; $jouableNoir = !$jouableBlanc; $html = '

'; $html .= ''; for ($i = 0; $i < 9; $i++) { $html .= ''; for ($j = 0; $j < 9; $j++) { $html .= ''; } $html .= ''; } $html .= '
'; // Coins du plateau if (($i == 0 || $i == 8) && ($j == 0 || $j == 8)) { $html .= PieceSquadroUI::boutonTexte(''); } // Indicateurs des mouvements noirs (haut et bas du plateau) else if ($i == 0) { $html .= PieceSquadroUI::boutonTexte(($j > 1 && $j < 7) ? PlateauSquadro::NOIR_V_RETOUR[$j - 1] : ''); } else if ($i == 8) { $html .= PieceSquadroUI::boutonTexte(($j > 1 && $j < 7) ? PlateauSquadro::NOIR_V_ALLER[$j - 1] : ''); } // Indicateurs des mouvements blancs (gauche et droite du plateau) else if ($j == 0) { $html .= PieceSquadroUI::boutonTexte(($i > 1 && $i < 7) ? PlateauSquadro::BLANC_V_ALLER[$i - 1] : ''); } else if ($j == 8) { $html .= PieceSquadroUI::boutonTexte(($i > 1 && $i < 7) ? PlateauSquadro::BLANC_V_RETOUR[$i - 1] : ''); } // Cases jouables avec des pièces else { $piece = $plateau->getPiece($i - 1, $j - 1); $html .= '
'; $html .= ''; $html .= ''; $html .= ''; if ($piece->getCouleur() == PieceSquadro::VIDE) { $html .= PieceSquadroUI::boutonVide(); } else if ($piece->getCouleur() == PieceSquadro::NEUTRE) { $html .= PieceSquadroUI::boutonNeutre(); } else if ($piece->getCouleur() == PieceSquadro::BLANC) { $html .= PieceSquadroUI::boutonBlanc($i - 1, $j - 1, $piece, $jouableBlanc); } else if ($piece->getCouleur() == PieceSquadro::NOIR) { $html .= PieceSquadroUI::boutonNoir($i - 1, $j - 1, $piece, $jouableNoir); } $html .= '
'; // Fermeture du formulaire } $html .= '
'; return $html; } }