All streams
Search
Write a publication
Pull to refresh
5
0
FlameStorm @FlameStorm

Человек

Send message

Не понятно. Так копии или не копии example.js? Те которые на строчках 59, 60 и 61

Кстати вопрос — если сиды идентичные и у всех абсолютно равные условия забега, как вообще хоть на 1 очко разницы могло получиться у тех трёх копий example.js из таблицы?

Могло быть и 4 копии, если б не успел увидеть в телеграм канале сообщение о пробном забеге) Текущая версия не всегда уже отправлена как решение. Вполне вероятно, что из этих трёх останется меньше трёх. Но добавят новых example.js подоспевшие участники ))

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


Кстати по лимитам тут озвученным — а example.js гарантированно будет участвовать? И если вдруг все сторонние участники закинут решения отличные (по принимаемым решениям о сделках) от example.js, этот пункт ограничений будет снят с рассмотрения, или таки если никто не отправит клон экзампла, то он будет отправлен by Alexey (вне конкурсной таблицы)?

Привет, justanotherusername! Этот конкурс довольно любопытный, но конечно мне намного больше по душе предыдущий про предка Supaplex'а. Gamedev forever in my heart. Ну и кроме того интуитивно понятно было, чего должен добиться алгоритм и какие примерно решения могут быть :)

Точнее, тут просто не видно никакой возможности существования алгоритма, работающего лучше всех и могущего взять призовое место, — всё сильно зависит от остальных решений, с которыми будет вести диалог твоё.
Так статистика же открыта, см. в обновлении по конкурсу.
2291.ru/tmp/jshagglestats небольшая ламповая визуальная статистика, без регистраций и смс )

Можно свои/друзей разные версии понаблюдать в динамике междусобойчиковой. Можно и друг с другом мериться у кого хэш круче. :)

Да, ещё стоит использовать параметр тихого запуска -q и т.о. запускать скрипт так:
node haggle.js -q --id ...

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

Оно конечно понятно, что суть соревнования была не в этом, но пусть уж участвуют и такие решения на равных основаниях. Как и прочие, лишь бы правилам конкурса соответствовали.

Да, и ещё такая ремарка — там где есть рандом, всегда может выстрелить и не самая удачная стратегия, возможности, кондиции. Футбол сегодняшний хороший пример — чемпионы немцы (уже экс) прекрасные заслуженные результаты показывали, но вот наступил чемпионат-2018 и в раскладах ног, мяча и векторов $10 за все шляпы и книги забрала себе команда Южной Кореи. (не только Старкрафтом единым, молодцы, ага)
Так что а вдруг, и example.js окажется в тройке или даже победителем! Фантастический опыт тоже опыт.
В той самой предложенной UNIX shell команде которой,
while true; do node haggle.js --id me@example.com:1234abcd myscript.js wss://hola.org/challenges/haggling/arena/standard; done

можно например так:
while true; do node haggle.js --id me@example.com:1234abcd myscript.js wss://hola.org/challenges/haggling/arena/standard; seq 0.05 .001 0.5 | shuf | head -n1 | xargs sleep; done


Или под виндой такой батничек `client.bat` получился,
@echo off
set cnt=0
echo "start trading"
:loop
node haggle.js --id me@example.com:1234abcd myscript.js wss://hola.org/challenges/haggling/arena/standard
seq 0.05 .001 0.5 | shuf | head -n1 | xargs sleep
set /a cnt+=1
set /a cntb = cnt%%100
if %cntb% equ 0 echo "trades count %cnt%"
goto loop

(сообщающий что ещё живой через каждые 100 сделок)

`0.05 .001 0.5` — рандомная задержка между торгами от 50 до 500 мс.
Вопрос по работе арены — для готового к торгу участника каким образом арена выбирает пару? Любой из свободных на данный момент? Что происходит, если в данный момент нет других свободных участников?

Или арена выбирает произвольного участника из всех (кроме этого участника кому ищет пару) независимо от их текущей занятости, ставит «торг-пару» в очередь и первый участник ждёт пока второй освободится?

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

Или это как-то иначе решается на арене? Например рандомной и разной небольшой задержкой для обоих скриптов-участников после окончания их торга и отдачей предпочтения (если возможных свободных на данный момент соперников более 1) не тому же с кем был предыдущий торг?

Спаситель! :)


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


Про параметр для многократного запуска — нужен, поддерживаю всецело. Можно ещё --runs=unlim и брякать по обычному Ctrl+C.

Теоретически точно предсказать стоимости для оппонента и не было возможности, из-за возможности стратегий «рандом», «блеф», «слив», а также ряда других.
Ок, спасибо.
(В сообщении про лимит 10 можно пофиксить, что теперь 100)

Алексей, а это случайно прокравшаяся мысль-идея, на строке 145 в haggle.js, что max_obj>100 параметр макс числа объектов поднять с 10 до 100, и будет поправлено обратно на макс 10 предметов, или таки грядёт лимит 100?


Ну и тогда уж может определить лимит на $ total заодно? :)

Бывает. Теперь порядок.
В гите пока всё по старому, стоит 5.
Кстати правилами не запрещена публикация идентичных решений от разных участников «школьников а дай ка поучаствую как тут зазывают».

Особенно если заранее опубликовать сурс решения, который будет дан «школьникам». А лучше трёх с разными стратегиями, и все их дать «школьникам». Значит все участники будут в курсе и ни на какое конкретно решение из участников «масс-приглашённые» не могут быть объявлены работающими — ведь все были в курсе.
example.js — он как раз не случайным образом собирает предложение, а в соответствии с ценностью: себе максимум по цене, остальное сопернику, и если соперник делает предложение с ценностью для example.js более 5 (полцены), то соглашается, иначе мочало сначала.
Всё таки сделать случайный ход, без оглядки на ценность предметов для себя и действия соперника, и согласиться или нет на чужое предложение подбросив монетку это другое.

И про олл-ин вариант в вашем представлении понятней вообще ни разу не стало. Кмк, опять же, олл-ин стратегия это сверхжадная, ультимативно предлагать вариант который даёт тебе всю сумму (10), оставляя второй стороне только вещи с ценностью для себя 0 (а для него как у него там получится, без разницы).

Сложно уловить вашу нить рассуждений, когда не очень понятны предлагаемые стратегии.
Не не, там только изначально не было известно ничего каждому о других игроках. Но после старта игры каждый копил индивидуальную статистику по каждому, типа игрок 3 меня обманул в прошлый ход, игрок 5 обманул более одного раза, игрок 2 никогда не обманывал, игрок 6 обманул именно на 1 ходу — и т.д. Можно было собирать предыдущую статистику сделок по каждому сопернику. Так что не в масках, а с открытыми но изначально незнакомыми лицами.

Information

Rating
Does not participate
Location
Россия
Registered
Activity