Главная » Статьи » TicTacToe на РНР

Урок 3. TicTacToe на PHP. Начать и закончить

Теперь займемся вспомогательными функциями. Нам надо создать вот такие функции:

StartGame() – начинает игру.

EndGame() – заканчивает игру.

DrawBoard() – рисует поле.

CheckWin() – проверяет выигрыш игроков.

CheckFull() – проверяет заполнилось ли поле.

ComputerRandomMove() – случайный ход компьютера.

ComputerMove() – ход компьютера

Сегодня мы займемся первыми двумя функциями – StartGame и EndGame, эти функции контролируют переменные сессии. StartGame: создает переменные сессии и изменяет состояние на «игра». EndGame: уничтожает переменные и активную сессию.

  1. function StartGame()
  2. {
  3. global $gGameState;
  4. global $gBoard;
  5. if($gGameState == GAME_START)
  6. {
  7. $gGameState = GAME_PLAY;
  8. }
  9. // use $_SESSION instead of session_register due to security issues
  10. session_start();
  11. $turn = $_SESSION[‘turn’];
  12. if(!isset($turn))
  13. {
  14. $turn = 1;
  15. $gBoard = array("”,””,””,””,””,””,””,””,””);
  16. $_SESSION[‘gGameState’] = $gGameState;
  17. $_SESSION[‘gBoard’] = $gBoard;
  18. $_SESSION[‘gDifficulty’] = $gDifficulty;
  19. $_SESSION[‘turn’] = $turn;
  20. }
  21. // Retrieve the board state
  22. $gBoard = $_SESSION[‘gBoard’];
  23. // Get the difficulty level
  24. $gDifficulty = $_SESSION[‘gDifficulty’];
  25. }
  26. function EndGame()
  27. {
  28. global $gGameState;
  29. global $gBoard;
  30. $gGameState = GAME_OVER;
  31. unset($gBoard);
  32. unset($gGameState);
  33. unset($turn);
  34. session_destroy();
  35. }

Первые строки функции StartGame говорит, какие глобальные переменные мы будем использовать. Когда функция меняет состояние игры и запускает сессию, создаётся новый файл в корневой директории игры, потом после старта сессии, проверяет доступность $turn. Если доступен, то функция создает новые переменные сессии, если нет, создает массив для поля, переменную сессии для сохранения состояния игры, переменную для состояния поля и, наконец, устанавливает значение $turn.

EndGame использует те же глобальные переменные, что и StartGame. Функция меняет состояние игры на «конец». После того как состояние игры поменялось, разрушает все переменные и уничтожает сессию. Вот такая безжалостная функция (примечание переводчика).

Вы можете скачать скрипт, в котором соблюдены все отступы.  


Категория: TicTacToe на РНР | Добавил: Шаке (29.03.2012)
Просмотров: 993 | Комментарии: 1 | Теги: tictactoe, крестики нолики, unset, php, session_destroy
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
/>meta http-equiv=