Newer
Older

G. Daryl M. OKOU
a validé
<?php
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
require_once 'PieceSquadro.php';
require_once 'PieceSquadroUI.php';
require_once 'SquadroUIGenerator.php'; // Inclusion de la classe d'en-tête et de pied de page
/**
* Classe SquadroUIGenerator
* Gère la génération des pages HTML pour l'application de jeu Squadro.
*/
class SquadroUIGenerator {
/**
* Génère une page HTML pour afficher les pièces disponibles à jouer pour le joueur actif.
*
* @param array $pieces Liste des pièces du joueur actif à afficher.
* @param int $x Coordonnée X de la case à jouer.
* @param int $y Coordonnée Y de la case à jouer.
* @return string Le code HTML de la page.
*/
public static function pageJouerPiece(array $pieces, int $x, int $y): string {
// Utilisation de la méthode d'entête de ton ami
$html = self::entete("Choisir une pièce à jouer");
// Contenu spécifique à la page "Jouer une pièce"
$html .= '<div class="container">
<h2 class="title">Choisissez une pièce à jouer</h2>';
// Afficher chaque pièce disponible pour le joueur
$html .= '<div class="buttons">';
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 .= '</div>'; // Fermeture des boutons
// Ajouter un formulaire pour soumettre le mouvement
$html .= '<form method="post" action="processMove.php">
<input type="hidden" name="x" value="' . $x . '">
<input type="hidden" name="y" value="' . $y . '">
<input type="submit" class="button is-primary" value="Confirmer le mouvement">
</form>';
// 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 .= '<div class="container">
<h2 class="title">Bienvenue dans le jeu Squadro</h2>
<p>Choisissez une option :</p>
<ul>
<li><a href="startGame.php" class="button is-link">Démarrer une nouvelle partie</a></li>
<li><a href="loadGame.php" class="button is-link">Charger une partie existante</a></li>
</ul>
</div>';
// 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 string $message Message à afficher à la fin du jeu (ex : "Vous avez gagné !").
* @return string Le code HTML de la page de fin de jeu.
*/
public static function pageFinDeJeu(string $message): 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 .= '<div class="container">
<h2 class="title">Partie terminée</h2>
<p>' . htmlspecialchars($message) . '</p>
<p><a href="index.php" class="button is-link">Retour à l\'accueil</a></p>
</div>';
// Fermeture de la page en utilisant la méthode pied() de ton ami
$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 {

G. Daryl M. OKOU
a validé
$entete = "<!DOCTYPE html>
<html lang=\"fr\">
<head>
<meta charset=\"utf-8\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">

G. Daryl M. OKOU
a validé
<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/bulma@1.0.2/css/bulma.min.css\">
</head>
<body>
<section class=\"hero is-link\">
<div class=\"hero-body has-text-centered\">
<p class=\"title is-spaced\"> Squadro </p>
<p class=\"subtitle\"> $title </p>

G. Daryl M. OKOU
a validé
</div>
</section>
";
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 {

G. Daryl M. OKOU
a validé
$pied = "</body>
</html>";
return $pied;
}
}
/*
$piecesActives = [PieceSquadro::initBlancEst(), PieceSquadro::initNoirSud()];
echo SquadroUIGenerator::pageJouerPiece($piecesActives, 3, 4);
*/
//echo SquadroUIGenerator::pageAccueil();
echo SquadroUIGenerator::pageFinDeJeu("Vous avez gagné !");

G. Daryl M. OKOU
a validé