Рейтинг является целым числом. Возможно, со знаком.
Рейтинг не может устремляться в бесконечность (или минус бесконечность).
Рейтинг меняется только по результатам боя.
Если змея съела всех соперников, ее рейтинг не может уменьшиться. Если змея съедена, ее рейтинг не может увеличиться.
Изменение рейтинга по итогам боя зависит от рейтингов соперников. Награда за победу над сильным соперником выше, штраф за проигрыш сильному сопернику ниже. При слишком большой разнице рейтинг победителя может даже уменьшиться, а рейтинг проигравшего увеличиться.
Изменение рейтинга по итогам боя зависит от итоговых длин змей: чем больше длина змеи и чем меньше длины змей соперников, тем выше рейтинг.
Нельзя прокачать рейтинг выше, чем у чемпионов, не вызывая этих чемпионов на бой. Как вариант: итоговый рейтинг не может превышать исходный рейтинг побежденных соперников больше, чем на фиксированную величину.
Особое внимание нужно уделить начальному рейтингу игрока. Просто назначать новичкам минимально возможный рейтинг не годится: новый игрок, выставивший змею с сильной программой, может серьезно испортить рейтинги чемпионов.
Нужно избегать резких скачков рейтинга. Как вариант, учитывать не только исходный рейтинг, но и количество боев: чем меньше обычных боев провела змея, тем слабее она влияет на рейтинг других змей.
Задача: разработать формулы, удовлетворяющие этим требованиям, и протестировать их.