Логика игры мне понятна, мне трудно понять - как написать игру с нуля на JavaScript.
Интересуюсь в целях обучения программированию.
Вот на момент, когда фигура появляется в "стакане" и в нём уже лежат некоторые фигуры, образовав какой-то рельеф - как достигается вращение падающей фигуры? Возможные формы заданы заранее? Как осуществляется оценка - до какого слоя упадёт фигура и где зацепится?
Оценку заполнения слоя думаю легко производить - после момента "всё, упала" смотреть по всему стакану на предмет заполненных уровней.
Примечание:
Павел Иванович, не помню чтобы я учл кого-нибудь программированию. Разве что мелочи какие-нибудь.
Поворот полигона в SVG, конечно можно написать на JavaScript, но я намереваюсь сделать всё буквами.
виндовсами не засоряйте эфир. Я отказался от виндовсов больше трёх лет назад и, надеюсь, никогда не возьмусь за эту мерзость, тем более за её API.
Предварительный итог. Варианты:
1. программный поворот при каждом случае (спасибо за подсказку про область вращения фигуры!)
2. предвычисленные варианты вращения
Очевидно, что взять следующий вариант - по часовой или против - быстрее, чем каждый раз поворачивать.
Осталось понять - как вычислить - хватает-ли места на поворот, можно-ли повернуть, не задев окружающие зафиксированные блоки и собственно есть-ли место для падения вниз.
Начнём с последнего - тут можно просто посмотреть на клетки под каждым из нижних квадратов фигуры - если все пусты - падаем.
А вот с оценкой пространства для поворота - сложнее.
Примечание:
Я догадался как оценивать наличие места для поворота. Надо просто наложить на фигуру следующий её вариант и, если он вписывается в пустые клеточки, а "на пути" поворота не было препятствий (отдельная сетка для оценки), то осуществляем поворот.
Undetected: именно в поле "квадратов" (символьных, например буквами "О") и делается в JavaScript. Выберу ваш ответ "лучшим", т.к. он полнее, чем у Crazyzubr.
Crazyzubr ваш ответ тоже ведёт к пониманию.
Спасибо, товарищи, помогли!
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.