Я тут между делом решил пару игр написать, начал с "крестики нолики", но немного подзавис на ней с изучением многопользовательности, пока изучал наткнулся на мысль, что могу сделать игру чтобы поиграть одному. самое яркое воспоминание это 2048, логика в ней довольно простая. по традиции решил начать писать ее для консоли. Я ее сделал немного проще, чем оригинал:
  1. добавляется цифра только в крайний ряд против направления сдвига, т.е. сдвинул вверх в нижний ряд добавилась цифра;
  2. добавляются только 2, в оригинале иногда еще и 4 добавляются, я решил не заморачиваться;
  3. в консольной игре ввод и вывод производится (не поверите!) через консоль, соответственно вывод должен быть в виде импровизированной таблицы, на что у меня уже есть опыт :) ввод изначально планировался цифрами, но потом я вспомнил большие задачи и приспособил KeyboardObserver, минус - шухер наступает при малейших манипуляциях с мышью, т.е. запустили приложение, и дальше только стрелками вниз-вверх-вправо-влево. Честно пообещал себе разобраться в вопросе, но пока не знаю когда, так что вот вашему вниманию продукт полуночного тыкания пальцами в клавиатуру.
По самой логике программы объяснять нечего, в главном методе отслеживаем кнопки и в зависимости от последней ставим нужный Direction, потом переходим к Перемещениям, и выполняем нужный метод. "Нужный метод" сначала двигает все занятые ячейки в нужном направлении, если есть куда двигать, потом проверяет совпадения по столбцам/строкам, если находит совпадения, то суммирует и двигает остаток столбца/строки. Потом отрисовывает поле заново и так в бесконечном цикле пока не проиграешь, или пока кот не пробежит по клавише мышки. Старался в коде сделать комментарии, чтобы потом было всем понятно (в том числе и мне). Ссылка на архив с игрой 2048 Console Edition Доп. инфо, приятнее глазу играть не в идее, а в консоли винды. для этого в скачанном архиве заходишь в папку 2048 и запускаешь батник с логичным названием RUN. но тут снова нужно жать только на клавиши со стрелками, иначе приложение не спрашивая закрывается. P.S. тут только БД надо прикрутить, потом фронтом уже заняться можно будет, я это сделаю в ближайшее время. P.P.S. на андроид тоже возможно напишу, но это пока очень далекое будущее, которое как известно лучше не загадывать :)