Написание программы на языке программирования PHP

Вычисление рейтинга Эло происходит следующим методом:

Вычисляется математическое ожидание количества очков, которое наберёт игрок Написание программы на языке программирования PHP - student2.ru в партии с Написание программы на языке программирования PHP - student2.ru (оно равно сумме вероятности выигрыша игрока Написание программы на языке программирования PHP - student2.ru и половины вероятности ничьей):

Написание программы на языке программирования PHP - student2.ru ,

где:

  • Написание программы на языке программирования PHP - student2.ru — математическое ожидание количества очков, которое наберёт игрок Написание программы на языке программирования PHP - student2.ru в партии с Написание программы на языке программирования PHP - student2.ru ;
  • Написание программы на языке программирования PHP - student2.ru — рейтинг игрока Написание программы на языке программирования PHP - student2.ru ;
  • Написание программы на языке программирования PHP - student2.ru — рейтинг игрока Написание программы на языке программирования PHP - student2.ru .

Новый рейтинг игрока Написание программы на языке программирования PHP - student2.ru рассчитывается по формуле:

Написание программы на языке программирования PHP - student2.ru ,

где:

  • Написание программы на языке программирования PHP - student2.ru — коэффициент, значение которого равно 10 для сильнейших игроков (рейтинг 2400 и выше), 15 — для игроков с рейтингом меньше чем 2400 и 30 (было 25) — для новых игроков (первые 30 партий с момента получения рейтинга ФИДЕ);
  • Написание программы на языке программирования PHP - student2.ru — фактически набранное игроком Написание программы на языке программирования PHP - student2.ru количество очков (1 очко за победу, 0,5 — за ничью и 0 — за поражение);
  • Написание программы на языке программирования PHP - student2.ru — новый рейтинг игрока Написание программы на языке программирования PHP - student2.ru .

Исходный код программы будет выглядеть следующим образом:

<form action="" method="post">
<input type="text" name="rating_a" value="Rating A" maxlenght="4">
<input type="text" name="rating_b" value="Rating B" maxlenght="4"> <BR>
Кто победил? Первый (1) или Второй (2) ? <BR>

<input type="text" name="winner" value="Winner">
<input type="submit" value="OK">
</form>
<?php

$rating_a = $_POST['rating_a'];

$rating_b = $_POST['rating_b'];

$winner=$_POST['winner'];

$e = 1/(1+pow(10, ($rating_b-$rating_a)/400));

$e2 = 1/(1+pow(10, ($rating_a-$rating_b)/400));
function EloK($rating)
{
if ($rating >= 2400) {
return(10);
}
else if ($rating >= 1000) {
return(15);
}
else {
return(25);
}
}
if ($winner==1)
{
$new_rating_a = $rating_a + EloK($rating_a) * (1 - $e);
$new_rating_b = $rating_b + EloK($rating_b) * (0 - (1-$e));
} else if ($winner==2) {
$new_rating_b = $rating_b + EloK($rating_b) * (1 - $e2);
$new_rating_a = $rating_a + EloK($rating_a) * (0 - (1-$e2));
}
print $new_rating_a;
print ' / ';
print $new_rating_b;

?>

Описание исходного кода:

В данном исходном коде создается форма в которой вводятся значения трёх переменных, затем после нажатия кнопки “OK” с помощью метода POST передаются в код, написанный на языке программирования PHP. В коде PHP переменные $rating_a, $rating_b, $winnerполучают значения переменных, введенных ранее. Затем вычисляется математическое ожидание количества очков, которое наберёт игрок A в партии с игроком B, и потом полученные значения записываются в переменные $e и $e2 соответственно. Далее идёт функция, которая перехватывает значения переменных $rating_a и $rating_b, затем сравнивает их со значением, требующимся для получения коэффициента, и потом возвращает нужное значение коэффициента. Далее вычисляются новые рейтинги игроков A и B в зависимости от победы того или иного игрока, значение победы записывается либо 1, либо 2 (где 1 – победа игрока A, а 2 – победа игрока B) в переменную $winner. Затем происходит вывод переменных $new_rating_a и $new_rating_b, т.е. новые рейтинги обоих игроков.



Наши рекомендации