Домашнее задание. Игра «21 палочка online»
27 октября 2018
Суть задания
Разработать онлайн-версию игры «21 палочка», оформив её как приложение Django, использующее пользовательские сессии.
Ваше приложение должно обрабатывать следующие URL:
- Корневая страница — сообщение с названием игры, правилами и ссылкой «Начать игру»
start/
— начало игры, инициализация сессии, игровая страница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. Для этого можно воспользоваться вот этой инструкцией.