![image](https://habrastorage.org/getpro/habr/post_images/0c8/756/f25/0c8756f251c7062df23fb9b598282270.jpg)
В нашем клубе уже было описание игры 2048. Признаюсь, с первого раза игра мне не понравилась. Однако после прочтения следующей статьи, с подсказкой игровой стратегии, все изменилось. Я уверенно установил приложение 2048 на телефон и несколько раз сыграл. Родив через пару-тройку часов блок 8192, я затосковал и снес игру, решив сделать свой вариант. Вариант 1) нескучный и 2) для тупых.
Судя по отзывам приятелей и личному опыту, цель была достигнута. Приятелям мой вариант показался 1) нескучным, а для меня — 2) самый раз.
Срочно в номер. Только что review team одобрила игру. Как обещал, объявляю ее бесплатной с этой минуты на три дня, а там как кривая американской мечты вывезет.
.
Уменьшил число клеток до 10
Действительно, при большом числе клеток игра становится однообразной. При 10 клетках — напротив, игровой раунд длится не более 5 минут, время сравнимое с обслуживанием одного человека из очереди в СберБанке. На 10 клетках мастер может создать блок 2048.
![image](https://habrastorage.org/getpro/habr/post_images/c7d/6ec/629/c7d6ec62903d786ddb19ee888983c284.jpg)
Изменил топологию на треугольную
Доска из прямоугольной превратилась в треугольную. Блоки стали шестигранниками. Это добавило комбинаций и возможностей выбраться из западни, которую иногда подбрасывает arc4random()%nxy;
На треугольной доске сдвиги делаются не в четырех направлениях, как в случае классического квадрата, но уже в 6-ти. Больше свободы, которой нам порой не хватает.
По пути создания новой доски, я перебрал три или четире шестигранных варианта. Треугольник оказался самым хитовым. Ромб — длинноват, звездочка — островата, треугольник из 6-ти клеток — простоват.
Последний шанс
Если на доске несколько пустых клеток, я бросаю случайно блок с 2-кой.
Если на доске остается лишь одна пустая клетка, я бросаю в нее 2-ку, только если среди соседей нет 4-ки. Иначе — 4-ку. Запутано объяснил. Иными словами — если осталась лишь одна клетка,… Черт, не могу сформулировать. Ладно, при этом условии мастер действительно может создать блок 2048.
Небольшой бонус
Небольшой бонус я добавляю к игровым очкам в случае одновременного схлопывания нескольких блоков.
Если схлопывается 4 блока, вместо двух, я добавляю игроку 2 премиальных очка.
Если схлопывается 6 блоков с одного хода, я добавляю игроку 8 премиальных очков.
Если схлопывается 8 блоков одновременно (что теоретически возможно), я добавляю игроку 16! премиальных очков.
Алгоритм сборки
Игра напоминает мне сборку кубика Рубика- послойно. Как лук. Мы, великаны, любим лук.
Сначала собираешь верхний слой — держишь на нем самый толстый блок, затем второй и так далее.
Исходя из принципа слоев, я написал бота.
Вот небольшое, немножко незатейливое видео на 1 минуту как бот делает блок 2048.
Честно скажу, бот собирает блок 2048 лишь в одном случае из десяти. Для съемки видео я предустановил генератор случайных чисел в удобное для бота значение. Иначе кино так бы и не было снято.
Трудности одобрения в яблочном гастрономе
К сожалению, при проверке приложения в Apple appstore, я несколько пострадал от собственной хитрости. Изначально игру хотел назвать Trio 2048.
Этимология подобного названия очевидна.
Но, глядя на имя приложения, я вдруг решил выбросить букву T и уменьшить возраст. Женщинам и программистам это простительно.
Получилось Rio 2014 — что соответствуют грядущему футбольному событию. Чувствуете CEO-хитрость и коварный умысел?
Однако хитрость не удалась. Я попал (удивительно! ) на любителя футбола из review team, и он велел изменить название. Иначе говорит, заморожу счета в американском банке. Пришлось переименовать в Rio 2048 и ждать очередного вердикта.
![image](https://habrastorage.org/getpro/habr/post_images/abe/fb6/45e/abefb645ef0539911c3de01cd1a2119e.jpg)
В день разрешения публикации… Я надеюсь, что этот день настанет. Игра будет бесплатной и без рекламы, специально для членов нашего клуба.
Пост во время поста имеет дополнительную ценность, не находите? Ведь пока его создаешь, не грешишь…
.