Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Определить победителя


Автор: nepster 20.1.2014, 04:37
Итак, если игра на node.js после окончания игры нода делает запрос к php сценарию, который должен определить победителя и сделать соответствующие записи в базе. 



Наш массив:
Код
[users] => Array
        (
            [0] => Array
                (
                    [hash] => de2983f989ccf1ea09d1e29a0465fb51
                    [earn] => 32
                )

            [1] => Array
                (
                    [hash] => ef21eb9ea4b5dc9f359024198bf40742
                    [earn] => 23
                )

            [2] => Array
                (
                    [hash] => fff294012895b487157efd570232f0fc
                    [earn] => 22
                )

            [3] => Array
                (
                    [hash] => 3bf51dd7bb302ccf81e335879b97bc5b
                    [earn] => 12
                )

        )


[hash]   - идентификатор пользователя 
[earn]   - достижения в игре, например игровые очки 


Задача определить победителей, начислить рейтинг, записать логи в базу (плюсануть счетчик сыгранных игр, сделать запись о победной или проигранной игре и тп. ) 

Теперь мне нужно этот массив проверить следующим образом:
     - если все 4 пользователя набрали одинаковое кол-во очков: выдать все по 25% рейтинга 
     
    если если флаг к примеру $a = true
    - первые 2 места получают рейтинг (1 место 70%, второе место 30%)
    - если на первом и втором месте ничья, распределить рейтинг 50 на 50
    - если 2 и 3 место набрали одинаковое кол-во очков, распределить 30% рейтинга по 15 каждому 
    - если 2 и 3 и 4 место набрали одинаковое кол-во очков, распределить 30% рейтинга по 10 каждому 
 
     
    если если флаг к примеру $a = false
    - рейтинг получает первое место 
    - если 1 и 2 место ничья, рейтинг делим 50 на 50 
    - если 1 и 2 и 3 место ничья, рейтинг делим по 33%


Собственно начал делать это дело и попал в бездну конструкций if else, копал в сторону паттерна стратегии, но как оказалось он не подходит в данной ситуации, подскажите пожалуйста как оптимально реализовать это все дело? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)