Ссылка на официальный ман по рейтингу эло — Рейтинг Эло.
Применим на практике?
Допустим, у нас 2 команды с рейтингами:
1 2
| $rating_a = 800;
$rating_b = 500; |
Расчитаем вероятность победы первой команды:

1
| $e = 1 /(1 +pow(10 , ($rating_b-$rating_a)/400 )); |
Дальше опишу простую функцию для расчета коэффициена, необходимого для участия в финальном рейтинге:
1 2 3 4 5 6 7 8 9 10 11 12
| function EloK($rating)
{
if ($rating >= 2400) {
return(10);
}
elseif ($rating >= 1000) {
return(15);
}
else {
return(25);
}
} |
Простая хуйня, иллюстрирующая, что значение равно 10 для сильнейших команд (рейтинг от 2400), 15 — для команд с рейтингом меньше чем 2400 и 25 — для новичков.
Ну и получим новый рейтинг по самой формуле:

1 2 3 4 5 6
| $new_rating_a = $rating_a + EloK($rating_a) * (1 - $e);
$new_rating_b = $rating_b + EloK($rating_b) * (0 - (1-$e));
print $new_rating_a;
print ' / ';
print $new_rating_b; |
Результат:
803.77448893 / 496.22551107
Вот такие пироги. Да, будет введено на Live-CS…
05.09.2009
Тэги: php, код, мои проекты, рейтинг Эло
Как добраться из Домодедово в Шереметьево?
Инструкция полезна путешественникам типа меня, которые прилетают в Домодедово и улетают дальше из Шереметьево.
- Напротив главного выхода из аэропорта Домодедово автобусная остановка, проезд в автобусе стоит 80 рублей, автобус идет до метро Домодедовская. Ехать примерно 30 минут.
- Дальше спускаемся в переход→метро и садимся в первый вагон, едем до конечной, станция Речной вокзал. Ехать примерно 45-50 минут.
посмотреть на схеме метро от яндекса
- Выходим на станции, поднимаемся в город и пиздуем прямо до дороги, где стоят маршрутки, они и едут до Шереметьево 1 и 2. У водителей узнать куда какая идет, их там много. Время в пути примерно 25-30 минут.
Удачной дороги.
22.08.2009
Тэги: travel, аэропорт, москва
По мистическим причинам, о которых я уже говорил в предыдущем посте про капчу, мне также пришлось переделать генератор юзербаров под imagick.
Здесь опишу способ создание юзербаров для пользователей всемирно любимой пыхи.
Для начала возьмем фон для юзербара, любезно предоставленный нашим почетным пользователем Frozzeg (и мною немного дополненный):

Как Вы уже догадались, в правой части будем вписывать имя пользователя, которое мы будем передавать скрипту GET’ом (например, bar.php?user=md5). Ну и так как мы модные типочки — будем их кешировать следующим образом:
Итак, сама отрисовка юзербара. Сначала мы будем накладывать текст-тень (на 1 пиксель ниже и правее текста), а затем сверху сам текст.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| // Возьмем какой-нибудь шрифт (у нас это Candara Bold)
$font = dirname(__FILE__) . '/candara.ttf';
$bg = dirname(__FILE__) . '/bg.gif';
// установим цвет текста и тени
$font_color = '#666666';
$shadow_color = '#fefefe';
// создаем объект
$im = new Imagick ($bg);
// рисуем тень
$draw = new ImagickDraw ();
$draw->setFont($font);
$draw->setFontSize(12 );
$draw->setFillColor(new ImagickPixel ($shadow_color));
$draw->annotation(258 , 14 , $text);
$im->drawImage($draw);
// рисуем текст (на пиксель выши и левее тени)
$draw = new ImagickDraw ();
$draw->setFont($font);
$draw->setFontSize(12 );
$draw->setFillColor(new ImagickPixel ($font_color));
$draw->annotation(257 , 13 , $text);
$im->drawImage($draw);
$draw->destroy();
// записываем в кеш и выводим
$im->setImageFormat('gif');
$im->writeImage($cache_file);
header("Content-Type: image/gif");
print $im;
$im->destroy(); |
Результат работы (bar.php?user=md5):

18.08.2009
Тэги: imagick, php, пыха
В связи с мистическими событиями, все GD скрипты приходится переписывать под Imagick.
Самое интересное, в сети практически не найти ни нормальной документации по нему, ни примеров (особенно на русском, но нам впринципе пох). Поэтому выложу свою капчу, которая использует простой алгоритм MultiSwirl, описанный на сайте captcha.ru.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| // Это строка, которую мы будем рисовать на изображении
$str = rand(1000 , 999999 );
$_SESSION['captcha'] = $str;
/*
** Здесь можно указать путь к своему шрифту
** $font = dirname(__FILE__) . '/MyriadPro-Bold.otf';
*/
/*
** Задаем углы закручивания
** и сдвиг, относительно центра перед закручиванием
*/
$corner1 = rand(30 ,50 );
$corner2 = rand(30 ,50 );
$roll = rand(20 , 50 );
// Создаем объект
$image = new Imagick ();
$draw = new ImagickDraw ();
$image->newImage(150 , 50 , new ImagickPixel ('#ffffff'));
/*
** Если используем свой шрифт, передаем его в ImageDraw
** $draw->setFont($font);
*/
// Задаем размер шрифта
$draw->setFontSize(40 );
// Накладываем нашу надпись
$image->annotateImage($draw, 10 , 40 , 0 , $str); |
Далее пошло уже закручивание изображения: сначала в одну сторону, потом в другую.
1 2 3 4 5 6
| // Двигаем изображение и закручиваем его
$image->rollImage($roll,0);
$image->swirlImage(-$corner1);
$image->rollImage(-$roll*2,0);
$image->swirlImage($corner2);
$image->rollImage($roll,0); |
Ну и собственно, выдача:
1 2 3
| $image->setImageFormat('png');
header('Content-type: image/png');
echo $image; |
Как это выглядит:

Что можно еще:
1. поиграться с углами
2. поставить пизданутый шрифт
3. уменьшить межбуквенный интервал
4. выводить не только цифры
5. Добавить несколько полос и также свирлом вместе с символами
18.08.2009
Тэги: captcha, imagick, php, капча

Вот такие ночи со среды на четверг в Сочинском районе.
06.08.2009
Тэги: travel, море, ночь, пейзаж, фото