Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Игра 2048 на JS (https://javascript.ru/forum/events/50928-igra-2048-na-js.html)

falkone 17.10.2014 11:17

Игра 2048 на JS
 
В продолжении изучения JS и повышение знаний хочу реализовть игру "2048"

Для первой версии достаточно самых базовых функций игры. Но возник ряд вопросов, которые хочу уточнить, что бы избежать "глупых" ошибок и мучений.

1. Как ограничить элементы по сетке, что бы они не вылазили при ходе.
2. Реализация передвижения всех "квадратов" которые уже есть на поле.

Возможно есть советы из личного опыта?

ksa 17.10.2014 11:56

Цитата:

Сообщение от falkone
Как ограничить элементы по сетке, что бы они не вылазили при ходе.

Встречный вопрос - как осуществляется тот "ход"?

ksa 17.10.2014 11:57

Цитата:

Сообщение от falkone
Реализация передвижения всех "квадратов" которые уже есть на поле.

Всречный вопросы...
- Как они вообще должны двигаться?
- Какие на то есть "правила"?

falkone 17.10.2014 12:34

Цитата:

Сообщение от ksa (Сообщение 336175)
Встречный вопрос - как осуществляется тот "ход"?

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

Всего есть 4 движения: вверх, вниз, влево, вправо. При этих движениях просто все элементы сдвигаются в соответствующую сторону. При встрече элементов (цифр) идет проверка на равенство номиналов, если равны тогда сумма, нет просто ничего не делают. Ну и при движениях вверх или вниз в рандомном месте пустых ячеек появляется новый квадрат с цифрой "2".

Логика простая, просто суммируем цифры пока в одном квадрате не выйдет число 2048 и тогда игрок выиграл.

ksa 17.10.2014 13:52

Не совсем понял про "движение"...
Это как "на доске лежат фишки с циферками", а игрок может наклонять доску влево, вправо, от себя, на себя... И фишки "скатываются" по своим рядам или колонкам?

Или нужно выбрать одну фишку и двигать только ее на одну клетку?

falkone 17.10.2014 21:18

Цитата:

Сообщение от ksa (Сообщение 336201)
Не совсем понял про "движение"...
Это как "на доске лежат фишки с циферками", а игрок может наклонять доску влево, вправо, от себя, на себя... И фишки "скатываются" по своим рядам или колонкам?

Или нужно выбрать одну фишку и двигать только ее на одну клетку?

Первый вариант. Для наглядности можете взглянуть на это видео

ksa 17.10.2014 23:09

Цитата:

Сообщение от falkone
Для наглядности можете взглянуть на это видео

Вроде понятно... :)

Проверка на "неуход с поля" стандартная... Там всего 2 "типа" проверок:
- по строкам
- по столбцам
И 2 "вида":
- >=1
- <=N

Но сам в такое играть точно не стану. :D По мне так фигня какая-то...

bes 18.10.2014 00:24

не с той ссылки начал
https://ru.wikipedia.org/wiki/2048_(...3%D1%80%D0%B0)
оттуда плавно на
https://github.com/gabrielecirulli/2048
сиди, изучай :)

PS: косячок обнаружился при превращении адреса в ссылку: [/url] встаёт перед скобкой )
https://ru.wikipedia.org/wiki/2048_(...B3%D1%80%D0%B0)

falkone 18.10.2014 12:23

Цитата:

Сообщение от bes (Сообщение 336295)
не с той ссылки начал
https://github.com/gabrielecirulli/2048
сиди, изучай :)

За git спасибо, но в моем варианте лучше с нуля все делать и не подглядывать)

bes 18.10.2014 14:32

Цитата:

Сообщение от falkone
но в моем варианте лучше с нуля все делать и не подглядывать)

тогда обращение
Цитата:

Сообщение от falkone
Но возник ряд вопросов, которые хочу уточнить, что бы избежать "глупых" ошибок и мучений.

неуместно ;)


Часовой пояс GMT +3, время: 17:59.