Флейм
GameDev.ru / Флейм / Форум / [Russian AI Cup] CodeWars 2017 (10 стр)

[Russian AI Cup] CodeWars 2017 (10 стр)

Поделиться
Advanced: Тема повышенной сложности или важная.
Страницы: 16 7 8 9 10 11 Следующая »
AdlerПостоялецwww7 дек. 20170:44#135
тщательно отсортировал массив qsort`ом:
nobad_sort | [Russian AI Cup] CodeWars 2017

also: у меня почему-то иногда local-runner зависает где-то на 700 кадре, то есть обе стратегии ждут данные из сети и вообще не грузят проц и localrunner тоже проц не грузит. иногда даже три раза подряд такая фигня бывает :(

Правка: 7 дек. 2017 0:45

JenersПостоялецwww7 дек. 20171:08#136
Adler
Я обычно ставлю Бряк
типа
if tick=311 then
i:=0 //Break

Как правило такой бряк срабатывает, но иногда искомую ошибку не выдает хоть ты тресни )
p.s. я в общем говорил про Repeater... а касательно провисов, то отлавливай функцию (или че у вас там) которая брякать начинает после тика зависания

Правка: 7 дек. 2017 1:33

ud1Постоялецwww7 дек. 20171:11#137
Adler
Да, самое главное это тестирование. Часто запиливаешь новую фишку, смотришь, типа работает. Потом через некоторое время спустя начинаешь дебажить, и понимаешь, что полную фигню написал, с десятью ошибками.
А локал ранером не пользуюсь, у меня самописный локал ранер.
AdlerПостоялецwww8 дек. 201714:18#138
у TouchAI красивая стратегия, заезжаешь так в его облако техники и его юниты как брызги в разные стороны разлетаются, а потом окружаю и атакуют :)
JenersПостоялецwww9 дек. 20170:00#139
Желаю всем успеха в раунде два!
ud1Постоялецwww9 дек. 20171:47#140
Шел шестой год соревнований. Опять проблемы с тестирующей системой.
AdlerПостоялецwww9 дек. 201714:15#141
220*360*19=17.4 суток CPU time. Это 2.5$ если покупать на DigitalOcean.
ud1Постоялецwww9 дек. 201714:52#142
Ну проблемы с программной частью думаю, а не с аппаратной.
AdlerПостоялецwww9 дек. 201715:19#143
я скорее всего больше не буду участвовать в следующих aicup если чего-то одного из этого не будет:
ньютоновской физики в игровом мире
здравого смысла в model::Move
полных исходников всей тестирующей системы(localrunner)
зафиксированый и гарантированный в правилах бюджет CPU time одной любой стратегии на round больше 5$(это 720 часов CPU time на данный момент)

Правка: 9 дек. 2017 15:20

ud1Постоялецwww9 дек. 201716:58#144
Ну исходников ранера точно не будет. Иначе все будут жаловаться, что у жавистов преимущество.
А ограничения по ЦПУ нормальные. Если стратегия тормозит, то ее даже локально фиг протестишь. Я например 10-20 игр прогоняю, у меня минут 15 уходит на это дело. Больше времени я бы тратить не хотел.
С физикой - всегда есть куча людей, которым не нравится и они начинают жаловаться. Наверно поэтому два последних соревнования, вроде как и не в шахматы играем, но и не с физикой.
Управление в этом году не привычно, но разнообразие тоже должно быть.

Но в целом мне кажется интерес падает из года в год, и мне самому поднадоело.

JenersПостоялецwww10 дек. 201711:52#145
ИМХО касательно времени исполнения, можно же было сделать чтобы стратегия не падала, а просто скипала ход. Да не будет более точного отклика на ситуацию на поле боя, но зато после "затыка" стратегия может повести себя адекватно. (При тесте в локал ранере часто наблюдаю такую фигню, что бывают моменты которые просто требуют времени на "подумать")
В общем, не успел подумать, думай в следующий тик
ud1Постоялецwww10 дек. 201712:10#146
Jeners
Детерминированности тогда не будет и все в разы усложнится.
AdlerПостоялецwww10 дек. 201721:46#147
До меня дошло почему у меня иногда стратегия зависает наглухо.
    #define LOCK_GUARD(){\
      if(IsKeyDown(VK_F6))app.run_qap_lite();\
      for(;app.pause&&!app.lock_step;){\
        Sleep(16);if(IsKeyDown(VK_F6))app.run_qap_lite();\
      }\
      if(app.lock_step){app.lock_step=false;}\
      std::lock_guard<std::mutex> guard(app.myMutex);\          // <--- epic fail
    }

...

void MyStrategy::move(const Player&me,const World&world,const Game&game,Move&move){
  CRASH_HANDLER();
  {
    LOCK_GUARD();
    app.objs=world.facilities;
    app.op=world.getOpponentPlayer();
    app.me=me;app.world=world;app.game=game;app.move=move;
    app.update(world);
  }
  app.before_move();
  app.record();
  QAP_PERF_CODE(app.do_move());
  app.after_move();
  move=app.move;
}

в общем в LOCK_GUARD сначала была одна строчка "std::lock_guard<std::mutex> guard(app.myMutex);" и всё работало замечательно, но потом мне захотелось добавить ещё кода, но новый макрос для него делать было лень.
потом я подумал, что надо бы всё содержимое макроса обжат фигурными скобочками для красоты :)

ud1Постоялецwww10 дек. 201722:30#148
Adler
Да ты просто фанат макросов. Я макросы вообще не использую практически. У меня только один - ENABLE_LOGGING, включает логирование для локальных сборок.
AdlerПостоялецwww11 дек. 20170:10#149
220*360*59/3600/720*5 = 9.01$ потрачено на запуск стратегий.
220 sec/player
360 palyers
59 waves
3600 sec/hour
720 hours/month
5$/month

ещё столько же(или чуть больше) на запуск localrunner`а

а на TCP-dump/game.log/zip - в где-то 200 раз больше.

стоимость zip-сжатия TCP-dump`а лень считать. я зачем-то посчитал стоимость хранения несжатых TCP-dump`ов на SSD по 9кр за 250GB и как 300mb на запуск одной стратегии

хочу в отдельный раунд, где стратегии времени дают в 200 раз больше

Правка: 11 дек. 2017 0:17

Страницы: 16 7 8 9 10 11 Следующая »

/ Форум / Флейм / Программирование

2001—2017 © GameDev.ru — Разработка игр