PieceSquadroUI.php 2,82 ko
Newer Older
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
<?php

/**
 * Classe PieceSquadroUI
 * Génère le code HTML pour représenter les pièces et les cases du jeu Squadro.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
 */
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
class PieceSquadroUI {

    /**
     * Génère le bouton HTML pour un texte.
     *
     * @param string $texte Texte à afficher dans le bouton.
     * @return string Code HTML du bouton pour un texte.
     */
    public static function boutonTexte(string $texte): string {
        return '<button class="button has is-info is-medium is-square" disabled><span class="icon is-medium">' . $texte . '</span></button>';
    }


G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
    /**
     * Génère le bouton HTML pour une case vide.
     * 
     * @return string Code HTML du bouton pour une case vide.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
     */
    public static function boutonVide(): string {
        return '<button class="button has-background-grey-light is-medium is-square" disabled><span class="icon is-medium"></span></button>';
     * Génère le bouton HTML pour une case neutre.
     * 
     * @return string Code HTML du bouton pour une case neutre.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
     */
    public static function boutonNeutre(): string {
        return '<button class="button has-background-grey-darker is-medium is-square" disabled><span class="icon is-medium"></span></button>';
     * Génère le bouton HTML pour une pièce blanche.
     * 
     * @param int $x Coordonnée x de la pièce.
     * @param int $y Coordonnée y de la pièce.
     * @param PieceSquadro $piece L'instance de la pièce blanche.
     * @param bool $jouable Si la pièce est jouable ou non.
     * 
     * @return string Code HTML du bouton pour une pièce blanche.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
     */
    public static function boutonBlanc(int $x, int $y, PieceSquadro $piece, bool $jouable): string {
        $disabled = $jouable ? '' : 'disabled';
        $dir = ($piece->getDirection() === PieceSquadro::EST) ? "→" : "←";
        return '<button class="button has-background-white is-medium is-square has-text-dark" ' . $disabled . ' name="move" value="' . $x . ',' . $y . '"><span class="icon is-medium">' . $dir . '</span></button>';
     * Génère le bouton HTML pour une pièce noire.
     * 
     * @param int $x Coordonnée x de la pièce.
     * @param int $y Coordonnée y de la pièce.
     * @param PieceSquadro $piece L'instance de la pièce noire.
     * @param bool $jouable Si la pièce est jouable ou non.
     * 
     * @return string Code HTML du bouton pour une pièce noire.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé
     */
    public static function boutonNoir(int $x, int $y, PieceSquadro $piece, bool $jouable): string {
        $disabled = $jouable ? '' : 'disabled';
        $dir = ($piece->getDirection() === PieceSquadro::NORD) ? "↑" : "↓";
        return '<button class="button has-background-black is-medium is-square has-text-white" ' . $disabled . ' name="move" value="' . $x . ',' . $y . '"><span class="icon is-medium">' . $dir . '</span></button>';