Теперь я перейду к написанию логики игры на PHP. Для начала нам понадобится отслеживать текущего игрока и отрисовывать его ходы на игровом поле.php
session_start;
// Инициализируем массив для хранения игрового поля
if (!isset($_SESSION['field'])) {
$_SESSION['field'] array_fill(0, 9, '');
}
// Определяем текущего игрока
if (!isset($_SESSION['player'])) {
$_SESSION['player'] 'X';
} else {
$_SESSION['player'] ($_SESSION['player'] 'X') ? 'O' ⁚ 'X';
}
// Получаем индекс ячейки, в которую был сделан ход
$index $_POST['index'];
// Проверяем, что ячейка пуста
if ($_SESSION['field'][$index] '') {
$_SESSION['field'][$index] $_SESSION['player'];
}
// Проверяем наличие победителя
if (checkWinner($_SESSION['field']) 'X') {
echo ″Победил игрок X!″;
} elseif (checkWinner($_SESSION['field']) 'O') {
echo ″Победил игрок O!″;
} elseif (checkWinner($_SESSION['field']) 'draw') {
echo ″Ничья!″;
}
// Функция для проверки победителя
function checkWinner($field)
{
$winningCombinations [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]
];
foreach ($winningCombinations as $combination) {
if ($field[$combination[0]] ! » nn $field[$combination[0]] $field[$combination[1]] nn $field[$combination[1]] $field[$combination[2]]) {
return $field[$combination[0]];
}
}
if (array_search(», $field) false) {
return ‘draw’;
}
return null;
}
?>
Теперь необходимо добавить JavaScript код для отображения ходов игроков, обработки кликов по ячейкам и отправки данных на сервер.
Готово! Теперь мы имеем полноценную игру ″Крестики-Нолики″ на PHP, которую можно играть в браузере. Можно разместить этот код на сервере и начать настоящее соревнование с друзьями. Удачи!