From 553b30bdcc3781350b1a5b7a387cbfea37ff9753 Mon Sep 17 00:00:00 2001 From: "JARNOUEN DE VILLARTAY Ulysse (SAFRAN AIRCRAFT ENGINES)" Date: Wed, 15 Apr 2026 16:06:48 +0200 Subject: [PATCH] tp4 ex2 --- R3.01/tp/tp4/ex2/helpers.php | 81 +++++++++++++++++++--------- R3.01/tp/tp4/ex2/index.php | 71 +++++++++++++++++++++--- R3.01/tp/tp4/ex2/views/tictactoe.php | 32 +++++++---- 3 files changed, 142 insertions(+), 42 deletions(-) diff --git a/R3.01/tp/tp4/ex2/helpers.php b/R3.01/tp/tp4/ex2/helpers.php index 211e12c..f733f64 100644 --- a/R3.01/tp/tp4/ex2/helpers.php +++ b/R3.01/tp/tp4/ex2/helpers.php @@ -1,54 +1,83 @@ '; - for ($i = 0; $i < 3; $i ++){ - echo ""; - for ($j = 0; $j < 3; $j ++){ + for ($i = 0; $i < 3; $i++) { + echo ''; + for ($j = 0; $j < 3; $j++) { + echo ''; - echo ""; - - $pos = 3*$i + $j; - if ($grid[$pos] == 0) + $pos = 3 * $i + $j; + if ($grid[$pos] == 0 && $isInteractive) { echo ""; - if ($grid[$pos] == 1) + } + if ($grid[$pos] == 1) { echo ''; - if ($grid[$pos] == 2) + } + if ($grid[$pos] == 2) { echo ''; + } - echo ""; + echo ''; } - echo ""; + echo ''; } - echo ""; + echo ''; } diff --git a/R3.01/tp/tp4/ex2/index.php b/R3.01/tp/tp4/ex2/index.php index 2c1717b..6222985 100644 --- a/R3.01/tp/tp4/ex2/index.php +++ b/R3.01/tp/tp4/ex2/index.php @@ -1,11 +1,70 @@ array('min_range' => 0, 'max_range' => 8)) + ); + + if ($pos === false || $pos === null) { + $message = 'Coup invalide.'; + } elseif ($grid[$pos] !== 0) { + $message = 'Cette case est déjà occupée.'; + } else { + // On enregistre le coup du joueur courant dans la grille. + $grid[$pos] = $playerTurn; + + if (isWinner($grid, $playerTurn)) { + $message = "Le joueur $playerTurn gagne la partie."; + } elseif (noWinner($grid)) { + $message = 'Match nul.'; + } else { + $playerTurn = nextPlayer($playerTurn); + } + + $_SESSION['grid'] = $grid; + $_SESSION['playerTurn'] = $playerTurn; + } + + $winner = getWinner($grid); + $isGameOver = $winner !== 0 || noWinner($grid); +} + +// Si la page est simplement rafraîchie, on recalcule un message cohérent +// à partir de l'état stocké en session. +if ($message === '') { + if ($winner !== 0) { + $message = "Le joueur $winner gagne la partie."; + } elseif (noWinner($grid)) { + $message = 'Match nul.'; + } +} + +include_once './views/tictactoe.php'; diff --git a/R3.01/tp/tp4/ex2/views/tictactoe.php b/R3.01/tp/tp4/ex2/views/tictactoe.php index 130bf00..8b16508 100644 --- a/R3.01/tp/tp4/ex2/views/tictactoe.php +++ b/R3.01/tp/tp4/ex2/views/tictactoe.php @@ -1,23 +1,35 @@ - + + + Tic Tac Toe + rel="stylesheet" + href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css" + /> -
-

Tic Tac Toe :

+

+ + Partie terminée + + Tic Tac Toe : joueur à vous de jouer + +

$message new game"; - ?> + if ($message != '') { + echo '
' . htmlspecialchars($message, ENT_QUOTES) . " nouvelle partie
"; + } else { + echo "

Recommencer la partie

"; + } + ?>