ОБЛОМки футбольных новостей

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ОБЛОМки футбольных новостей » Программирование прогнозирования » Программа подсчёта результатов


Программа подсчёта результатов

Сообщений 1 страница 30 из 93

1

Как говорил великий и могучий Карлсон: "Случилось чудо! Друг спас друга!" (с).
Друзья, смею поздравить себя и вас, я сумел-таки завершить первый шаг к автоматизации работы организаторов турниров по прогнозированию, дописав программу по автоматическому подсчёту результатов турниров.

Программа представляет собой некий пользовательский интерфейс для обзора прогнозов, подсчета результатов и подготовки результатов для выкладывания на форум. Она позволит любому участнику анализировать ситуация перед туром и во время него благодаря визуальным "примочкам", а также считать результаты и выкладывать их на форум. Надеюсь, теперь, окончательные и промежуточные результаты тура (после 3, 5, 7 матчей) станут появляться на форуме намного чаще - кто первый запустил программу, тот и выложит.

Технически программа устроена следующим образом:

0) Задаём параметры сервера парсинга сообщений с форума, написанному Тарасом (слава ему и почет). Сейчас мне удалось поместить его на свой рабочий сервер (local.mappl.ru:3000), в дальнейшем потребуется перенести его на predictors.ru.

1) Выбираем турнир, по которому собираемся считать результаты. На данный момент я добавил в программу три турнира - ФПЕЧ, ЛЧ и ЧР. Оттестировал программу на двух первых, работает без ошибок. Пожалуйста, у кого дойдут руки - было бы здорово проверить и на ЧР. В каждом турнире у нас свои правила подсчёта очков, всё это заложено в логику программы. Для того, чтобы имелась возможность изменить правила подсчёта результатов матчей прогнозистов по системе имени Данила, параметры вынесены также в пользовательский интерфейс и заполнены значениями по-умолчанию для данного турнира. Однако, например, при отмене одного или нескольких матчей из исходной программы тура имеется возможность произвести правильный подсчёт результатов тура, изменив это значения (в первую очередь я говорю про параметр ENOUGH). Для каждого турнира задан список участников и имя технического соперника.

2) Задаём параметры тура, а именно идентификатор топика с прогнозами (число в адресе страницы, например, https://fn.mybb.ru/viewtopic.php?id=2071), программу тура (без времени начала матчей), программу чемпионата (если он ведётся, то здесь указываются матчи прогнозистов), текущую таблицу личного зачёта (для начала турнира не надо ничего указывать), текущую таблицу чемпионата (для начала турнира не надо ничего указывать). Последние два параметра надо указывать в том формате, в котором я выдаю результаты туров (см. последние сообщения в темах ФПЕЧ и ЛЧ).

3) Нажимаем кнопку "Сохранить", переходим на следующую страницу "Прогнозы и результаты". На этой странице слева сверху присутствует список матчей из программы. Именно туда надо забивать результаты сыгранных матчей. Справа вверху на разных страницах представлены списки, в которые будут выводиться результаты тура, в них ничего писать не надо.
Нижняя область - основная визуальная таблица, которая может отображать данные в четырёх режимах. В режиме "ЛЗ - перед туром" участники отсортированы в соответствии с таблицей личного зачета, вставленной на первой странице. Столбцы этой таблицы соответствуют матчам программы. Зеленым в этом режиме будут отмечены матчи, где сделана ставка на победу хозяев, желтым - на ничью, красным - на победу гостей. Серым отмечены матчи, на которые не было сделано прогнозов. Также серым выделены имена прогнозистов, не сделавших ставку хотя бы на один матч. В режиме "ЛЗ - результаты" для каждого матча отображается дополнительный столбец с количеством набранных на матче баллов. При этом ячейки, соответствующие угаданным исходам станут жёлтыми, угаданные результаты - оранжевыми, остальные - серыми. Справа в таблице появляется столбец с результатами - очки и исходы. В режиме "ЧП - перед туром" участники отсортированы по матчам чемпионата, указанным на первой странице. При этом если участники прогнозистов одинаковы, то ячейки становятся серыми, если отличаются, но сделаны на один и тот же исход - зелёными, на смежные исходы - жёлтыми, на противоположные исходы - оранжевым. Это сводная таблица, которая удобна для анализа на каких матчах вероятнее всего можно забить гол. В режиме "ЧП - результаты" отображается таблица матчей и заработанных на каждом матче активов. При этом заработанные активы, не приведшие к голу выделены розовым, голы - жёлтым, а двойные голы - коричневым. Последними столбцами мы видим счёт матча и количество набранных баллов.

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

Сразу хочу оговориться, в процессе подсчёта результатов мне пришлось модерировать посты наших участников, поэтому хочу привести набор стандартных косяков и просьб к нашим форумчанам:

