traiteActionSquadro.php 4,1 ko
Newer Older
<?php
require_once 'ActionSquadro.php';
require_once 'SquadroUIGenerator.php';
require_once 'env/db.php';
require_once 'PDOSquadro.php';
require_once 'PartieSquadro.php';
require_once 'JoueurSquadro.php';
session_start();

if (!isset($_POST['action'])) {
    $_SESSION['etat'] = 'erreur';
} else {
    $action = $_POST['action'];
    switch ($action) {
Mathéo Beaudouin's avatar
Mathéo Beaudouin a validé
        case 'choisirPiece':
                $_SESSION['etat'] = 'erreur';
            } else {
                $_SESSION['etat'] = 'confirmationPiece';
                $_SESSION['x'] = $_POST['move'][0];
                $_SESSION['y'] = $_POST['move'][2];
            }
            break;
                $_SESSION['etat'] = 'erreur';
            } else {
                // Déplacement de la pièce
                $verifDeplacementPiece = $actionSquadro->jouePiece($_SESSION['x'], $_SESSION['y']);
                $couleur = ($_SESSION['joueur'] == 'Blanc')?PieceSquadro::BLANC:PieceSquadro::NOIR;
                    $_SESSION['etat'] = 'victoire';
                    $_SESSION['gagnant'] = $_SESSION['joueur'];
                } else {
                    // Changer de joueur s'il y a déplacement de pièce
                    if($verifDeplacementPiece)
                        $_SESSION['joueur'] = ($_SESSION['joueur'] === 'Blanc') ? 'Noir' : 'Blanc';
                    $_SESSION['etat'] = 'choixPiece';
                }

                // Oublier les coordonnées de la pièce déplacée
                unset($_SESSION['x'], $_SESSION['y']);
            }
            break;
        case 'annulerChoix':
                $_SESSION['etat'] = 'erreur';
            } else {
                $_SESSION['etat'] = 'choixPiece';
                unset($_SESSION['x'], $_SESSION['y']);
            }
            break;
        case 'rejouer':
            if ($_SESSION['etat'] != 'victoire' && $_SESSION['etat'] != 'erreur') {
                $_SESSION['etat'] = 'erreur';
            }else{
                session_unset();
            PDOSquadro::initPDO($_ENV['sgbd'], $_ENV['host'], $_ENV['database'], $_ENV['user'], $_ENV['password']);
            $partie = new PartieSquadro($_SESSION['player']);
            $json = $partie->toJson();
            PDOSquadro::createPartieSquadro($_SESSION['player']->getNomJoueur(), $json);
            $_SESSION['etat'] = 'home';
            $_SESSION['partieCreer'] = true;
            PDOSquadro::initPDO($_ENV['sgbd'], $_ENV['host'], $_ENV['database'], $_ENV['user'], $_ENV['password']);

            $gameId = intval($_POST['gameId']);
            $game = PDOSquadro::getPartieSquadroById($gameId);
            if ($game) {
                // Vérifier si la partie est déjà pleine
                if (!empty($game['playertwo'])) {
                    $_SESSION['etat'] = 'erreur';
                    $_SESSION['message'] = 'Cette partie est déjà complète.';
                } else {
                    // Ajouter le joueur à la partie
                    PDOSquadro::addPlayerToPartieSquadro($_SESSION['player']->getNomJoueur(), $gameId);

                    // Mettre à jour l'état de la session
                    $_SESSION['gameId'] = $gameId;
                    $_SESSION['etat'] = 'choixPiece';
                }
            } else {
                $_SESSION['etat'] = 'erreur';
                $_SESSION['message'] = 'Partie introuvable.';
            }
header('Location: index.php');