1. Ввести лигу (как скажет наш друг с завышенным ЧСВ - цивплаерс никто не отменял). Лигу с рейтингом не +1 за победу 0 за участие. А полноценный рейтинг ЭЛО. Если покопаться в инете думаю найдутся скрипты для ведения этой статистики (сам не программист, но написать данный скрипт можно и самому).
Написать скрипт это не проблема, проблема разобраться с движком. Я когда-то выкладывал класс для Glicko - никто не заинтересовался. Не нравится Glicko, а нравится ELO? Пожалуйста, есть и ELO
Скрытый текст<?php
class elo_calculator {
public function rating($S1, $S2, $R1, $R2) {
if(empty($S1) or empty($S2) or empty($R1) or empty($R2))
return null;
if($S1 != $S2) {
if($S1 > $S2) {
$E = 120 - round(1 / (1 + pow(10, (($R2 - $R1) / 400))) * 120);
$R['R3'] = $R1 + $E;
$R['R4'] = $R2 - $E;
} else {
$E = 120 - round(1 / (1 + pow(10, (($R1 - $R2) / 400))) * 120);
$R['R3'] = $R1 - $E;
$R['R4'] = $R2 + $E;
}
} else {
if($R1 == $R2) {
$R['R3'] = $R1;
$R['R4'] = $R2;
} else {
if($R1 > $R2) {
$E = (120 - round(1 / (1 + pow(10, (($R1 - $R2) / 400))) * 120)) - (120 - round(1 / (1 + pow(10, (($R2 - $R1) / 400))) * 120));
$R['R3'] = $R1 - $E;
$R['R4'] = $R2 + $E;
} else {
$E = (120 - round(1 / (1 + pow(10, (($R2 - $R1) / 400))) * 120)) - (120 - round(1 / (1 + pow(10, (($R1 - $R2) / 400))) * 120));
$R['R3'] = $R1 + $E;
$R['R4'] = $R2 - $E;
}
}
}
$R['S1'] = $S1;
$R['S2'] = $S2;
$R['R1'] = $R1;
$R['R2'] = $R2;
$R['P1'] = ((($R['R3'] - $R['R1']) > 0)?"+" . ($R['R3'] - $R['R1']) : ($R['R3'] - $R['R1']));
$R['P2'] = ((($R['R4'] - $R['R2']) > 0)?"+" . ($R['R4'] - $R['R2']) : ($R['R4'] - $R['R2']));
return $R;
}
}
?>
Но я тоже сам не программист и сейчас у меня нет времени даже толком сыграть ГП, а уж разбираться в коде, тем более php - так и подавно. Если кто-то разберется, что там принимается на вход и что отдается на выходе, тогда интегрировать его в форум будет достаточно просто.
P.S. Пункт номер 3 про новичков очень неудачный, а с остальным согласен