1) Для каждого тура должна быть составлена программа тура без указания времени матчей. Необязательно, но желательно, чтобы в программе названия команд были представлены в максимально сокращенном виде (например, КПР, а не Куинз Парк Рейнджерс), без пробелов (одним словом, например, АстонВилла), без дефисов (например, СентЭттьенн, а не Сент-Эттьенн).

2) Прогнозировать надо строго по программе (копируем и проставляем счета в любом привычном формате). Повторяю, не по календарю матчей (с указанием времени начала матчей), а именно по программе!

3) Если вы опоздали к началу тура, то в любом случае программа должна присутствовать полностью. В тех матчах, которые пропущены, ставим прочерки или *:*. Пожалуйста, делайте это добросовестно, чтобы не приходилось это делать мне или другим организаторам и модераторам.

4) Если какой-то матч программы отменен, то в качестве прогноза на матч указываем любой реальный футбольный счёт. Не указываем 17:17 или 19:19, потому что программа этого не пропустит. Также не указываем прочерки и т.п. Любой реальный счёт, например 0:0.

5) Если программа указана на 4 матча (например, в ЛЧ), то спрогнозированы должны быть сразу 4 матча, а не 2, а потом еще 2.

6) В сообщении, в котором вы указываете свой прогноз или прогноз другого участника не вставляйте до прогноза имена других участников, иначе прогнозы будут собраны неправильно.

7) В сообщении с прогнозом техсоперника указывайте перед прогнозом его имя. Не "техсоперникъ" или "технический", а "Prognoz.Org-2".

Это типовые вещи, на которые я наткнулся, пересчитывая ФПЕЧ и ЛЧ, возможны другие.

В общем, желаю всем хорошего использования, надеюсь, понравится.
С радостью приму пожелания и найденные ошибки, пишите сюда!

А вообще - спасибо вам, ребята! Если бы у нас не было так душевно на форуме, я бы никогда и не решился на то, чтобы "убить" столько времени на написание этой программы.
Заслуга в её написании - общая! :)

Прога лежит здесь: http://dl.dropbox.com/u/5355357/predictors.rar
У кого такая же проблема, как у Данила (доступ к local.mappl.ru:3000 закрыт), выкладываю скрипт с сервером парсинга, который можно запустить на локальной машине (инструкция внутри): http://dl.dropbox.com/u/5355357/parse_ff.rar

+1

2

Да, забыл сказать, что в случае отсутствия прогнозов от кого-либо прога автоматом подставляет в матче против соперника этого прогнозиста техсоперника (если, конечно, он есть в данном турнире).

0

3

Супер!

0

4

Круть!

Россию попробовал кстати - есть трабла с Russian football, у него ник с пробелом внутри - в итоге в матчах чемпионата и в таблице чемпионата показывает его, с тремя звездочками, а вот в личном зачете общем и на тур ник пропущен, и думаю это в дальнейшем негативно скажется при накатывании остальных туров..)

01 SuperVlad         0  1  3  2   11   (6)
02 serpavero         0  2  0  3    9   (5)
03 Andrew            0  1  1  3    8   (5)
04 Sharoff           0  2  0  2    8   (4)
05 Alexeyus          0  2  0  2    8   (4)
06 anvial            0  0  2  3    7   (5)
07 Yero              0  2  0  1    7   (3)
08 magadanez         0  2  0  1    7   (3)
09 efess             0  1  1  1    6   (3)
10 mavrus            0  1  1  1    6   (3)
11 Trampler          0  0  1  3    5   (4)
12 Z()()M            0  1  0  2    5   (3)
13 Олег              0  1  0  2    5   (3)
14 Пасумыч           0  0  1  2    4   (3)
15 Leo               0  0  0  3    3   (3)
16 VolkanovDmitry    0  0  1  1    3   (2)
17 ksenz             0  0  1  1    3   (2)
18 Tairon            0  1  0  0    3   (1)
19   0  0  1  0    2   (1)
20 Акинфеев          0  0  0  0    0   (0)
21 Piter-fun         0  0  0  0    0   (0)
22 Pavel             0  0  0  0    0   (0)
23 Oleg              0  0  0  0    0   (0)
24 Dookalis          0  0  0  0    0   (0)

Кстати вот что еще интересно - судя по всему его прога вообще не засчиталась и ему был влеплен технарь, вот только откуда тогда у него(?) очки в ЛЗ?

0

5

Посмотрю в пятницу :)

0

6

Придумал, как сделать. В пятницу выложу новую версию! :)

0

7

Эх, мать, никому что-ли не нужно, что я сделал? :)

0

8

Sharoff написал(а):

