11 December 2013

Tetris запрещено упоминать в App Store

Papa Buba Diop corporate blogDevelopment for iOSDevelopment of mobile applications
image
В нашей ядерной лаборатории существует несколько методик для моделирования физических явлений на регулярной сетке. Большинство сеток — прямоугольные, то есть у каждой ячейки есть строго один сосед справа, один — слева, один — сверху, один — снизу. Четыре соседа. Удобно, рационально, ячейки не жесткие, в отличии от треугольных.

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

Я решил взять несколько популярных игр, основанных на четырехугольных сетках (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


image
Разумеется, я написал бота, который играет вместо тебя в hetris.
Для выбора хода я минимизировал функционал из четырех слагаемых с разными весами
  • число съеденых линий
  • число образованных дырок
  • высота стакана
  • градиент по столбцам

При глубине хода H=1 бот набирает от 500 до 2000 очков. При глубине хода H=2 он играет практически бесконечно. С глубиной H=3 процессор от Apple не справляется. Живой игрок пока не в состоянии набрать более 6000 очков. И это при задержке скорости в 0.2 секунды на самом сложном 9-ом уровне.

Таким образом, как и в шахматах, машина победила человека. Увы нам…
Tags:push notificationstetris
Hubs: Papa Buba Diop corporate blog Development for iOS Development of mobile applications
+28
30.8k 38
Comments 24