Таблица лидеров iOS: рейтинг пользователей в кратчайшие сроки - PullRequest
0 голосов
/ 04 февраля 2012

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

Проблема здесь в том, что для каждого пройденного уровня общее время завершения увеличивается. Но я хочу убедиться, что таблица лидеров учитывает это, чтобы пользователь, пройдя 10 уровней, имел более высокий рейтинг, чем тот, у кого только 1 пройденный уровень.

Как я могу создать какой-то счет на основе этого?

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Я предлагаю добавить количество времени по умолчанию к общему количеству для каждого неполного уровня. Так, скажем, если игрок бьет новый уровень за 3 минуты, это заменяет 10-минутное время заполнителя, и они «экономят» 7 минут от общего количества.

Без такой хитрости iPhone не предусматривает многофакторного ранжирования.

1 голос
/ 07 февраля 2012

Перед отправкой времени в таблицу лидеров.

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

Мой предпочтительный метод:

Или вы можете выразить это с помощью значения оценки.уровень завершен = 1000Каждый уровень имеет установленный бонус ограничения по времени, чем дольше вы берете, тем меньше бонуса вы получаете.например,

I Пройдите уровень за 102 с. Время достижения цели составляет 120 с.

Я получаю 1000 очков за выполнение и 1500 очков за каждую секунду, за которую я бью время достижения цели.*

Таким образом, я получу 1000 + (18 * 1500) = 28 000 баллов

Следующий парень делает это за 100 секунд

Он получает 1000 + (20 * 1500) = 31 000 баллов

0 голосов
/ 07 февраля 2012

Результаты таблицы лидеров в GameKit должны быть выражены как одно число (см. Этот раздел Руководства по программированию GameKit), так что это будет невозможно.

Лучше всего было бы просто иметь таблицу лидеров времени завершения для людей, которые прошли все уровни, и, возможно, другую таблицу лидеров (или несколько) для людей, которые прошли меньшее количество уровней.

...