Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2014, 11:17
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

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

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

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

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

Последний раз редактировалось falkone, 17.10.2014 в 11:20.
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2014, 11:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от falkone
Как ограничить элементы по сетке, что бы они не вылазили при ходе.
Встречный вопрос - как осуществляется тот "ход"?
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2014, 11:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от falkone
Реализация передвижения всех "квадратов" которые уже есть на поле.
Всречный вопросы...
- Как они вообще должны двигаться?
- Какие на то есть "правила"?
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2014, 12:34
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

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

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

Логика простая, просто суммируем цифры пока в одном квадрате не выйдет число 2048 и тогда игрок выиграл.
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2014, 13:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

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

Или нужно выбрать одну фишку и двигать только ее на одну клетку?
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2014, 21:18
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

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

Или нужно выбрать одну фишку и двигать только ее на одну клетку?
Первый вариант. Для наглядности можете взглянуть на это видео
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2014, 23:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

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

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

Но сам в такое играть точно не стану. По мне так фигня какая-то...
Ответить с цитированием
  #8 (permalink)  
Старый 18.10.2014, 00:24
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

не с той ссылки начал
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)
Ответить с цитированием
  #9 (permalink)  
Старый 18.10.2014, 12:23
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

Сообщение от bes Посмотреть сообщение
не с той ссылки начал
https://github.com/gabrielecirulli/2048
сиди, изучай
За git спасибо, но в моем варианте лучше с нуля все делать и не подглядывать)
Ответить с цитированием
  #10 (permalink)  
Старый 18.10.2014, 14:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
js игра. div vs canvas Livace Общие вопросы Javascript 4 11.02.2014 11:17
Вывыод контента через JS inet_boy Элементы интерфейса 0 18.11.2013 03:00
Игра на JS (не работает) function Общие вопросы Javascript 2 26.03.2012 14:41
Игра на JS. Косяк с массивом treno1 Общие вопросы Javascript 0 08.06.2011 17:13
Дам 500 руб...нужна любая игра на JS с объяснением astra_89 Работа 5 31.05.2010 08:37