Расписание занятий

Понедельник 19:00 – 21:30
Среда 19:00 – 21:30
Суббота 10:00 – 15:00

Домашнее задание. Игра «21 палочка online»

27 октября 2018

Суть задания

Разработать онлайн-версию игры «21 палочка», оформив её как приложение Django, использующее пользовательские сессии.

Ваше приложение должно обрабатывать следующие URL:

  1. Корневая страница — сообщение с названием игры, правилами и ссылкой «Начать игру»
  2. start/ — начало игры, инициализация сессии, игровая страница
  3. take/N/ — ход пользователя, обработка хода, ответный ход, вывод этого всего добра на игровую страницу. Здесь N — это число палочек, которое берёт игрок, то есть, например, take/2/. Предусмотреть возможность ошибочного хода (игрок может ввести неправильный ход вручную).

Игровая страница

На игровой странице выводится следующая информация:

Игра «21 палочка»
Было палочек: 21
Вы взяли: 3, осталось: 18.
Я беру: 1.
Осталось палочек: 17
Ваш ход: беру 1 | беру 2 | беру 3

Начать сначала

Полужирный текст — это ссылки на соответствующие страницы (/take/1/, /take/2/, /take/3/ и /start/).

На самом первом игровом экране после старта нет сообщений «Было палочек: XX, вы взяли: X, осталось: XX, я беру: X», ведь это первый ход.

Когда игрок проигрывает, ему сообщается об этом и остаётся только ссылка на начало игры.

Примеры вёрстки страниц игры вы можете скачать отсюда, если хотите: 21_stick_online_templates.zip.

Реализация

Поскольку мы пока не можем хранить информацию на серверной стороне, задействуем механизм пользовательских сессий. В сессии будем хранить текущее количество палочек. Старт игры сбрасывает сессию.

Для того, чтобы сессии работали простейшим образом, через шифрованные cookies в браузере, нужно в файле settings.py проекта указать механизм работы сессий:

SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'

Развёртывание на сервер

Дополнительное задание: попробуйте заставить вашу игру работать на хостинге PythonAnywhere.com. Для этого можно воспользоваться вот этой инструкцией.