Match3

Программирование

Блог

Игра в стиле match3 на форке SFML с поддержкой Emscripten для запуска в браузере. Исходный код можно посмотреть здесь. В саму игру можно поиграть на этом сайте по ссылке. Поддерживаемое разрешение экрана: 1920:1080

Демо

Техническое задание

  1. При запуске игры открывается Главное Меню, в котором есть единственная кнопка Play.
  2. При нажатии на Play открывается Игровой Экран.
  3. Игровой Экран представляет из себя поле 8x8 квадратных клеток.
  4. В каждой клетке находится по одному элементу.
  5. Существуют пять разновидностей элементов, представляющих из себя разноцветные геометрические фигуры (например, квадраты или круги).
  6. Элементы размещаются в клетках случайным образом.
  7. Если на поле где-то стоят 3 или более элементов в ряд, элементы исчезают. На свободные места опускаются элементы, котороые находятся выше. Если выше элементов нет, то элементы просто появляются.
  8. Игрок кликом мышки выделяет любой элемент на поле.
  9. Выделенный элемент должен визуально отличаться от остальных (крутиться, подпрыгивать, сменить цвет, светиться, либо любым другим образом).
  10. Вторым кликом мышки игрок выделяет второй элемент. Если это соседний по горизонтали или вертикали элемент, то элементы меняются местами. Если не соседний - выделение сбрасывается. Если смена мест элементов не привела к исчезновению хотя бы одного из них, элементы меняются местами обратно.
  11. Все перемещения элементов должны быть анимированы.
  12. За каждый исчезнувший элемент игрок получает очки. Количество набранных очков должно быть видно на Игровом Экране.
  13. Игроку даётся 60 секунд на игру. По истечении этого времени игра заканчивается. На Игровом Экране должно быть видно сколько времени осталось.
  14. По завершению игры должно появиться сообщение «Game Over», с единственной кнопкой Ok. При нажатии на Ok игрок попадёт в Главное Меню.
  15. Комбинация из четырёх элементов в ряд приводит к образованию бонуса Line.
  16. Бонус Line образуется вместо одного из элементов. Вместо того, который был перемещён последним.
  17. Line бонус имеет цвет такой же, как цвет элементов, участвовавших в матче.
  18. Line бонус может иметь либо вертикальное, либо горизонтальное направление.
  19. В случае, если Line бонус участвует в матче, он срабатывает: элемент разрушается, и из него в противоположных направлениях, зависящих от направления бонуса, вылетают два Разрушителя, каждый из которых летит прямо, пока не долетит до края игрового поля.
  20. Если над элементом летит Разрушитель, элемент уничтожается.
  21. Все перемещения Разрушителей должны быть анимированы.
  22. Если Разрушитель пролетает над другим бонусом, бонус срабатывает.
  23. Комбинация из 5 или более элементов в ряд приводит к образованию бонуса Bomb.
  24. Бонус Bomb образуется вместо одного из элементов. Вместо того, который был перемещён последним.
  25. Пересечение горизонтальной и вертикальной комбинаций из трёх и более элементов каждая приводит к образованию бонуса Bomb на пересечении.
  26. Бонус Bomb имеет такой же цвет, как цвет элементов, участвовавших в матче.
  27. В случае, если бонус Bomb участвует в матче, он срабатывает: элемент разрушается, и через 250 мс разрушаются все элементы вокруг него в квадрате 3х3 с центром в том месте, где взорвался бонус.
  28. Если во взрывающейся области оказался другой бонус, он срабатывает.

Блок-схема хода