miniaicups icon indicating copy to clipboard operation
miniaicups copied to clipboard

time_left + visio fix

Open alex3d opened this issue 5 years ago • 5 comments

  • Добавлен time_left (#265)
  • В visio direction теперь сохраняется не предыдущая, а текущая команда

alex3d avatar Aug 09 '19 06:08 alex3d

В visio direction теперь сохраняется не предыдущая, а текущая команда

Это означает, что теперь в тике N будет храниться direction, т.е. команда отправленная в тик N, а не до него? Сервак разве так делает и может ли? Если роботу приходит тик, там же не может быть информации о ходах других роботов в этот самый тик. Или я что-то не так понял?

0x0badc0de avatar Aug 09 '19 10:08 0x0badc0de

Это означает, что теперь в тике N будет храниться direction, т.е. команда отправленная в тик N, а не до него?

В visio.gz - да (для последнего тика жизни игрока в текущем visio команду узнать нельзя). В стратегию конечно по прежнему будет приходить предыдущая команда.

alex3d avatar Aug 09 '19 13:08 alex3d

В end_game же пишется?

{"type": "end_game", "events": [{"tick_num": 648, "event": "line crossed by other player", "player": {"id": 3, "direction": "up", "lines_length": 18, "position": [645, 695]}, "other": {"id": 6, "direction": "right", "lines_length": 0, "position": [675, 645]}}]}

А предложенные изменения получается делают бесполезным visio для тестов, т.к. там уже не те тики, что получает робот.

0x0badc0de avatar Aug 09 '19 13:08 0x0badc0de

Может ломать пользовательские решения на статически-типизированных языках (unmarshal в go). + к этому, нам бы не хотелось увеличивать объём хранимых логов на серверах.

xammi avatar Aug 09 '19 13:08 xammi

нам бы не хотелось увеличивать объём хранимых логов на серверах

Размер логов не меняется:

  1. time_left в логи не попадает, только в стратегии отправляется
  2. direction в логи и сейчас добавляется, только сейчас добавляется не текущий, а предыдущий direction, что нелогично и не позволяет нормально сделать replay visio

Может ломать пользовательские решения на статически-типизированных языках (unmarshal в go)

Звучит крайне сомнительно. Unmarshal в go без проблем десериализует json с дополнительными полями не описанными в структуре. Любая адекватная json-библиотека должна по-умолчанию игнорировать неизвестные поля. Ладно, хрен с ним с time_limit, примите хотя бы 990c6d83ef46b78c43adeea570973c9288626351 и 570294100b72fe1bceed9e2fae424c2e1dbb3a0b, чтобы починить реплей который вы оставили в localrunner.

alex3d avatar Aug 09 '19 15:08 alex3d