Эх, мать, никому что-ли не нужно, что я сделал? :)

Гм.. а что ты ждешь в данный момент? -) Выкладывай в тяпницу новую версию, можно будет попробовать Россию закачать -)
Кстати, пора бы уже и начинать собирать участников нового турнира.. -)

0

9

Sharoff написал(а):

Эх, мать, никому что-ли не нужно, что я сделал?

Почему не нужно?
Я честно скачал к себе программу. Потом увидел анонс пятничного патча. Вот сижу - жду его.

0

10

Новую версию закачал туда же.

Она доступна по старой ссылке. Теперь все прогнозисты с пробелами в нике обыгрываются таким образом: в списке участников надо писать без пробела. Когда кто-либо опубликует прогноз такого участника, надо писать без пробела. Когда участник сам публикует свой прогноз, программа обыгрывает эту ситуацию, удаляя его пробел. То есть во всех местах (таблицах, матчах и т.д.) надо писать без пробела, но если участник дает свой прогноз самостоятельно, это программой обрабатывается.

Trampler написал(а):

участников нового турнира

Какого турнира? :)))

Trampler написал(а):

Гм.. а что ты ждешь в данный момент? -)

Да я вчера говорил на футболе с форумчанами - оказывается никто и не понял, что какая-то программа появилась...
Хорошо бы наверху в меню вывести ссылку.

Сообщаю всем: программа пригодится не только организаторам, но и участникам!

VolkanovDmitry написал(а):

Потом увидел анонс пятничного патча. Вот сижу - жду его.

Дык в нём ничего особо нового не будет, Дим. Всё основное уже есть.

Trampler написал(а):

в итоге в матчах чемпионата и в таблице чемпионата показывает его, с тремя звездочками

Как не самый лучший коньяк, а чо? :) Поясняю. Звёздочки означают, что участник спрогнозировал не все матчи программы и заменен на техсоперника. В строке таблицы такого участника стоят именно проги техсоперника.

0

11

Sharoff написал(а):

Какого турнира? :)))

Кубок же, сорри)

Еще по печалькам если - то что я с работы не могу юзать прогу это еще ладно, у нас тут секьюрность. А дома нередко возникают касяки с копипастом программ и прочего - все в вопросах вместо нормальных букв хоть в ascii копируй, хоть в unicode. Руками набивать ессно муторно. на работе кстати всегда все ок, но здесь у меня 7ка а дома XP SP3)

0

12

Trampler написал(а):

Еще по печалькам если - то что я с работы не могу юзать прогу это еще ладно, у нас тут секьюрность.

Могу выдать тебе сервак для парсинга на перле, на локале у себя запустишь и всё заработает.

Trampler написал(а):

А дома нередко возникают касяки с копипастом программ и прочего - все в вопросах вместо нормальных букв хоть в ascii копируй, хоть в unicode. Руками набивать ессно муторно. на работе кстати всегда все ок, но здесь у меня 7ка а дома XP SP3)

Так, а здесь поподробнее. Косяки с копипастом откуда куда? Если из проги на форум, то вопрос зачем ты это делаешь - ведь можно нажать кнопку "копировать результаты". А если в обратную сторону, то это очень странно, буду разбираться... Жду комментариев!

0

13

Как грится, уау! :) Прогу по полной не потестил, но потыкался - всё понятно! Особенно впечатлил мячик-фавикон и надпись made by Sharoff :)

0

14

Олег написал(а):

Особенно впечатлил мячик-фавикон и надпись made by Sharoff

Понял, уберу-уберу :)))

0

15

Не, оставь, это круто! Страна должна знать своих героев.

0

16

Олег написал(а):

Не, оставь, это круто! Страна должна знать своих героев.

Не, попсово :)

0

17

Sharoff написал(а):

А если в обратную сторону, то это очень странно, буду разбираться... Жду комментариев!

Канеш так. Из заглавного сообщения расписание игр в твою прогу копировал.

0

18

Sharoff написал(а):

Могу выдать тебе сервак для парсинга на перле, на локале у себя запустишь и всё заработает.

Давай)

0

19

Trampler написал(а):

Давай)

У тебя на почте.

Trampler написал(а):

Канеш так. Из заглавного сообщения расписание игр в твою прогу копировал.

Окей, буду разбираться.

0

20

Trampler написал(а):

А дома нередко возникают касяки с копипастом программ и прочего - все в вопросах вместо нормальных букв хоть в ascii копируй, хоть в unicode. Руками набивать ессно муторно. на работе кстати всегда все ок, но здесь у меня 7ка а дома XP SP3)

