84 lines
1.4 KiB
PHP
84 lines
1.4 KiB
PHP
<?php
|
|
function initializeGame()
|
|
{
|
|
// Une grille vide contient 9 cases valant 0.
|
|
$_SESSION['grid'] = array_fill(0, 9, 0);
|
|
$_SESSION['playerTurn'] = 1;
|
|
}
|
|
|
|
function nextPlayer($player)
|
|
{
|
|
return $player === 1 ? 2 : 1;
|
|
}
|
|
|
|
function isWinner($grid, $player)
|
|
{
|
|
$winStates = array(
|
|
array(0, 1, 2), array(3, 4, 5), array(6, 7, 8),
|
|
array(0, 3, 6), array(1, 4, 7), array(2, 5, 8),
|
|
array(0, 4, 8), array(2, 4, 6)
|
|
);
|
|
|
|
foreach ($winStates as $winState) {
|
|
if (
|
|
$grid[$winState[0]] == $player &&
|
|
$grid[$winState[1]] == $player &&
|
|
$grid[$winState[2]] == $player
|
|
) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function noWinner($grid)
|
|
{
|
|
for ($i = 0; $i < 9; $i++) {
|
|
if ($grid[$i] == 0) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function getWinner($grid)
|
|
{
|
|
if (isWinner($grid, 1)) {
|
|
return 1;
|
|
}
|
|
|
|
if (isWinner($grid, 2)) {
|
|
return 2;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
function displayGrid($grid, $isInteractive = true)
|
|
{
|
|
echo '<table class="morpion">';
|
|
for ($i = 0; $i < 3; $i++) {
|
|
echo '<tr>';
|
|
for ($j = 0; $j < 3; $j++) {
|
|
echo '<td>';
|
|
|
|
$pos = 3 * $i + $j;
|
|
if ($grid[$pos] == 0 && $isInteractive) {
|
|
echo "<a href='?pos=$pos'></a>";
|
|
}
|
|
if ($grid[$pos] == 1) {
|
|
echo '<i class="fa fa-times" aria-hidden="true"></i>';
|
|
}
|
|
if ($grid[$pos] == 2) {
|
|
echo '<i class="fa fa-circle-o" aria-hidden="true"></i>';
|
|
}
|
|
|
|
echo '</td>';
|
|
}
|
|
echo '</tr>';
|
|
}
|
|
echo '</table>';
|
|
}
|