В нашей ядерной лаборатории существует несколько методик для моделирования физических явлений на регулярной сетке. Большинство сеток — прямоугольные, то есть у каждой ячейки есть строго один сосед справа, один — слева, один — сверху, один — снизу. Четыре соседа. Удобно, рационально, ячейки не жесткие, в отличии от треугольных.
Но есть одна методика, основанная не на четырехугольной регулярной сетке — но шестиугольной. Апологеты подхода утверждают, что природа — от пауков до пчел — использует только такое разбиение.
Я решил взять несколько популярных игр, основанных на четырехугольных сетках (Lines, Tetris, Dots, Panda, Candy Crash Saga) и переписать их на натуральную шестиугольную сетку.
Тетрис, названный Hetris (от Hexagonal tetris), получился довольно забавным и я решился выложить его в AppStore.
Дабы избежать обвинений в саморекламе, я прикрутил к приложению Push Notification, и описываю особенности своей реализации в данной статье.
А вы знаете, что слово Tetris запрещено упоминать всуе?
Push Notification
Работа по внедрению Push Notification делится на четыре части.- Получение сертификатов
- Код на клиентской стороне
- Код на серверной стороне
- Организация таблиц и загрузка сертификатов на сервер
Этот процесс описан на Хабрахабре. С тех пор ничего не изменилось, только вид уведомлений стал более модным и красивым.
Единственное, что упущено в статье — это удаление красных баджей на иконке при активации Вашего приложения. С удовольствием восполняю этот пробел.
В файл AppDelegate.m надо включить 1 строку
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
}
Смешное от Review Team
Процесс проверки приложения в AppStore получился смешным.Вместо одобрения я получил ответ
Your app Hetris has been reviewed, but we are unable to post this version
Я был обвинен в нарушении трех пунктов УК APPLE и приговорен к расстрелу.
Немедленно послал вопрос: — Какого черта?
И тут же получил ответ
Вы использовали матерное слово Tetris в описании игры. Мы сами удалили это слово и продолжили проверять Ваше приложение. Расстрел отменяется
В самом деле — описание приложения состояло из двух предложений.
Предложение
It's like a Tetris on the hexagonal gridбыло выброшено.
Замечу, что в ключевых словах Tetris не упоминался.
Через 1 час бесплатное приложение Hetris было одобрено.
Интеллект от iOS
Разумеется, я написал бота, который играет вместо тебя в hetris.
Для выбора хода я минимизировал функционал из четырех слагаемых с разными весами
- число съеденых линий
- число образованных дырок
- высота стакана
- градиент по столбцам
При глубине хода H=1 бот набирает от 500 до 2000 очков. При глубине хода H=2 он играет практически бесконечно. С глубиной H=3 процессор от Apple не справляется. Живой игрок пока не в состоянии набрать более 6000 очков. И это при задержке скорости в 0.2 секунды на самом сложном 9-ом уровне.
Таким образом, как и в шахматах, машина победила человека. Увы нам…