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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *