Skip to content

Latest commit

 

History

History
72 lines (56 loc) · 6.85 KB

File metadata and controls

72 lines (56 loc) · 6.85 KB

Модуль 2: Разработка на стороне клиента

Содержание

Данный тестовый проект состоит из следующих файлов:

  1. task.md – Задание
  2. figures.json – JSON-массив с фигурами
  3. index.html - Верстка Экрана Входа
  4. game.html - Верстка Экрана Игры
  5. results.html - Верстка Экрана Результатов

Введение

К вам обратилась компания по разработке игр для веб-сайтов. Компания просит помочь в разработке веб-игры. Вам предоставляется вся необходимая верстка.

Ваша задача – только клиентское программирование.

Время на выполнение: 1,5ч.

Описание проекта и задач - Тетрис

Экран входа

  1. При переходе на сайт с игрой должен быть отображен экран входа.
  2. На экране входа распологается поле, где пользователь может ввести свое имя и набор из 4 фигур, которые будут выпадать первые.
  3. Набор из 4 фигур выбирается из всех фигур, полученных из json файла с помощью запроса.
  4. После выбора фигур и ввода имени, пользователь может нажать на кнопку "Начать игру", либо с помощью клавиши "Enter".
  5. Имя пользователя может состоять только из латинских букв верхнего и нижнего регистра, знака дефиса, подчеркивания и цифр.
  6. Пока не выбраны 4 фигуры и/или не введено имя пользователя, а также если имя пользователя не введено корректно, кнопка "Начать игру" должна находится в отключенном состоянии.
  7. После выполнения пункта 4, пользователь должен перейти на Игровой экран.

Игровой экран

  1. На игровом экране должна отображаться следующая информация:
    1. Имя, введенное пользователем
    2. Текущее время в системе в формате чч:мм:сс
    3. Время прошедшее с начала игры в формате мм:сс
    4. Следующие 3 -фигуры появляющиеся в игре
    5. Количество баллов, полученных игроком в игре, в начале равно нулю.
  2. Игровое поле представляет собой стакан Тетриса, в который фигуры падают в направлении Слева-Вправо.
  3. Игрок может контролировать падение фигуры стрелками и/или пробелом:
    1. Стрелки Вверх-Вниз сдвигают фигуру в соответствующем направлении
    2. Нажатие пробела фигура падает на дно стакана мгновено, и происходит переход к следующей фигуре
    3. Стрелкой Вправо фигура начинает падать в стакан в 2 раза быстрее.
    4. Стрелкой Влево происходит поворот фигуры по часовой стрелке.
  4. В процессе игры, каждые 3 секунды, фигура падает в стакан, смещаясь на одну клетку.
  5. Если в следующее падение фигура выходит за игровой экран или пересекается с предыдущими фигурами, то падение не происходит.
  6. В случае, когда падение не произошло фигура должна зафиксироваться, в Слева стакана должна появится следующая фигура.
  7. Если в Слева стакана не нашлось места, где разместить фигуру, стакан считается заполненым, а игра окончена.
  8. Если упавшие фигуры складывают непрерывную линию(-ии) перпедикулярно линии падения во всю ширину стакана, то линия уничтожается, все фигуры смещаються в сторону падения, а игроку дается 1 балл.
  9. Задача игрока избежать заполнения стакана как можно дольше, и набрать как можно больше очков.
  10. Должна быть возможность поставить игру на паузу нажав кнопку ESC.
  11. Повторное нажатие должно продолжить игру.
  12. Во время паузы все интерактивные действия (анимация, секундомер, фрукты, корзина) должны быть приостановлены.

Экран с результатами

  1. На экране с результатами необходимо отобразить статистику игры:
    1. Время, которое игрок продержался в игре
    2. Количество набранных баллов
    3. Количество использованных фигур каждого типа
  2. На экране с результатами есть кнопка «Играть сначала» при клике, на которую игра должна перейти на "Экран входа".
  3. При переходе на экран входа, имя предыдущего игрока должно сохранятся

Инструкции для участника

  1. Ваша работа должна быть доступна по адресу: https://std2.gramend.ru/ws/feb/module2/,
  2. Вы можете использовать библиотеку jQuery.
  3. Для публикации работы, файлы игры нужно разместить в директории /home/std2/feb/module2/.
  4. Логины и пароли должны быть предоставлены заранее.