Оценка пользователей
7.2313
Оценить:
-

Могущественным программистам посвящается

 

Друзья программисты,

 

в майские праздники было время поразгребать свою коллекцию, и я задумался о том, а какая игра является моей самой эффективной покупкой, ведь в большинство игр я играл всего 1 раз. И придумал следующий алгоритм, как это можно оценить. Что если бы был скрипт, который:

 

На входе получает имя пользователя с БГГ.

 

Обработка: скрипт подкачивает по этому пользователю все игры, в которые он играл хотя бы один раз (played) и высчитывает эффективность в размерности "Игрочас за доллар":

 

Эффективность покупки = Количество партий в игру (played) * Среднее время партии в игру (данные с БГГ) / Среднюю стоимость игры в магазинах (где-то уже был скрипт, подсчитывающий это значение)

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

 

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

 

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

 

Есть смелые программисты, которые могут реализовать такой скрипт?

 

upd. Адрес скрипта http://109.163.239.8:6030/

Фото и видео

добавить
  • новые
  • популярные
Orccc написал 13 лет назад: # скрыть ответы
результаты

На первом месте оказалась одна из самых не любимых мною игр, Цитадели %)

Michael написал 13 лет назад: # скрыть ответы

А у меня:
на первом месте Корова 006 - игра, в которую мы играли все отпуска,
на 2-м месте Memoir - с ежегодными партиями и турнирами,
на 3-м No Retreat - игра, в которую я играл половину 2012 года.

На а уже на 4-м Цитадели :)

CerbeRUS написал 13 лет назад: # скрыть ответы

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

Michael написал 13 лет назад: # скрыть ответы

Интересная идея.

Graywind, можно ли добавить на выход еще один рейтинг, где коэффициент еще умножается на оценку игры пользователем?

Graywind написал 13 лет назад: # скрыть ответы

Почему-то не могу найти, как через API получить личные рейтинги. Могу помножить на рейтинги BGG, но это будет несколько не то.

Michael написал 13 лет назад: #

http://www.boardgamegeek.com/xmlapi/collection/zefquaavius?played=1

Там есть Rating

ArMikael написал 13 лет назад: #
Результаты теста

Boardgame Hours/$
Puerto Rico 0.318733
Kingdom Builder 0.275535
7 Wonders 0.211732
The Settlers of Catan 0.200971
Carcassonne 0.173558
Stone Age 0.151549
Arkham Horror 0.121360
Dominion 0.119465
San Juan 0.097572
Dixit 0.081238

Puerto Rico и Kingdom Builder заслуженно заняли первые два места, действительно по-моему мнению, это одни из самых удачных приобретений. А вот 7 Wonders я уже успел продать и пробыл он у меня всего полгода. Продавать решил как раз по той причине, что все только в него и хотели играть, а другие коробки простаивали.

ArMikael написал 13 лет назад: # скрыть ответы

Установил Python, но скрипт так и не заработал:

SyntaxError: invalid syntax
>>> python hours_price.py armikael
File "<stdin>", line 1
python hours_price.py armikael

Graywind написал 13 лет назад: # скрыть ответы

Уже писал. Там тот человек, который заливал скриптик (хозяин дневника), вставил русский комментарий, не указав кодировки.

Я сейчас веб-версию поднял, смотрите там, так проще.
http://109.163.239.8:6030/

Только учтите, что система считает только те игры, где отмечены сыгранные партии, плюс игра должна быть на BGG-Marketplace хотя бы в одном экземпляре.

Graywind написал 13 лет назад: #

А, насчёт вашей ошибки понял. Вы набрали команду из самого Питона, а надо было из командной строки Windows. В общем, действительно, проще по вебу вам будем.

oranged написал 13 лет назад: # скрыть ответы

Я же уже перезалил вашу версию скрипта. (:

P.S. Я не автор этого дневника.

Michael написал 13 лет назад: #

Мопед не мой... :)

ArMikael написал 13 лет назад: #

Спасибо, совсем другое дело! Я изначально вбивал команду в command line винды, но там постоянно выдавалась ошибка, поэтому подумал, что может из самого Python запусакть нужно.

Graywind написал 13 лет назад: # скрыть ответы
Веб версия

Стабильную работу не гарантирую. Если сервер вдруг перегрузят - упадёт. :)

http://109.163.239.8:6030/

Tanone написал 13 лет назад: # скрыть ответы

Выдаёт ошибку. Не может открыть страницу.

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

Graywind написал 13 лет назад: #

Это я сперва не учёл, что в BGG на разных языках бывают названия, и надо всё делать с учётом UTF-8. Оно вывалилось, но я уже поправил, теперь работает.

P.S. Первый раз пытаюсь с API BGG работать, ну и медленный он... Очень долго игры перебирает.

Michael написал 13 лет назад: # скрыть ответы

Internal Server Error

Graywind написал 13 лет назад: # скрыть ответы

Один раз в лог выдало, что от BGG пришёл неверно сформированный XML. Какой у вас логин на BGG? Попробую разобраться.
Проверял на Tanone и armikael - отработало отлично. Только очень уж долго. У них много игр отмечено.

Michael написал 13 лет назад: # скрыть ответы

light7

Graywind написал 13 лет назад: # скрыть ответы

Нашёл. Какая-то из ваших игр имеет глючную информацию на BGG. Сделал, чтобы такие игры пропускались. Теперь надеюсь заработает. Предупреждаю только, что с вашим количеством игр ждать результата придётся очень долго.

Graywind написал 13 лет назад: #

Да, теперь ваша страница выдалась нормально. Обратите внимание, что в конце списка у пары десятков игр стоит нулевой рейтинг. Это означает, что они отсутствуют на рынке BGG и стстеме поэтому попросту неизвестно, какая на них цена.

Michael написал 13 лет назад: #

Спасибо! Отличная работа, вы реально круты!

Orccc написал 13 лет назад: #

Спасибо. Интересная информация. Только часть игр пропустилась. Например, в моем списке не оказалось рфтг.

3e6p написал 13 лет назад: # скрыть ответы

А можно вариант для тех, у кого нет питона? :)

Graywind написал 13 лет назад: # скрыть ответы

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

3e6p написал 13 лет назад: # скрыть ответы

Ну если не полениться отметить все партии и добавить все игры на BGG, то можно определить какая игра является вашей самой эффективной покупкой :)

Graywind написал 13 лет назад: #

Чуть попозже добавлю тогда Web-вариант.

diablotm написал 13 лет назад: #

Почему никто? Мне в основном для этого бгг и нужен.

Michael написал 13 лет назад: #

Я отмечаю... на глаз... поэтому скрипт и интересен.