Победитель первого чемпионата PlanetWars::1C — Роман Судак (rs514).




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

99 Comments

  1. support

    Может сюда можно добавить флеш версию этой игры

    Reply
  2. support

    и добавьте нас сайт дистрибутивы

    Reply
  3. support

    А вообще прикольно! Даешь локальный турнир по galcon, чем мы хуже Google, готов поддержать проект, информационное спонсорство однозначно, а может какие и призы придумаем! Напиши мне на почту

    Reply
  4. support

    Вот, добавил флеш версию, чтобы можно было попробовать поиграть вручную.

    Reply
  5. MaxDavid
    АнализПриказов: Игрок 1: в приказе <АссоциативныйВектор АссоциативныйВектор 59> обнаружены недопустимые символы <А>

    АнализПриказов: Игрок 1 выдал неверный номер исх.планеты: <0>. В данный момент она ему непринадлежит.

    Reply
  6. mszsuz

    (2) Дистрибутивы проще держать в одном месте. Письмо напишу. За флэш — спасибо, надеюсь ничего не нарушаем.

    (5) MaxDavid, обрати внимание, в Приказе() нужно передавать Планета.ИД — числовой идентификатор планеты.

    Reply
  7. MaxDavid

    (6) Упс… В одной ветке написал правильно, а в другой скосячил. Спасибо, буду внимательней, придержите за мной место в турнире 😎

    Reply
  8. support

    (6) Ничего не нарушаем, так как внутри флеша есть все ссылки на покупку программы и ее официальный сайт.

    Reply
  9. SdelatVse

    Для версии 8.1 будет?

    Reply
  10. eeeio

    нужна версия для 8.1

    Reply
  11. mszsuz

    (9) (10) В ближайшую неделю версии для восьмерки не будет. Желающих портировать нет. Я пока семерку до ума буду доводить.

    Reply
  12. MaxDavid

    Ну-с, вот вам для затравки 😉

    Reply
  13. mszsuz

    (12) Отлично, начало положено!

    Reply
  14. mszsuz

    Выложены очередные обновления:

    1.01

    — добавлены русские синонимы математических функций:

    КореньКвадратный(), АркТангенс(), Синус(), Косинус(), СлучайноеЧисло().

    Пояснение по работе функции СлучайноеЧисло(МаксЗнач): функция возвращает случайные числа в диапазоне от 1 до МаксЗнач включительно.

    Например, для СлучайноеЧисло(2) будет всегда возвращаться только 1 или 2.

    — приведен в соответствие метод Вселенная.ДлинаПути(НачПланета, КонПланета). Теперь в качестве параметров можно передавать числовые идентификаторы планет.

    Возможность передачи агрегатных объектов оставлена для совместимости.

    — добавлен вывод текущего состояния игры: общее количество судов и общий темп роста для каждого бота.

    1.02

    В связи с тем, что операции по обработке строк в 1С выполняются очень медленно в этом обновлении изменен способ передачи боту состояния игры.

    Reply
  15. brr

    Про игру С-robots слышали? На базе вашей разработки можно сделать 1с-роботы?

    Reply
  16. mszsuz

    (15) Кинь ссылку посмотреть?

    Reply
  17. MaxDavid
  18. Ёпрст

    (12) простенький бот.. 1 условие в твоём коде и уже начинает обыгрывать.

    🙂

    Reply
  19. MaxDavid

    (18)

    Дык это ж для затравки… ) Зато оперативно.

    Там даже если поиграть коэффициентами, уже есть разница. Но, например, если выставить К1 = 2, К4 = 3, первоначальный вариант будет проигрывать почти на всех картах, а на карте №16 — выигрывать. Это уже повод для размышлений.

    Reply
  20. MaxDavid

    Вопрос автору. Могу я программно узнать номер хода? Или надо заводить свой счетчик?

    Reply
  21. mszsuz

    (20) Заводи свой

    Reply
  22. Ёпрст

    (19) страви своего бота с RangeBot

    🙂

    Reply
  23. Diversus

    Интересный конкурс…

    Являюсь участником в оригинальном конкурсе.

    Мой профиль:

    http://ai-contest.com/profile.php?user_id=7157

    Чтобы посмотреть битвы нажмите «View Game >>»

    Рейтинги игроков: http://ai-contest.com/rankings.php

    PS: кстати rsergio — участник который находится в верхушке рейтинга 1С-ник 😀

    Reply
  24. likan

    А будут ограничения на время хода?

    Reply
  25. support

    Вообще, как я понимаю, в чем отличие от Google, так в этом, что больше внимания надо уделить оптимизации алгоритмов в 1С. Т.е. получается, что условия более жесткие, чем в официальном конкурсе.

    Попробуй в условиях ограниченных ресурсов и времени выжать максимум. У кого это получится, тот и будет победителем.

    Reply
  26. Арчибальд

    Вот не хотел же ввязываться, как знал. Ну не ставится у меня MapWinGIS47… 😮

    Reply
  27. mszsuz

    (26) Ограничение — 1 секунда.

    (28) Какая ОСь?

    Reply
  28. Арчибальд

    (29) XP prof (2002) SP3

    Reply
  29. mszsuz

    (30) А есть права администратора? Посмотрел форум разработчиков, советуют проверить наличие прав. В некоторых случаях ещё помогает установка более ранней версии:

    http://svn.mapwindow.org/svnroot/InstallationProjects/4.7/Release/MapWinGIS47RC-x86-Setup.exe

    Reply
  30. Арчибальд

    (31) Помогло. Похоже, этот установщик ставит какие-то примочки от С++, а тот, что по ссылке в начале их не ставит, но требует.

    Reply
  31. mszsuz

    (32) Вот и хорошо. Добавлю этот способ в инструкцию на форуме.

    Reply
  32. kote

    (16) .. еще такой «наглядный» вариант — http://antru.ru/crobots3d/

    Reply
  33. WiseSnake

    Гы. Моя любимая игруха в детстве )). Жаль поучаствовать в конкурсе времени нет 😥

    Reply
  34. venger

    (29)

    Ограничение — 1 секунда

    Это значит, если бот не успел просчитать ход за это время, то что? И опять же, буду делать я, например, замеры на одном компе — будет одно время, на другом другое…

    Reply
  35. mszsuz

    (36) Если бот не успевает сделать ход он проигрывает партию.

    Оба бота запускаются на одном компьютере и находятся в равных условиях, если один успевает ходить, а второй нет, то вывод очевиден.

    Жесткое ограничение времени хода считаю одним из достоинств этого соревнования.

    Нужно найти компромисс между быстродействием и эффективностью, оптимизировать алгоритмы, кэшировать данные. В общем есть над чем подумать.

    Reply
  36. MaxDavid

    (37) На какой примерно конфигурации будет проводиться соревнование?

    Reply
  37. pshunailov

    Ошибка (все устанавливал по схеме), конфигурация последняя 1.2.1

    Не существует файла: C:ВойнапланетPlanetWarsExtFormsotsDualBot.ert для класса: Бот.4061437

    Регистрация класса закончилась неудачно!

    Ошибка инициализации Бота 1

    Reply
  38. mszsuz

    (40) Попробуй переименовать папку «Войнапланет» на «PW», например.

    Думаю, что проблема в русском наименовании в пути к файлу.

    Reply
  39. mszsuz

    Работает сервис защиты ботов. Подробнее здесь: Обмен ботами

    Reply
  40. qd-phantom

    pshunailov, я тоже сталкивался с такой проблемой, решилось — переустановил windows installer, потом переустановил ActiveX-компоненту MapWinGIS. У меня заработало

    Reply
  41. rsergio99

    Фу-уу, наконец-то зарегистрировался, правда не без проблем

    Reply
  42. Pavlovsky
    Вот, например, выложенный таким образом лог битвы, показанной в промо-ролике.

    При нажатии на эту ссылку. Демострация игры не работает.

    Выдает сообщение:

    Сообщение: Объект не поддерживает это свойство или метод

    Строка: 1

    Символ: 547

    Код: 0

    URI-код: http://visualizer.naktibalda.lt/js/visualizer.js?v=1

    Подскажите плиз, что у меня не так?

    Reply
  43. mszsuz

    (44) FF, Opera, Chrome работают.

    Для IE нужен Google Chrome Frame

    Reply
  44. qd-phantom

    Добавил нового бота на форум … так … для веселья. Это пока набросок

    Reply
  45. qd-phantom

    чет странно — при указании ограничения в 200 ходов — фактически делается 201. Начинается все с 0 хода. Это нормально?

    Reply
  46. mszsuz

    (47) На нулевом ходе показываются только планеты. Ботам передается управление не более 200 раз включительно. Это легко проверить, добавив счетчик ходов в модуль бота.

    Reply
  47. mszsuz

    Выложил обновление 2.00.

    См. на форуме Установка и обновления

    Проверяйте «групповое тестирование». Если всё нормально, то сегодня-завтра начнем.

    Reply
  48. qd-phantom

    ну вот .. ещё немного доработал бота, существующим тут — неплохой конкурент. доработки ещё продолжу, идей ещё много

    Reply
  49. rsergio

    Когда начнется чемпионат?

    Reply
  50. qd-phantom

    rsergio выложи пожалуйста своего бота на 1С, хоть глянуть как твой воюет

    Reply
  51. rsergio

    (52)

    Жду начала чемпионата, ну а пока мой бот рвет вчистую всех, кто пока выложил свои 🙂

    Reply
  52. qd-phantom

    rsergio не жадничай, давай своего, нам хоть веселее будет

    Reply
  53. mszsuz

    Обновление 2.11:

    — Исправлены ошибки релиза 2.0.

    — В логе работает колесо мыши.

    — Добавлена возможность пошагового выполнения боя.

    — Исправлена ошибка в Вселенная.МоиФлоты().

    Качать здесь: Установка и обновления

    Reply
  54. SeTIrk

    Выводы которые сделал для себя:

    • Задача минимакса: максимизировать прирост на своих планетах, минимизировать прирост на планетах противника, до тех пор пока общая мощность твоих судов при атаке нейтральных/противника не уменьшится после N (где N оптимально) ходов, либо общая мощность твоих судов достаточна (опять же эксперемент в х2 никто не даст сделать, видел победы и при 10% перевеса) для решающего удара, по противнику.
    • Задача сохранения: при атаке противника на свою планету, если планету не удается сохранить после N ходов (планету спамят), отвести войска на более удачную планету (к своим либо начать атаку на противника)
    • Задача нападения: Захватывать планеты равноудаленные от планет противника, что позволит в перевесе совершить захват сразу нескольких планет.

    Еще хорошо было бы решать эту задачу, как кластерную. Но опыт и знания пока что не позволяют.

    Reply
  55. Pavlovsky

    (21) Увы скорее всего нет. Сроки конкурса таковы, что времени на обширную программу исследований нет. Что очень жаль. Дали бы на написание бота хотя бы пол года… В основу своего бота положил систему резервирования изложенную во второй статье. Естественно систему резервирования значительно модифицировал. Изложенная в статье система дает слишком осторожную игру. В ней не учитывается темп роста планет и летящие к планетам флоты.

    Идеи в изложенные в первой статье тоже очень интересны. Планировал идти от простого к сложному. Рассмотреть систему из трех планет и т.д. При этом ища общие закономерности. Поиски в этом направлении дали следующее.

    Пусть у нас есть две наши планеты A и B. Пусть выполняется условие |A,P|<=|B,P|, где Pлюбая чужая планета (|A,P| — расстояние от планеты A до планеты P).

    Тогда назвем планету A ведущей, а планету B подчиненной. Исходя из этого можно выстроить иерархию сових планет. Назовем нашу планету главной, если она не подчинена ни одной из наших планет.

    Тогда вырисовывается очень простой алгоритм.

    1) все ракеты на подчиненых планетах немедленно отправляем на ее ведущую планету. Маленькая сложность появляется если у планеты несколько ведущих планет. Тогда надо решить на какую из них и в какой пропрции отправлять ракеты.

    2) Модель игры сводится к рассмотрению противостояния наших и вражеских главных планет. Просмотр игр в конкурсе гугла показывает, что главных планет всего одна, две. То есть задача имеет поразительно маленькую размерность. Да и вариантов решений при таком количестве главных планет немного.

    Reply
  56. qd-phantom

    Планируется ли сделать тут таблицу рейтинга, логи боёв между ботами???

    Reply
  57. mszsuz

    (58) Готовьте ботов 😀 Доделываю сайт …

    Reply
  58. SeTIrk

    Если резервировать корабли против всех планет противника общий флот должен составлять MyFlot = EnemyFlot*CountEnemyPlanet.

    Поэтому нужно расставлять приоритеты, насколько высокая опасность потерять планету, и насколько она нам нужна (можно ведь и выгодно обменять, на одну, а то и несколько).

    Я пока что отказался от модуля защиты, слишком много нюансов.

    Для себя решил, количество резерва на планете должно быть равно (! если после атаки на планете население = 0, планета не считается завоеванной),

    if Ai.Temp >= Bi.Temp:
    Ai.Reserv = L(Ai,Bi)*Ai.Temp — Bi.Count
    else:
    Ai.Reserv = L(Ai,Bi)*Ai.Temp — Bi.Count + (Ai.Temp — Bi.Temp)
    

    Знаки возможно напутал.

    А вообще если темп роста у противника выше, нам должно быть вкусно съесть ее до того как он накопит достаточное количество кораблей, чтобы нас запобедонить.

    Reply
  59. SeTIrk
    Валерий пишет:

    Это происходит из-за того, что в середине партии любой из соперников при остром желании может захватить любую из планет соперника.

    Если в «Старте» захват планет был нацелен на равноудаленность от противника, в «Середине» при равных количествах кораблей, каждая планета защищена:

    • Ближние (по отношению к противнику) планеты достаточно сильны для отражения атаки
    • К дальним (те что питают сильные), лететь через ближние (по количеству шагов должно быть именно так), а они могут (и должны, если скорости регенерации планет находящихся рядом с проблемной не хватает, послать подмогу). Желательно чтобы к приходу врага на планете было именно то количество кораблей чтобы отбить атаку в 0 (мы не теряем планету если количество кораблей после осталось >= 0)

    Еще обратил внимание:

    • Нужно опираться на скорость регенерации. В случае если MyRep > ERep мы имеем шансы выиграть (если конечно MyPow <<< EPow).
    • Выигрыш по мощности можно получить двумя способами:

      • Увеличить регенерацию.
      • Захватывать планеты с меньшим количеством кораблей. (Как правило сразу же после атаки противника, цена планеты Cost = abs(Ni.Count — F(Bi,Ni).Count) + F(Ai,Pi).TurnsToTarget*Ni.Temp

        т.е. противник в любом случае потеряет F(Bi,Ni).Count флота, особенно планета интересна, когда (Ni.Count + F(Bi,Ni).Count)/2 + 1 < F(Bi,Ni).Count (противник собьет больше половины флота нейтральной планеты)
    Reply
  60. SeTIrk

    блин, четвертый раз ввожу сообщение, все время на post сбивается на начало форума.

    Валерий пишет:

    Естественно при этом может потерять свои планеты.

    Почему бы не дать ему это сделать? Видел несколько боев которые велись из-за одной единственной планеты, ценность ее никак не мог понять (регенерация ~2), в то время как потраченой мощности хватило бы на завоевание соседних планет (регенерация бы с лихвой закрыла потери).

    Валерий пишет:

    Это происходит из-за того, что в середине партии любой из соперников при остром желании может захватить любую из планет соперника.

    При равных силах и равномерном захвате планет (равноудаленные к противнику). Первые планеты будут достаточно защищены. А последним могут помочь те, что более сильны (говорю о ситуации, слив на передовую). Да и можно разрешить небольшой оправданный риск (захватить нейтральную планету на своей территории, для увеличения репродукции).

    Кроме того обратил внимание на следующие вещи:

    • До определенного момента нужно иметь лидерство в темпе роста.
    • Если потерян темп (либо в ближайший момент будет потеряна), можно воспользоваться двумя способами:

      • Захват планет, остаточной мощностью (то что позволит выровнять и увеличить темп роста)
      • Захват нейтральных планет сразу после атаки противника.

    Пытаюсь все это систематизировать. Пока что туго получается. Очень много факторов. Сейчас переписываю предлагаемый файл PlanetsWars.py, для получения большей информации из методов (связывание в дерево (корни ведущие планеты), расстояние до ближайшей планеты, и т.п. на этапе получения данных).

    Reply
  61. mszsuz

    Приглашаю на регистрацию:

    Для участия необходимо заявку вида:

    ——————————————

    Заявка на участие в конкурсе «PlanetWars::1C»

    Логин на Инфостарте: microsott

    Эл.почта: microsott@gmail.com

    Имя и фамилия: Билл Гейтс

    Страна: США

    Город: Вашингтон

    Организация: Микрософт

    ——————————————

    отправить личным сообщением пользователю PlanetWars

    Не забудьте заменить данные в заявке на свои.

    Reply
  62. mszsuz

    Информацию о состоянии турнира смотрим пока здесь

    Требования к файлам ботов

    1. Файл бота должен быть оформлен в виде внешнего отчета/обработки с расширением *.ert.

    2. Текст модуля бота должен быть открыт, т.к. все боты будут проверяться перед участием в Чемпионате.

    3. В программе бота не должно содержаться ничего, что могло бы повлиять на корректное проведение турнира.

    4. Не допускается использование одного и того же бота несколькими участниками турнира.

    Reply
  63. mszsuz
  64. qd-phantom

    эммм … получается, что бои на сайте не могут посмотреть те у кого не установлена ActiveX-компонента MapWinGIS ???

    Reply
  65. mszsuz

    (66) На сайте используются оригинальный движок официального чемпионата Google AI Challenge

    Никакой связи с MapWinGIS нет.

    Reply
  66. mszsuz

    Просмотр боев через Internet Explorer временно не работает. Разбираюсь в чём дело.

    Рекомендую пока воспользоваться Google Chrome

    Reply
  67. mszsuz

    Обновление 2.16

    — Исправлены ошибки при переходе по закладкам;

    — На закладке «Параметры» добавлен «Калькулятор рейтинга ELO»

    Reply
  68. mszsuz

    В течении сегодняшнего дня жду замечаний и предложений по расчету рейтинга

    Если всех всё устраивает — с завтрашнего дня начнутся регулярные бои между ботами — каждый час, «все-со-всеми» на случайных картах.

    Reply
  69. qd-phantom

    (70) как это сделано в официальном турнире??? предлагаю либо не изменять текущие очки, либо переигрывать прошлый бои, но уже с текущим ботом. А то как то глупость получается — обновил бота и все очки сбросились, как будто и не играл

    Reply
  70. alexk-is

    (71) Так ведь пока ещё идут предварительные (отладочные) бои. Они показывают баланс проигрышей и выигрышей.

    Reply
  71. qd-phantom

    mszsuz, можно как то с сайта получить карту по которой проходил бой?

    Reply
  72. mszsuz

    (73) Карты, по которым проходят бои, полностью совпадают с теми, которые поставляются с полным дистрибутивом движка. Номер карты можно узнать из файла лога — это 6-й параметр в строке «result».

    В принципе, инфу о номере карты можно вывести в профиле — там есть место для колонки.

    Если надо — сделаю.

    Reply
  73. qd-phantom

    (74) было бы здорово видеть номер карты

    Reply
  74. Pavlovsky

    Вечер перестает быть томным. Борьба в чемпионате обостряется на всех этажах турнирной таблицы.

    Reply
  75. qd-phantom

    (76) это уж точно 😀

    Reply
  76. mszsuz

    В связи с непонятными проблемами на «народе», перенес сайт с рейтингами на новый хостинг: http://pw1c.jino.ru/rankings.htm

    Не забудьте обновить ссылки.

    Reply
  77. Pavlovsky

    Зафиксировал. Может это первый и последний раз. 😀

    Reply
  78. Pavlovsky

    Все. Минута славы закончилась. 😀

    Reply
  79. mszsuz

    (80) Из последних 6 игр — 3 слил по таймауту.

    Если бы избавился от них, глядишь, и RSergio обновление бы сделал.

    Reply
  80. Pavlovsky

    (81) Посмотрел последние игры, где я проиграл по тайм-ауту. Везде была проигранная позиция. Так что это своебобразная форма сдачи партии. Чего зря время тянуть.

    Reply
  81. Pavlovsky
    глядишь, и RSergio обновление бы сделал

    RSergio пора делать обновление. Впереди последние выходные перед окончанием тестового режима.

    Reply
  82. Pavlovsky

    Мой бот опять отметился на первой строчке рейтинга! Хотя это уже не новость. 😀

    Теперь каждый вечер буду вносить небольшие изменения и присваивать боту кодовое слово.

    Боту, что играет сейчас присвоено кодовое слово «Лидер»

    Сегодня буду делать бота «Экспресс»

    В среду «Захватчик»

    В четверг «Пионер»

    В пятницу планирую сделать бота «Чемпион»

    Reply
  83. mszsuz

    Финал чемпионата

    Предварительные соревнования заканчиваются в 08:59 28 ноября 2010 г. по московскому времени.

    В это время прием ботов прекратится и регулярные бои между участниками будут остановлены. Будет сброшен (обнулен) рейтинг всех участников.

    Спустя 6 часов (это время необходимо для проверки ботов) после окончания предварительных соревнований стартует финал чемпионата.

    Финальные схватки будут проводиться в режиме онлайн на каждой карте между всеми участниками.

    Результаты будут публиковаться после розыгрыша каждой карты, начиная с первой.

    Reply
  84. mszsuz

    Позволю себе процитировать фразу с офиц. турнира:

    «Не ждите до последней секунды, чтобы отправить своего финального бота. Оставьте себе несколько часов, чтобы убедиться, что ваш последний бот играет правильно и имеет лучшие показатели, чем предыдущие.»

    Reply
  85. mszsuz

    Может есть смысл на оставшееся до финала время сделать регулярные бои каждые полчаса или хватает информации из боев, проводимых раз в час?

    Reply
  86. Pavlovsky

    Если честно мне хватает информации по результатам тестовых боев с QD_v6.kzk2.ert и alexk-is-09.kzk2.ert. Никак не могу добиться 100% результата. Пользуясь случаем, благодоарю авторов этих ботов за предоставление класных спарринг-партнеров.

    Но вот в пятницу и особенно в субботу подробная информация с тестового турнира может понадобится.

    Срок сдачи финальной версии бота назначил себе в субботу утром. Суббота вечером — запасной срок.

    Reply
  87. mszsuz

    С этого момента и до окончания предварительных соревнований, бои будут проходить каждые полчаса.

    Reply
  88. Pavlovsky

    А чего все молчат? Неужели еще правят ботов?!

    Reply
  89. mszsuz

    Предварительные соревнования завершены!

    Регистрация участников и приём ботов закончились.

    28 ноября в 15-00 по московскому времени начнутся финальные соревнования.

    Reply
  90. mszsuz

    У университета компьютеры немного пошустрее … 🙂

    Reply
  91. Domovoi

    1 rsergio Россия Москва 95 24 317

    2 rs514 Украина Киев 101 18 311

    Интересный подсчет очков, интересно как так получилось))

    Reply
  92. mszsuz

    (93) Тут не просто подсчет очков — рассчитывается рейтинг ELO. См. здесь

    Reply
  93. Domovoi

    Я понимаю что рассчитывается рейтинг. Объективно ли?

    Reply
  94. mszsuz

    Через полчаса будет готов протокол игр и на твоем примере покажу расчет.

    Reply
  95. mszsuz

    Протокол во вложении.

    Речь в (93) идет о схватке 28.11.10, 23:01:36, №010540

    К этой игре rsergio подошел с рейтингом 325, у rs514 было 303.

    rs514 выиграл.

    Заносим эти данные в «калькулятор рейтинга ELO».

    Проверяем результат.

    Reply
  96. mszsuz

    Если есть какие-то вопросы — спрашивайте.

    Reply
  97. mszsuz

    Финальный турнир продолжается. Пройдено 50 из 100 карт.

    Текущий рейтинг:

    № Участник   Страна  Город          Побед Поражений ELO
    1 rs514      Украина Киев             320        67 525
    2 rsergio    Россия  Москва           309        87 498
    3 Pavlovsky  Россия  Екатеринбург     307        90 412
    4 alexk-is   Россия  Лысьва           258       140 370
    5 ASDF2      Россия  Пермь            227       173 331
    6 venger     Украина Одесса           131       269 128
    7 Salimbek   Россия  Набережные Челны 132       260  33
    8 qd-phantom Россия  Первоуральск      68       324   0
    9 dmitry_k7  Россия  Москва            29       371   0
    

    Показать

    Reply
  98. mszsuz

    Пройдено 60 из 100 карт.

    № Участник Страна Город Побед Поражений ELO

    1 rs514 Украина Киев 393 74 620

    2 rsergio Россия Москва 365 111 472

    3 Pavlovsky Россия Екатеринбург 365 112 461

    4 alexk-is Россия Лысьва 317 161 452

    5 ASDF2 Россия Пермь 272 208 316

    6 venger Украина Одесса 154 326 103

    7 Salimbek Россия Набережные Челны 160 312 101

    8 qd-phantom Россия Первоуральск 81 391 6

    9 dmitry_k7 Россия Москва 34 446 0

    Reply
  99. Pavlovsky

    Может еще рано. Хочу высказать свое уважение и даже восхищение Андрею Кайгородову ( mszsuz ). Поднять такой проект могут единицы.

    Хочется спросить что будет дальше с проектом? После окончания чемпионата?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *