Size: a a a

AI Cups Official

2020 December 05

PF

Pavel F in AI Cups Official
новичкам совет, не читайте чат, начинайте хоть что-то кодить, и вопросы отпадут сами по себе, время сэкономите
источник

PF

Pavel F in AI Cups Official
Aleksey Murushkin
да но с другой стороны чел вообще не знал о соревновании. его пригласили а он даже не рад
я думаю он был рад, до того как узнал что бета уже неделю идёт)
источник

SI

Smirnoff Ice in AI Cups Official
Pavel F
я думаю он был рад, до того как узнал что бета уже неделю идёт)
угу, именно потому что мне очень понравилась игра которую надо закодить.
источник

PF

Pavel F in AI Cups Official
плюс есть такой, что на любой вопрос об игре тут ответят сразу
источник

SA

Samat Agishev in AI Cups Official
Pavel F
новичкам совет, не читайте чат, начинайте хоть что-то кодить, и вопросы отпадут сами по себе, время сэкономите
ага, так и поверил, ну и бредятина!
источник

PF

Pavel F in AI Cups Official
все узкие места и непонятки уже известны
источник

AS

Alexander Sanburn in AI Cups Official
в локал раннере уходят от домов ) есть секрет на сервере/ котрый в локал раннере не повторяется
источник

Д+

Дмитрий + in AI Cups Official
Alexander Paramonov
Народ, подскажите, пожалуйста, куда копать...Идей нет, что еще проверить. Пишу стратегию на C#. У меня есть словарь, в котором хранятся клетки с ресурсами, ключ-это их Id. Я в функции поиска ближайшего ресурса прохожу этот словарь через foreach, и возвращаю значение ключа наиболее подходящего элемента. После этого я пытаюсь создать MoveAction, в котором координата той клетки с ресурсами, и у меня при верификации стратегии на сервере падает с исключением KeyNotFoundException на этой строчке. В локальном раннере всё работает.
Псевдокод:
     int? GetClosestResourceId(Vec2Int builderPosition)
       {
           int minSquaredDistance = -1;
           int? answer = null;

           foreach (var cachedEntity in cachedEntities)
           {
     ...
                       answer = cachedEntity.Key;
                       minSquaredDistance = squaredDistance;
     ...
           }
           return answer;
       }
   
   
     void ProcessWorker()
     {
     ...
     int? resourceToMine = GetClosestResourceId(position);
               if (resourceToMine.HasValue)
               {
                   MoveAction move = new MoveAction(cachedEntities[resourceToMine.Value].Position, true, false);   /// < Вот тут при верификации исключение System.Collections.Generic.KeyNotFoundException: The given key '5565' was not present in the dictionary
                   AttackAction attack = new AttackAction(resourceToMine.Value, null);
                   actionsDictionary.Add(unit.entityId, new EntityAction()
                   {
                       MoveAction = move,
                       AttackAction = attack
                   });
                   unit.currentAction = CurrentAction.Mining;
               }
     }
Могу предположить, что словарик у тебя не чистится, и ресурс закончился (враг собрал), стратегии он не передался (т.к. его нет уже), а ты пытаешь его id (у тебя есть знания о нём с прошлых ходов) указать как цель.
источник

bh

black hole in AI Cups Official
Alexander Paramonov
Народ, подскажите, пожалуйста, куда копать...Идей нет, что еще проверить. Пишу стратегию на C#. У меня есть словарь, в котором хранятся клетки с ресурсами, ключ-это их Id. Я в функции поиска ближайшего ресурса прохожу этот словарь через foreach, и возвращаю значение ключа наиболее подходящего элемента. После этого я пытаюсь создать MoveAction, в котором координата той клетки с ресурсами, и у меня при верификации стратегии на сервере падает с исключением KeyNotFoundException на этой строчке. В локальном раннере всё работает.
Псевдокод:
     int? GetClosestResourceId(Vec2Int builderPosition)
       {
           int minSquaredDistance = -1;
           int? answer = null;

           foreach (var cachedEntity in cachedEntities)
           {
     ...
                       answer = cachedEntity.Key;
                       minSquaredDistance = squaredDistance;
     ...
           }
           return answer;
       }
   
   
     void ProcessWorker()
     {
     ...
     int? resourceToMine = GetClosestResourceId(position);
               if (resourceToMine.HasValue)
               {
                   MoveAction move = new MoveAction(cachedEntities[resourceToMine.Value].Position, true, false);   /// < Вот тут при верификации исключение System.Collections.Generic.KeyNotFoundException: The given key '5565' was not present in the dictionary
                   AttackAction attack = new AttackAction(resourceToMine.Value, null);
                   actionsDictionary.Add(unit.entityId, new EntityAction()
                   {
                       MoveAction = move,
                       AttackAction = attack
                   });
                   unit.currentAction = CurrentAction.Mining;
               }
     }
Зачем тебе словарь?
Двумерного массива достаточно
источник

Д+

Дмитрий + in AI Cups Official
Alexander Paramonov
Народ, подскажите, пожалуйста, куда копать...Идей нет, что еще проверить. Пишу стратегию на C#. У меня есть словарь, в котором хранятся клетки с ресурсами, ключ-это их Id. Я в функции поиска ближайшего ресурса прохожу этот словарь через foreach, и возвращаю значение ключа наиболее подходящего элемента. После этого я пытаюсь создать MoveAction, в котором координата той клетки с ресурсами, и у меня при верификации стратегии на сервере падает с исключением KeyNotFoundException на этой строчке. В локальном раннере всё работает.
Псевдокод:
     int? GetClosestResourceId(Vec2Int builderPosition)
       {
           int minSquaredDistance = -1;
           int? answer = null;

           foreach (var cachedEntity in cachedEntities)
           {
     ...
                       answer = cachedEntity.Key;
                       minSquaredDistance = squaredDistance;
     ...
           }
           return answer;
       }
   
   
     void ProcessWorker()
     {
     ...
     int? resourceToMine = GetClosestResourceId(position);
               if (resourceToMine.HasValue)
               {
                   MoveAction move = new MoveAction(cachedEntities[resourceToMine.Value].Position, true, false);   /// < Вот тут при верификации исключение System.Collections.Generic.KeyNotFoundException: The given key '5565' was not present in the dictionary
                   AttackAction attack = new AttackAction(resourceToMine.Value, null);
                   actionsDictionary.Add(unit.entityId, new EntityAction()
                   {
                       MoveAction = move,
                       AttackAction = attack
                   });
                   unit.currentAction = CurrentAction.Mining;
               }
     }
MoveAction move = new MoveAction(cachedEntities[resourceToMine.Value].Position - ты написал, что ключ - это ид, почему ты сейчас в качестве ключа передаёшь не просто resourceToMine, а какой-то его член?
источник

bh

black hole in AI Cups Official
Pavel F
плюс есть такой, что на любой вопрос об игре тут ответят сразу
Или сразу проигнорят ;)
источник

R

Roman in AI Cups Official
ud1
Ну если не начать программировать в начале беты, то времени мало и шансы что-то выиграть падают. Так что согласен с тем, что рассылка должна идти как можно раньше, можно даже за месяц прислать, что предполагаемые даты такие-то, а тема будет известна в момент старта. Не все же такие фанаты или может быть работы много, чтоб постоянно отслеживать, а не начался ли там раик.
дак мы полгода ждали анонса анонса, а потом нас все обманули несколько раз на счёт дат, предлагаю это тоже вспомнить ;)
источник

AP

Alexander Paramonov in AI Cups Official
Дмитрий +
Могу предположить, что словарик у тебя не чистится, и ресурс закончился (враг собрал), стратегии он не передался (т.к. его нет уже), а ты пытаешь его id (у тебя есть знания о нём с прошлых ходов) указать как цель.
Но в этом случае было бы другое исключение... У меня получение элемента массива и дальнейшее использование этого ключа идут в одном тике.
источник

AP

Alexander Paramonov in AI Cups Official
Дмитрий +
MoveAction move = new MoveAction(cachedEntities[resourceToMine.Value].Position - ты написал, что ключ - это ид, почему ты сейчас в качестве ключа передаёшь не просто resourceToMine, а какой-то его член?
Потому что функция возвращает int?, а не int. На случай, если не найдет подходящий id и вернет null
источник

LS

Lookuut Struchkov in AI Cups Official
Бета закончилась а я уже перегорел 🌚
источник

АB

Алексей Baskakov... in AI Cups Official
black hole
Хватит дизморалить, я сюда пришёл идеи тырить, а не читать простыню полемики.
+++
источник

AP

Alexander Paramonov in AI Cups Official
black hole
Зачем тебе словарь?
Двумерного массива достаточно
Мне показалось, словарь, содержащий свои сущности, более оптимален, чем 2д массив, так как в случае массива для поиска, например, ближайшего рабочего придется все 6400 клеток перебирать
источник

D

Dmitriy in AI Cups Official
Lookuut Struchkov
Бета закончилась а я уже перегорел 🌚
до беты сгорел
источник

bh

black hole in AI Cups Official
Alexander Paramonov
Мне показалось, словарь, содержащий свои сущности, более оптимален, чем 2д массив, так как в случае массива для поиска, например, ближайшего рабочего придется все 6400 клеток перебирать
Позиции рабочих и так доступны, бери да заполняй карту свою
источник

АB

Алексей Baskakov... in AI Cups Official
Свою лепту внесу, я вообще 1сник,java знаю основной синтаксис и страта уровня if else  сейчас на 16 месте
источник