Как будто бы зафиксил, однако проверить не могу :(
Обновил архив с прогой.
Если не поможет, то попробуй дома в реестре отредактировать HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage\1252 заменить c_1252.nls на c_1251.nls.
Отдельно в первом посте прописал ссылку на сервер парсинга для тех, у кого проблемы, схожие с проблемой Дана.

0

21

Sharoff написал(а):

Как будто бы зафиксил, однако проверить не могу 
Обновил архив с прогой.
Если не поможет, то попробуй дома в реестре отредактировать HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage\1252 заменить c_1252.nls на c_1251.nls.
Отдельно в первом посте прописал ссылку на сервер парсинга для тех, у кого проблемы, схожие с проблемой Дана.

Спасибо, Саш, все проверю )

0

22

Не за что пока :) Отпишись!

0

23

Sharoff
Тут дело такое - вообще-то щас работает, но я проблему описал не до конца. Думаю, основной трабл вызвавший ???? был связан с пустым изначальным окном для расписания игр. Когда в окнах УЖЕ есть нормальные названия команд и ники на кириллице - работает корректно -) Так что workaround такой тут в любом случае.

0

24

Не, это скорее стандартная проблема Delphi... Поставил SetThreadLocale(1049) принудительно.
ХР случаем не англицкий? :)

0

25

Попробовал 3ий тур ЧР посчитать...
Не подхватились пары:
Oleg - efess
anvial - Russianfootball
Пасумыч - Andrew

То есть вместо 10 пар было в списке матчей всего 7.

После ввода ЛЮБОЙ цифры счёта выскакивает окно с ошибкой "List index out of bounds (9)"
После нажатия "Посчитать результаты" снова выскакивает окно с ошибкой "List index out of bounds (9)"

Результаты посчитались, но только за 1 тур.

Затем я понял, что надо было вставить таблицы из второго тура, но после того как я их вставил и перешёл на страницу с подсчётом прогнозов программа упала с "Access Violation"...

Эти эффекты наблюдались под английской Windows XP SP 3.

Вывод:
Опять производители софта нам подсовывают некачественный товар :-)

И чему только этих производителей в университетах учат!? :-)

Отредактировано VolkanovDmitry (2012-02-25 06:15:44)

0

26

Вот оно! Вот то, чего я так ждал :)))
Пары не подхватываются когда нет программ от обоих участников или одного участника и техсоперника.
Но падать, конечно, ничего не должно...

0

27

VolkanovDmitry написал(а):

Не подхватились пары:
Oleg - efess
anvial - Russianfootball
Пасумыч - Andrew
То есть вместо 10 пар было в списке матчей всего 7.

Это понятно почему. Это видно на первом режиме таблицы, где присутствуют серые пятна :) Oleg и Russianfootbal дали прогноз не по программе тура, надо модерировать их сообщения. У Andrew нет прогноза на последний матч, прогноза техсоперника нет, поэтому умная прога автоматически дала победы их соперникам. Ждём от Andrew или Yero прогноза Andrew на Терек-Томь.

VolkanovDmitry написал(а):

После ввода ЛЮБОЙ цифры счёта выскакивает окно с ошибкой "List index out of bounds (9)"
После нажатия "Посчитать результаты" снова выскакивает окно с ошибкой "List index out of bounds (9)"
Результаты посчитались, но только за 1 тур.
Затем я понял, что надо было вставить таблицы из второго тура, но после того как я их вставил и перешёл на страницу с подсчётом прогнозов программа упала с "Access Violation"...

Повторюсь, ошибки программы это не оправдывает, но... повторить у меня не получилось.
Давай более детально.
Сперва таблиц внизу не было, была программа матчей и чемпионата. Ты нажал "Сохранить". Дальше нажал считать прогнозы? Когда начал вбивать счета нижняя таблица в каком режиме была? Подсчитать прогнозы до того, как вводить счета жал?
По второму моменту. Когда таблицы вставил на первой странице сохранить жал или перешел аросто на вторую? Просто так, ты понимаешь, AV не бывает, обработчиков на переход между страницами у меня нет, поэтому ты что-то где-то еще нажал или вбил. Вспомни, пожалуйста, что именно.

Система у меня такая же, XP SP3 только русская. Но указанных дефектов не наблюдаю.

0

28

Так List Index Out Of Bounds однажды выскочил при нажатии кнопки Сохранить, но повторить не удаётся.
Друзья, помогит установить точную последовательность действий для ликвидации бага. Дима, ты - в первую очередь, пожалуйста...

0

29

(Для меня) Косяк с заглавным постом в спаренных турах.

0

30

К сожалению, так и не получил уточнений. Будем считать, что всё у всех работает.
По 3 туру ЧР правлю проги.

0


Вы здесь » ОБЛОМки футбольных новостей » Программирование прогнозирования » Программа подсчёта результатов