Giter VIP home page Giter VIP logo

tetris's Introduction

Механика игры "Тетрис"

1. Игровое поле и фигуры

Игровое поле - "стакан" размером 10 х 20 клеток. 7 видов фигур, каждая из четырех "кубиков", размер кубика 1х1 клетка:

  • "линия",
  • "кубик",
  • "треугольник",
  • "Г-образная фигура",
  • "L-образная фигура",
  • "S-образная фигура" ,
  • "г-образная фигура". Фигуры различаются по цветам.

2. Цели игры

Цель игры - набрать как можно больше очков, совмещая фигуры таким образом, чтобы "кубики" образовали горизонтальную линию (заполнили ряд). Заполненный ряд исчезает.

3. Игровой процесс

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

4. Условия игры и подсчет очков

Очки начисляются за заполненные ряды в зависимости от уровня и количества одновременно заполненных рядов:

Уровень 1 ряд 2 ряда 3 ряда 4 ряда
0 40 100 300 1200
1 80 200 600 2400
2 120 300 900 3600
9 400 1000 3000 12000
n 40 * (n + 1) 100 * (n + 1) 300 * (n + 1) 1200 * (n + 1)

Уровень увеличивается через каждые 10 заполненных рядов. Увеличение уровня означает умножение скорости падения фигур на 1.2

5. Управление

Управление движением фигур осуществляется

  • (для десктопной версии) стрелками клавиатуры + пробел либо кнопками WASD + пробел,
  • (для мобильной версии) контролами на экране, имитирующими стрелки и кнопку пробела.
    Игру можно поставить на паузу, в этом случае на экран выводится сообщение о том, что игра на паузе, и кнопка запуска игры.
    Можно начать новую игру. При нажатии на соответствующую кнопку на экран выводится сообщение "Завершить игру?", после подтверждения текущая игра завершается, статистика игрока отправляется в лидерборд, статистика обнуляется, "стакан" очищается, игра начинается с начала.

Стрелка вверх (клавиша W) - поворот фигуры на 90 гр по часовой стрелке;
Стрелки влево, вправо (клавиши A, D) - перемещение фигуры на одну клетку в заданном направлении (долгое нажатие - перемещение в заданном направлении до отпускания кнопки или касания края "стакана");
Стрелка вниз (клавиша S) - принудительное перемещение фигуры на одну клетку вниз (долгое нажатие - ускоренное падение);
Пробел - моментальное падение.

6. Стартовые условия

На старте у игрока есть пустой "стакан", информация о следующей фигуре, нулевая статистика по параметрам:

  • количество очков
  • уровень
  • количество линий Игра начинается с уровня 0 после нажатия на кнопку "начать игру".

7. Окончание игры

Игра заканчивается, когда фигура нижним краем "стоит" на других фигурах, а верхним краем касается или выходит за край "стакана" (т.е. "стакан заполнен"). Статистика игрока отдается в лидерборд, на экран выводится сообщение об окончании игры и предложение начать новую игру.

tetris's People

Contributors

romanrysev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.