Size: a a a

AI Cups Official

2020 November 29

JA

Jemand Andere in AI Cups Official
black hole
Они тогда если прохода нет, будут обходить пытаться
Я ещё часто сталкивался с тем, что им если надо в противоположные направления могут лбами упереться и всё на том
источник

ST

Sergio Tulentsev in AI Cups Official
Jemand Andere
Это иногда необходимо, внезапно
перебить крестьян своих, например?
источник

bh

black hole in AI Cups Official
У меня тогда другой вопрос, поскольку метод вызывается каждый тик, а зафиксировать мы не можем положение каждого юнита (или можем внешнее хранилище сделать?) то все строители же попруться в одну точку чтобы строить дом...
источник

JA

Jemand Andere in AI Cups Official
black hole
У меня тогда другой вопрос, поскольку метод вызывается каждый тик, а зафиксировать мы не можем положение каждого юнита (или можем внешнее хранилище сделать?) то все строители же попруться в одну точку чтобы строить дом...
источник

ST

Sergio Tulentsev in AI Cups Official
что значит не можем? Между тиками храни что хочешь
источник

A

Arthur in AI Cups Official
Александр
Я в с++ не силен, как и в других языках. Создал действия (с этим вроде все нормально):
MoveAction ma = MoveAction(coord, true, true);
BuildAction ba = BuildAction();
AttackAction aa = AttackAction();
RepairAction ra  = RepairAction();
Пытаюсь потом EntityAction создать, но вот такой код не проходит проверку EntityAction ea = EntityAction(ma, ba, aa, ra);
В С++ классы по умолчанию находятся в стеке а не в куче как в яве Нужно либо указатели создавать (не надо в твоем случае), либо вызываь конструктор прямо для создаваемого экземпляра класса:
EntityAction ea = EntityAction(ma, ba, aa, ra); //неправильно
EntityAction ea(ma, ba, aa, ra); //правильно
источник

bh

black hole in AI Cups Official
Sergio Tulentsev
что значит не можем? Между тиками храни что хочешь
Звучит не плохо
источник

A

Arthur in AI Cups Official
black hole
У меня тогда другой вопрос, поскольку метод вызывается каждый тик, а зафиксировать мы не можем положение каждого юнита (или можем внешнее хранилище сделать?) то все строители же попруться в одну точку чтобы строить дом...
Следует создать статический класс и хранить в нем все необходимое. (ранее экземпляр mystrategy пересоздавался периодически, как сейчас не знаю, поэтому и предлагаю статический класс).
источник

bh

black hole in AI Cups Official
Arthur
Следует создать статический класс и хранить в нем все необходимое. (ранее экземпляр mystrategy пересоздавался периодически, как сейчас не знаю, поэтому и предлагаю статический класс).
Сделать сам MyStrategy статическим?
источник

A

Arthur in AI Cups Official
black hole
Сделать сам MyStrategy статическим?
не знаю, я предпочитаю ничего не трогать в том коде, который идет в языковом пакете. Ведь неизвестно какие возникнут проблемы, зачем себе усложнять жизнь?  :)
источник

NK

Nikita Kurgin in AI Cups Official
Arthur
В С++ классы по умолчанию находятся в стеке а не в куче как в яве Нужно либо указатели создавать (не надо в твоем случае), либо вызываь конструктор прямо для создаваемого экземпляра класса:
EntityAction ea = EntityAction(ma, ba, aa, ra); //неправильно
EntityAction ea(ma, ba, aa, ra); //правильно
как понять неправильно, в первом случае просто конструктор 2 раза вызывается
источник

NK

Nikita Kurgin in AI Cups Official
но всё ещё статика, могло быть ещё хуже - динамически
источник

NK

Nikita Kurgin in AI Cups Official
я кстати выделил глобальные данные игры из playerView и локальные, которые имеют отношение к тику
источник

А

Александр in AI Cups Official
Arthur
В С++ классы по умолчанию находятся в стеке а не в куче как в яве Нужно либо указатели создавать (не надо в твоем случае), либо вызываь конструктор прямо для создаваемого экземпляра класса:
EntityAction ea = EntityAction(ma, ba, aa, ra); //неправильно
EntityAction ea(ma, ba, aa, ra); //правильно
Спасибо, но что то все равно ругается (
источник

NK

Nikita Kurgin in AI Cups Official
Александр
Я в с++ не силен, как и в других языках. Создал действия (с этим вроде все нормально):
MoveAction ma = MoveAction(coord, true, true);
BuildAction ba = BuildAction();
AttackAction aa = AttackAction();
RepairAction ra  = RepairAction();
Пытаюсь потом EntityAction создать, но вот такой код не проходит проверку EntityAction ea = EntityAction(ma, ba, aa, ra);
там же EntityAction(std::shared_ptr<MoveAction> moveAction, std::shared_ptr<BuildAction> buildAction, std::shared_ptr<AttackAction> attackAction, std::shared_ptr<RepairAction> repairAction);
источник

NK

Nikita Kurgin in AI Cups Official
shared_ptr везде короче
источник

NK

Nikita Kurgin in AI Cups Official
надо ma = std::make_shared<MoveAction>(...); и т.д.
источник

bh

black hole in AI Cups Official
Nikita Kurgin
надо ma = std::make_shared<MoveAction>(...); и т.д.
А на шарпе как этот код будет выглядеть
источник

NK

Nikita Kurgin in AI Cups Official
хз, я в пакет не смотрел) думаю проще в разы
источник

IL

Ilya L in AI Cups Official
var ma = new MakeAction();
источник