timurnav
21 уровень

2048 на JAVA

Статья из группы Архив info.javarush
Я тут между делом решил пару игр написать, начал с "крестики нолики", но немного подзавис на ней с изучением многопользовательности, пока изучал наткнулся на мысль, что могу сделать игру чтобы поиграть одному. самое яркое воспоминание это 2048, логика в ней довольно простая. по традиции решил начать писать ее для консоли. Я ее сделал немного проще, чем оригинал:
  1. добавляется цифра только в крайний ряд против направления сдвига, т.е. сдвинул вверх в нижний ряд добавилась цифра;
  2. добавляются только 2, в оригинале иногда еще и 4 добавляются, я решил не заморачиваться;
  3. в консольной игре ввод и вывод производится (не поверите!) через консоль, соответственно вывод должен быть в виде импровизированной таблицы, на что у меня уже есть опыт :) ввод изначально планировался цифрами, но потом я вспомнил большие задачи и приспособил KeyboardObserver, минус - шухер наступает при малейших манипуляциях с мышью, т.е. запустили приложение, и дальше только стрелками вниз-вверх-вправо-влево. Честно пообещал себе разобраться в вопросе, но пока не знаю когда, так что вот вашему вниманию продукт полуночного тыкания пальцами в клавиатуру.
По самой логике программы объяснять нечего, в главном методе отслеживаем кнопки и в зависимости от последней ставим нужный Direction, потом переходим к Перемещениям, и выполняем нужный метод. "Нужный метод" сначала двигает все занятые ячейки в нужном направлении, если есть куда двигать, потом проверяет совпадения по столбцам/строкам, если находит совпадения, то суммирует и двигает остаток столбца/строки. Потом отрисовывает поле заново и так в бесконечном цикле пока не проиграешь, или пока кот не пробежит по клавише мышки. Старался в коде сделать комментарии, чтобы потом было всем понятно (в том числе и мне). Ссылка на архив с игрой 2048 Console Edition Доп. инфо, приятнее глазу играть не в идее, а в консоли винды. для этого в скачанном архиве заходишь в папку 2048 и запускаешь батник с логичным названием RUN. но тут снова нужно жать только на клавиши со стрелками, иначе приложение не спрашивая закрывается. P.S. тут только БД надо прикрутить, потом фронтом уже заняться можно будет, я это сделаю в ближайшее время. P.P.S. на андроид тоже возможно напишу, но это пока очень далекое будущее, которое как известно лучше не загадывать :)
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
timurnav Уровень 21
26 апреля 2015
Сделал багфикс, добавил выбор размеров поля пользователем. никакого консольного ввода, только отслеживание нажатий на клавиатуре, только хард кор

спасибо, nicolas
timurnav Уровень 21
22 апреля 2015
уровень 34, уже наверно месяца два такой уровень. книжек много начинал, штук 20 в планшете валяется, но дочитал только Филисофию Джава. игру писал два вечера
AndreGold Уровень 28
22 апреля 2015
я извиняюсь за не скромный вопрос не по теме, вы сейчас на каком уровне, сколько книжек прочитали, и как долго писали игру.
Я понимаю, что намешал всего, но лично мне интересно почитать слова людей, которые в программировании продвинулись дальше чем я. Если вас не затруднит конечно