Язык программирования Python

Курс IT-Академии Сухорукова

Декабрь 2019 - январь 2020

Этот курс закончился

Задание. Игра «21 палочка online»

Суть задания

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

Ваше приложение должно обрабатывать следующие 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.

Реализация

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

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

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