Открытое соревнование по программированию искусственного интеллекта

Правила

Раунд 1: до начала

Проект

Песочница

Раунд 1

Раунд 2

Финал

Последние комментарии

20 ноября 05:43: AlexKol написал комментарий в посте Языковые пакеты
20 ноября 05:40: AlexKol написал комментарий в посте Раунд 1
20 ноября 02:59: dimir написал комментарий в посте Раунд 1
20 ноября 01:58: RolandD написал комментарий в посте Раунд 1
20 ноября 01:48: SladeThe написал комментарий в посте Языковые пакеты
20 ноября 01:16: Zabidon написал комментарий в посте Языковые пакеты
19 ноября 22:32: SladeThe написал комментарий в посте Утилита Repeater
19 ноября 22:28: MrMorozis написал комментарий в посте Утилита Repeater
19 ноября 22:13: mixei4 написал комментарий в посте Языковые пакеты
19 ноября 22:02: AlexKol написал комментарий в посте Языковые пакеты

Группа ВКонтакте

Telegram-чат

 

Вы можете скачать подробные правила в формате PDF. В них изложен формат проведения турнира, дано описание игрового мира и технических характеристик объектов. Кроме того, там вы найдёте JavaDocs для всех стандартных классов, используемых в стратегиях.

Также правила опубликованы на GitHub. Как и на нашем сайте, там вы всегда сможете найти актуальную версию правил, а также отслеживать историю внесённых правок.

Актуальная версия:

  • 13 ноября: 1.0.2.


jurifoll

jurifoll

Москва

Что-то из правил не совсем понятно, как учитывается “защита” при вычислении итогового урона. Вычитается из атаки? Тогда что если защита больше атаки, урон не наносится?

07.11.2017 1:58:05
zn-soft

zn-soft

Соллерс

Можно ли использовать в стратегии неописанный в документации, но присутствующий в модели класс PlayerContext ?

07.11.2017 7:40:57
grindos

grindos

Москва

Ссылка на GitHub битая.

07.11.2017 10:51:47
AlexKol

AlexKol

BB

А как получить размер всего мира? world.Width/Height это размер окна где движуха

07.11.2017 11:08:34
theShade

theShade

Crypton/RDL

Из правил: “Количество техники у каждого игрока в начале игры кратно 100. Техника разбита на группы по 100 юнитов в каждой.” Вот только в начале игры около 5 групп. 5 х 100 = 500. 500 > 100

07.11.2017 11:32:55
theShade

theShade

Crypton/RDL

А все, понял. “Кратно” пропустил мимо ушей

07.11.2017 11:33:25
Antik

Antik

Киев

AlexKol

AlexKol

BB

А как получить размер всего мира? world.Width/Height это размер окна где движуха

game.getWorldHeight(); game.getWorldWidth();

07.11.2017 12:29:26
Antik

Antik

Киев

AlexKol

AlexKol

BB

А как получить размер всего мира? world.Width/Height это размер окна где движуха

game.getWorldHeight(); game.getWorldWidth();

07.11.2017 12:29:26
AlexKol

AlexKol

BB

Antik

Antik

Киев

game.getWorldHeight(); game.getWorldWidth();

Нет, я понял вроде что поле идет от центра. от -world.Width до world.Width и от -world.Height до world.Height

07.11.2017 12:33:14
Antik

Antik

Киев

AlexKol

AlexKol

BB

Нет, я понял вроде что поле идет от центра. от -world.Width до world.Width и от -world.Height до world.Height

Игровая область ограничена квадратом, левый верхний угол которого имеет координаты (0.0, 0.0), а длина стороны равна 1024.0. //правила. пункт 2.2 Описание игрового мира

07.11.2017 12:36:36
AlexKol

AlexKol

BB

Antik

Antik

Киев

Игровая область ограничена квадратом, левый верхний угол которого имеет координаты (0.0, 0.0), а длина стороны равна 1024.0. //правила. пункт 2.2 Описание игрового мира

Из этого описание можно предположить что мир всё таки не от 0 до 1024 “Корректными значениями для действия ActionType.MOVEявляются вещественные числа от -game.worldWidthдо game.worldWidthвключительно.”

07.11.2017 12:42:14
AlexKol

Из этого описание можно предположить что мир всё таки не от 0 до 1024 “Корректными значениями для действия ActionType.MOVEявляются вещественные числа от -game.worldWidthдо game.worldWidthвключительно.”

Но это бред, скорее всего опечатка. Ни разу не видел у кого то из объектов отрицательное значение.

07.11.2017 12:57:07
Antik

Antik

Киев

AlexKol

AlexKol

BB

Но это бред, скорее всего опечатка. Ни разу не видел у кого то из объектов отрицательное значение.

Значения просто корректны. Но при попытке пересечь игровую область симулятор остановит юнит. Можно использовать для задания направлений. Игровая область ограничена [0, 1024] по двум осям.

07.11.2017 13:02:12
Antik

Antik

Киев

AlexKol

AlexKol

BB

Но это бред, скорее всего опечатка. Ни разу не видел у кого то из объектов отрицательное значение.

Ага. вот SetX является обязательным параметром для действия ActionType.MOVE и задаёт целевую величину смещения юнитов вдоль оси абсцисс. Смещение действительно может быть отрицательным при движении влево в SetX и вверх в SetY

07.11.2017 13:05:30
PlayerDark

Я не понял, как вычисляется видимость техники. Учитывается только клетка на которой стоит отряд, или все клетки между двумя отрядами?

07.11.2017 14:13:01
DistinGa

DistinGa

СибГАУ им. Решетнева

Я не понял, как вычисляется видимость техники. Учитывается только клетка на которой стоит отряд, или все клетки между двумя отрядами?

Только клетки, на которых стоит техника. Т.е. возможна ситуация, когда два танка стоят по обе стороны от лесополосы из двух клеток и видят друг друга. А когда кто-то заедет в лес - уже не видят :)

07.11.2017 14:27:24
DistinGa

DistinGa

СибГАУ им. Решетнева

Интересно вот, как видимость считается в ситуациях земля-воздух и воздух-земля.

07.11.2017 14:29:24
PlayerDark
DistinGa

DistinGa

СибГАУ им. Решетнева

Интересно вот, как видимость считается в ситуациях земля-воздух и воздух-земля.

Ну, определение видимости вроде бы одностороннее, так что берутся соответствующие коэффициенты.

07.11.2017 15:23:51
PlayerDark

Кстати, БРЭМы могут хилить и летающие юниты? Если да, то для них это будет основной задачей.

07.11.2017 15:25:17
Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

Есть возможность получить список всех юнитов? world.getVehicleUpdates как-то странно работает. Например, на нулевом тике он дает пустой список

07.11.2017 18:37:18
SteveRU

SteveRU

Санкт-Петербург

Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

Есть возможность получить список всех юнитов? world.getVehicleUpdates как-то странно работает. Например, на нулевом тике он дает пустой список

Потому что на 0 еще никто не совершил никакое действие, соответственно ни одно поле юнитов не изменилось. На 0 надо использовать genNewVehicle

07.11.2017 18:41:08
SteveRU

SteveRU

Санкт-Петербург

Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

Есть возможность получить список всех юнитов? world.getVehicleUpdates как-то странно работает. Например, на нулевом тике он дает пустой список

А уже на последующих тиках использовать как раз VehicleUpdate

07.11.2017 18:41:47
SladeThe

SladeThe

Команда Russian AI Cup

Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

Есть возможность получить список всех юнитов? world.getVehicleUpdates как-то странно работает. Например, на нулевом тике он дает пустой список

Полный список техники не передаётся каждый тик в целях минимизации пересылаемых данных и используемого клиентом процессорного времени. Вам необходимо самостоятельно поддерживать актуальную коллекцию техники, как это сделано например в примере из раздела “Быстрый старт”.

07.11.2017 18:58:33
kirimedia

kirimedia

Москва

  1. В правилах сказано “Коллизия юнитов между собой, а также с границами карты не допускается игровым симулятором. Исключение составляют воздушные юниты, принадлежащие разным игрокам”

А что происходит при коллизии двух воздушных юнитов? Они врезаются и самоуничтожаются? Или могут занимать одну и ту же клетку?

  1. Из правил не ясно, что такое защита юнита и как высчитывается урон?

  2. Игры будут всегда 1 на 1? В правилах есть “намёки”, что не всегда.

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

  4. БРЭМ ремонтирует воздушные юниты? БРЭМ ремонтирует только неподвижные юниты (те у кого Action != MOVE и ROTATE)?

07.11.2017 19:34:33
steleal

steleal

Ульяновск

kirimedia

kirimedia

Москва

В правилах сказано “Коллизия юнитов между собой, а также с границами карты не допускается игровым симулятором. Исключение составляют воздушные юниты, принадлежащие разным игрокам”     А что происходит при коллизии двух воздушных юнитов? Они врезаются и самоуничтожаются? Или могут занимать одну и ту же клетку? ...
  1. В игре нет клеток как таковых. Если один юнит натыкается на другой, он просто не едет дальше, стоит и ждет либо новых указаний, либо пока освободят путь. 2.Урон высчитывается как атака вашего юнита минус защита вражьего. Так, у танка атака 100 по наземным, защита 80 от наземных. Урон танка по танку - 20. За пять выстрелов они убьют друг друга. 3. Перемещаются строго по прямой. В конце выстроятся в начальном порядке. К центру приближаться не будут. Да, шаманить.
  2. Брэм ремонтирует воздушные юниты, если они в радиусе его действия.

07.11.2017 20:01:36
steleal

steleal

Ульяновск

Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

Есть возможность получить список всех юнитов? world.getVehicleUpdates как-то странно работает. Например, на нулевом тике он дает пустой список

У невозможности получать полный список юнитов каждый тик есть приятный побочный эффект: плеер на сайте в этом году по сравнению с прошлым - просто летает!

07.11.2017 20:08:55
SladeThe

SladeThe

Команда Russian AI Cup

dos.moreda

dos.moreda

Sharif University

is there any English document ?

Not now, but will be available soon.

Meanwhile you can read sample Java code here.

07.11.2017 21:27:05
SladeThe

SladeThe

Команда Russian AI Cup

Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

Существует действие ROTATE. Как выбирается в какую сторону идет поворот и можно ли задать направление поворота (по/против чс) ?

move.angle же.

07.11.2017 21:27:43
Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

SladeThe

SladeThe

Команда Russian AI Cup

move.angle же.

спасибо, не обратил внимание.

07.11.2017 21:49:35
Kirchhoff

Kirchhoff

МГУ им. М.В. Ломоносова

По поводу move.setMaxSpeed. Если я укажу танку максимальную скорость 0.2, то по лесу он поедет 0.16 или все же 0.2 ?

07.11.2017 22:07:58
Hustlers

Hustlers

СберТех

  1. Обратную связь о “действие выполнено или нет” мы никак не можем получить, верно?
  2. Если работа какого-либо “move” не успевает выполниться за 1 тик, то следующий тик пропускается?

07.11.2017 22:30:16
kirimedia

kirimedia

Москва

Ошибка в правилах “Приказать выделенным юнитам меремещаться в указанном направлении.”

07.11.2017 23:05:40
jurifoll

jurifoll

Москва

Урон высчитывается как атака вашего юнита минус защита вражьего. Так, у танка атака 100 по наземным, защита 80 от наземных. Урон танка по танку - 20. За пять выстрелов они убьют друг друга.

Тогда правильно ли я понял, что истребители неуязвимы для танков?

08.11.2017 0:01:38
serlis

serlis

Харьковский НУ им. Каразина

А есть возможность выделить все вертолёты и танки (ровно два типа юнитов). Или можно выделить либо всех либо один тип?

08.11.2017 0:02:55
serlis

serlis

Харьковский НУ им. Каразина

jurifoll

jurifoll

Москва

Тогда правильно ли я понял, что истребители неуязвимы для танков?

Да, в локал ранере имено так

08.11.2017 0:03:29
bearf

bearf

ООО "ГрадоСервис"

Цитата из п. 2.4 правил:

Разумеется, при отключенном тумане войны значение имеет только коэффициент скорости.

Точно ли это верно? Кажется, что коэффициенты дальности обзора/незаметности важны даже без тумана войны.

08.11.2017 12:05:40
Sanda

Sanda

JetBrains

bearf

bearf

ООО "ГрадоСервис"

Цитата из п. 2.4 правил: Точно ли это верно? Кажется, что коэффициенты дальности обзора/незаметности важны даже без тумана войны.

П. 2.3. В отсутствие тумана войны, дальность обзора не оказывает никакого влияния на игру. При включенном тумане войны стратегия участника будет получать данные только о тех юнитах противника, которые находятся в пределах дальности обзора хотя бы одного юнита этого участника.

08.11.2017 12:23:18
AlexKol

AlexKol

BB

jurifoll

jurifoll

Москва

Тогда правильно ли я понял, что истребители неуязвимы для танков?

Да.

08.11.2017 12:26:15
bearf

bearf

ООО "ГрадоСервис"

Sanda

Sanda

JetBrains

П. 2.3. В отсутствие тумана войны, дальность обзора не оказывает никакого влияния на игру. При включенном тумане войны стратегия участника будет получать данные только о тех юнитах противника, которые находятся в пределах дальности обзора хотя бы одного юнита этого участника.

Тьфу ты. Я читал эту фразу как указание на то, что обзор/видимость влияют на вероятность попадания.

Спасибо.

08.11.2017 12:29:05
AlexKol

AlexKol

BB

Я понял что можно сделать группу юнитов, а потом даже если они разбросаны то просто по номеру этой группы их выделить. И чет я не понял как назначить группу, или это делается автоматически когда я выделяю. И каждое новое выделение, это новая группа? И просто нужно запомнить нужную.

08.11.2017 14:23:17
callidus

callidus

Киев

AlexKol

AlexKol

BB

Я понял что можно сделать группу юнитов, а потом даже если они разбросаны то просто по номеру этой группы их выделить. И чет я не понял как назначить группу, или это делается автоматически когда я выделяю. И каждое новое выделение, это новая группа? И просто нужно запомнить нужную.

Для назначения группы нужно два действия: 1. Выделить нужные юниты (например при помощи CLEAR_AND_SELECT) 2. Назначить выделенные юниты в группу при помощи ASSIGN

Для того чтобы потом выделить юниты входящие в группу, нужно использовать тот же CLEAR_AND_SELECT с setGroup

08.11.2017 14:46:45
AlexKol

AlexKol

BB

callidus

callidus

Киев

Для назначения группы нужно два действия: 1. Выделить нужные юниты (например при помощи CLEAR_AND_SELECT) 2. Назначить выделенные юниты в группу при помощи ASSIGN Для того чтобы потом выделить юниты входящие в группу, нужно использовать тот же CLEAR_AND_SELECT с setGroup

Так, спасибо. Лишние действия блин…

08.11.2017 14:55:34
callidus

callidus

Киев

serlis

serlis

Харьковский НУ им. Каразина

А есть возможность выделить все вертолёты и танки (ровно два типа юнитов). Или можно выделить либо всех либо один тип?

Можно при помощи ADD_TO_SELECTION добавить новый тип к уже выделенному

08.11.2017 14:55:47
AlexKol

AlexKol

BB

А можно как то сказать объектам двигаться, и в точку, а не смещаться на указанный вектор?

08.11.2017 15:10:58
gorser

gorser

СКФУ

есть ли кулдаун на действие выделения? например на 1 тике я выполняю clearandselect для 40 юнитов из 100, а на 2м тике addselection для 40 юнитов другого типа у меня не выделяется второй тип…. п.с. пишу на c#

09.11.2017 2:40:24
GoodDalek

GoodDalek

АлтГУ

AlexKol

AlexKol

BB

А можно как то сказать объектам двигаться, и в точку, а не смещаться на указанный вектор?

ну так, простая математика: move.setX(targetX - x); move.setY(targetY - y); , где (x,y) - текущее положение

09.11.2017 6:54:40
AlexKol

AlexKol

BB

GoodDalek

GoodDalek

АлтГУ

ну так, простая математика: move.setX(targetX - x); move.setY(targetY - y); , где (x,y) - текущее положение

Не в этом смысле. Это то понятно. Чтобы они не группой двигались а в точке собирались.

09.11.2017 7:41:21
GoodDalek

GoodDalek

АлтГУ

AlexKol

AlexKol

BB

Не в этом смысле. Это то понятно. Чтобы они не группой двигались а в точке собирались.

Типа “разойдись”, “на плацу в 3 ряда постройсь”. Не, это так не работает.

09.11.2017 7:56:30
Spasitel

Spasitel

Сбербанк Технологии

А это нормально, что построения “ломаются” со временем? Например если выделить в группу танки и истребители и давать им команды ехать на 20 вправо, достаточно редко чтобы они успевали закончить выполнение предыдущей команды, то истребители со временем улетят далеко вперед. То есть команда группе идет - 20 вправо, а на деле танки 15 вправо, истребители 25

09.11.2017 12:03:55
AlexKol

AlexKol

BB

Spasitel

Spasitel

Сбербанк Технологии

А это нормально, что построения “ломаются” со временем? Например если выделить в группу танки и истребители и давать им команды ехать на 20 вправо, достаточно редко чтобы они успевали закончить выполнение предыдущей команды, то истребители со временем улетят далеко вперед. То есть команда группе идет - 20 вправо, а на деле танки 15 вправо, истребители 25

Нужно использовать скорость самого медленного юнита * 0.6, тогда построение 100% не рассыпится.

09.11.2017 12:52:40
crabar0

А танки действительно могут атаковать воздушные юниты? Визуально у меня создалось впечатление, что они игнорировали перехватчики у меня в локальных играх.

09.11.2017 15:22:46
AlexKol

А танки действительно могут атаковать воздушные юниты? Визуально у меня создалось впечатление, что они игнорировали перехватчики у меня в локальных играх.

Урон танка по самолету, меньше чем защита самолета от наземных юнитов.

09.11.2017 15:30:10
crabar0

Урон танка по самолету, меньше чем защита самолета от наземных юнитов.

Точно, спасибо!

Еще вопрос насчет формаций. К примеру, я объединил в группу разные типы техники. И хочу чтобы они собрались в общую формацию. Если не буду ограничивать скорость и направляю их, к примеру, в центр карты, то дистанция между кусками группы будет увеличиваться, я так понимаю. Если буду ограничивать, то дистанация будет сохранять как в начальном положении. А как их сгруппировать в одну точку? Пытался сделать MOVE с нулевым смещением, но ничего не происходит. Или надо вначале поставить кусками в нужные позиции, а потом группировать?

09.11.2017 15:41:22
AlexKol

Точно, спасибо! Еще вопрос насчет формаций. К примеру, я объединил в группу разные типы техники. И хочу чтобы они собрались в общую формацию. Если не буду ограничивать скорость и направляю их, к примеру, в центр карты, то дистанция между кусками группы будет увеличиваться, я так понимаю. Если буду ограничивать, то дистанация будет сохранять как в начальном положении. А как их сгруппировать в одну точку? Пытался сделать MOVE с нулевым смещением, но ничего не происходит. Или надо вначале поставить кусками в нужные позиции, а потом группировать?

Нет чудо метода который это делает. Вам требуется это самому запрограммировать. Сейчас побеждает тот кто сможет сделать более мощную кучку.

09.11.2017 15:44:54
Khao

Khao

Екатеринбург

У меня не работает вызов группы и отдача ей команд. Пример:

  1. ClearAndSelect выбор всех вертолетов (выбрались).
  2. Assign 1 (непонятно, произошло ли что-то или нет).
  3. Move куда-нибудь (улетели)
  4. ClearAndSelect выбор всех танков (выбрались)
  5. Assign 2
  6. Move куда-нибудь (утопали). – а дальше
  7. ClearAndSelect Group=1 (без других параметров)
  8. Move куда-нибудь и ничего не происходит.

По правилам должно работать. Я что-то делаю не так?

09.11.2017 17:51:31
GoodDalek

GoodDalek

АлтГУ

между 2 и 3 надо ещё раз clear and select (выбрать 1 группу) и так по аналогии

09.11.2017 18:04:00
Khao

Khao

Екатеринбург

GoodDalek

GoodDalek

АлтГУ

между 2 и 3 надо ещё раз clear and select (выбрать 1 группу) и так по аналогии

Нет. С чего бы? Assign не снимает же выделения. Пункт 3 работает так как надо. Не работает связка 7-8.

09.11.2017 18:08:41
GoodDalek

GoodDalek

АлтГУ

Khao

Khao

Екатеринбург

Нет. С чего бы? Assign не снимает же выделения. Пункт 3 работает так как надо. Не работает связка 7-8.

А, точно. Может для assign не все данные. Left, top, right, bottom

09.11.2017 18:15:02
callidus

callidus

Киев

Khao

Khao

Екатеринбург

Нет. С чего бы? Assign не снимает же выделения. Пункт 3 работает так как надо. Не работает связка 7-8.

Проверьте привязываются ли юниты к группе, у Vehicle есть параметр соответствующий

09.11.2017 18:16:35
Khao

Khao

Екатеринбург

GoodDalek

GoodDalek

АлтГУ

А, точно. Может для assign не все данные. Left, top, right, bottom

Для Assign не надо ничего кроме группы :). Тем не менее, вопрос снимается, ошибку нашёл, с правилами никак не связано.

09.11.2017 18:17:09
vzverev78

vzverev78

Softgrad Solutions

А что означает “центр управления (CONTROL_CENTER): увеличивает лимит количества действий стратегии на 2 за 60 тиков”? Нигде больше не нашёл упоминание лимита количества действий. Один тик — одно действие? Если может быть больше, то как их передавать стратегии?

10.11.2017 4:24:11
vzverev78

vzverev78

Softgrad Solutions

vzverev78

vzverev78

Softgrad Solutions

А что означает “центр управления (CONTROL_CENTER): увеличивает лимит количества действий стратегии на 2 за 60 тиков”? Нигде больше не нашёл упоминание лимита количества действий. Один тик — одно действие? Если может быть больше, то как их передавать стратегии?

Нашел: “Изначально количество возможных действий стратегии ограничено 6-ю ходами за 60 тиков.”

10.11.2017 4:26:42
kirimedia

kirimedia

Москва

У юнита может быть несколько групп? Тогда при команде выделения любой из них он будет считаться выделенным и команда перемещения на него подействует?

10.11.2017 21:09:28
AlexKol

AlexKol

BB

kirimedia

kirimedia

Москва

У юнита может быть несколько групп? Тогда при команде выделения любой из них он будет считаться выделенным и команда перемещения на него подействует?

Да

10.11.2017 21:37:00
ohdamn_jesus

ohdamn_jesus

СПбГУТ им. Бонч-Бруевича

Подскажите пожалуйста, что значит “Изначально количество возможных действий стратегии ограничено 12-ю ходами за 60 тиков”? Выделение юнита считается за ход? или за ход считается только их какое-либо передвижение?

10.11.2017 22:36:52
griboedov

griboedov

Севастополь

ohdamn_jesus

ohdamn_jesus

СПбГУТ им. Бонч-Бруевича

Подскажите пожалуйста, что значит “Изначально количество возможных действий стратегии ограничено 12-ю ходами за 60 тиков”? Выделение юнита считается за ход? или за ход считается только их какое-либо передвижение?

все считается, любой Action в Move - считается за действие. Ну кроме NONE

10.11.2017 22:55:57
vladrishe

vladrishe

Краснодар

AlexKol

AlexKol

BB

Нужно использовать скорость самого медленного юнита * 0.6, тогда построение 100% не рассыпится.

Получается, коэффициент скорости определяет максимальную скорость юнита на местности?

P.S.: В правилах сказано: “Если с коэффициентами скорости и дальности обзора всё очевидно ..”. Однако, вот такая логика мне очевидной не кажется…

11.11.2017 0:34:43
AlexKol

AlexKol

BB

vladrishe

vladrishe

Краснодар

Получается, коэффициент скорости определяет максимальную скорость юнита на местности? P.S.: В правилах сказано: “Если с коэффициентами скорости и дальности обзора всё очевидно ..”. Однако, вот такая логика мне очевидной не кажется…

Я сразу понял)

11.11.2017 5:49:47
Spasitel

Spasitel

Сбербанк Технологии

Предложение по улучшению документации: Может стоит добавить в описание возможных действий игрока какие параметры необходимо задавать для этого действия? То есть перенести (а лучше продублировать) данную информацию из описания методов класса Move в методы ActionType.

11.11.2017 19:51:19
ohdamn_jesus

ohdamn_jesus

СПбГУТ им. Бонч-Бруевича

А можно ли как то определить в любой момент времени где находится техника противника?) если то как?

11.11.2017 22:05:22
Jeners
ohdamn_jesus

ohdamn_jesus

СПбГУТ им. Бонч-Бруевича

А можно ли как то определить в любой момент времени где находится техника противника?) если то как?

Нужно скомутировать два массива получаемых методами getNewVehicles и getVehicleUpdates. По сути Update почти тотже массив что и getNew но несколько “кастрированный” т.е. в нем нет таких переменных как тип техники, айди игрока и т.п. (которые в принципе неизменны) Ну и в конечном счете нужно просто читать результат комутации

11.11.2017 22:17:36
PlayerDark

Что я сейчас узнал: вращение абсолютно бесполезная команда, потому что задается в относительных координатах, а узнать направление группы нет никакой возможности.

11.11.2017 23:14:11
Jeners

Что я сейчас узнал: вращение абсолютно бесполезная команда, потому что задается в относительных координатах, а узнать направление группы нет никакой возможности.

Направление движения? Считай вектор x.y минус предыдущий x,y. Если вопрос про текущий угол поворота группы, то стоит завести переменную которая будет это отслеживать ни как иначе

11.11.2017 23:20:42
PlayerDark

Направление движения? Считай вектор x.y минус предыдущий x,y. Если вопрос про текущий угол поворота группы, то стоит завести переменную которая будет это отслеживать ни как иначе

Ну да, только потом все перемешается и заданный угол перестанет быть актуальным. Техника ведет себя совершенно непредсказуемо.

11.11.2017 23:26:32
fatbis

When will you publish the rules in English? Because i dont still know how to use some of methods, please publish in english asap

13.11.2017 18:47:01
SladeThe

SladeThe

Команда Russian AI Cup

When will you publish the rules in English? Because i dont still know how to use some of methods, please publish in english asap

Unfortunately our translators are delaying rules in English. It may take up to a week. If you don’t understand some things, just ask here and I’ll try to explain.

14.11.2017 1:07:25
cArmius

cArmius

МГУ

я искренне не понимаю почему в исходниках на 3-м питоне нет ни одного метода Move, а только переменные. и как запоминать группы?

если я делаю 4 действия: 1) CLEAN_AND_SELECT 2) ASSIGN move.group = 1 3) ClAEN_AND_SELECT move.group = 1 4) MOVE то, как я понимаю я должен выбрать группу юнитов, записать их в группу с номером “1”, выбрать группу “1” и двигать её - однако ничего не происходит

14.11.2017 7:06:32
cArmius

cArmius

МГУ

и еще - как можно узнать координаты юнита? вот у меня есть юнит с id допустим 1. и его x,y не меняются во время движения =/

14.11.2017 9:27:59
13human

13human

Квартплата 24

cArmius

cArmius

МГУ

и еще - как можно узнать координаты юнита? вот у меня есть юнит с id допустим 1. и его x,y не меняются во время движения =/

Ограничения - одна команда в тик, но не более чем X раз за 60 тиков (надо проверять me.getRemainingActionCooldownTicks). Каждый тик приезжают world.getVehicledUpdates, в которых лежат изменения в состоянии юнитов.

14.11.2017 9:35:35
cArmius

cArmius

МГУ

13human

13human

Квартплата 24

Ограничения - одна команда в тик, но не более чем X раз за 60 тиков (надо проверять me.getRemainingActionCooldownTicks). Каждый тик приезжают world.getVehicledUpdates, в которых лежат изменения в состоянии юнитов.

то есть я еще должен своими средствами отслеживать изменения координат юнитов?! ваат?! что за бред.

14.11.2017 9:59:29
AlexKol

AlexKol

BB

cArmius

cArmius

МГУ

то есть я еще должен своими средствами отслеживать изменения координат юнитов?! ваат?! что за бред.

Вы документацию вообще читали?

14.11.2017 10:09:23
cArmius

cArmius

МГУ

AlexKol

AlexKol

BB

Вы документацию вообще читали?

открываем документацию. смотрим на кучу методов в ней. открываем питоновский кусок, допустим, VehicleUpdate. расстраиваемся, что в нем нет ни одного метода.

да, я прочитал документацию. я уже несколько часов пытаюсь понять как этот пазл соотносится с моим языковым пакетом.

14.11.2017 10:20:37
AlexKol

AlexKol

BB

cArmius

cArmius

МГУ

открываем документацию. смотрим на кучу методов в ней. открываем питоновский кусок, допустим, VehicleUpdate. расстраиваемся, что в нем нет ни одного метода. да, я прочитал документацию. я уже несколько часов пытаюсь понять как этот пазл соотносится с моим языковым пакетом.

Если мне память не изменяет, в документации написано какие данные вы получаете на вход и что вы должны сами отслеживать все изменения в объектах. Код занимает 50 строк у меня, из них 40 доп вычисления которые по сути не нужны кому то.

14.11.2017 10:26:22
xomachine

xomachine

ННГУ им. Лобачевского

cArmius

cArmius

МГУ

открываем документацию. смотрим на кучу методов в ней. открываем питоновский кусок, допустим, VehicleUpdate. расстраиваемся, что в нем нет ни одного метода. да, я прочитал документацию. я уже несколько часов пытаюсь понять как этот пазл соотносится с моим языковым пакетом.

Львиная доля методов в документации - геттеры и сеттеры. В питоне, к счастью, этого бардака нету, там можно просто присвоить значение переменной без ненужных прослоек. Хотя некоторые методы в питоне всё же есть. Например Vehicle.update или World.get_my_player.

14.11.2017 10:43:24
cArmius

cArmius

МГУ

xomachine

xomachine

ННГУ им. Лобачевского

Львиная доля методов в документации - геттеры и сеттеры. В питоне, к счастью, этого бардака нету, там можно просто присвоить значение переменной без ненужных прослоек. Хотя некоторые методы в питоне всё же есть. Например Vehicle.update или World.get_my_player.

в итоге и сделал через апдейт - бегу по сохраненному списку и если совпадает id объекта - обновляю его. но суть в том, что это занимает процессорное время со стороны участника, а если бы давались сразу координаты каждый ход (абсолютные), то это время было бы занято на стороне сервера.

14.11.2017 10:59:25
AlexKol

AlexKol

BB

cArmius

cArmius

МГУ

в итоге и сделал через апдейт - бегу по сохраненному списку и если совпадает id объекта - обновляю его. но суть в том, что это занимает процессорное время со стороны участника, а если бы давались сразу координаты каждый ход (абсолютные), то это время было бы занято на стороне сервера.

У всего есть объяснения.

14.11.2017 11:04:13
xelmed91

Какие либо пакеты доступны кроме стандартных? Например numpy для python?

14.11.2017 11:13:10
tyamgin

tyamgin

Симферополь

Какие либо пакеты доступны кроме стандартных? Например numpy для python?

Написано же “Python с NumPy и SciPy”

http://russianaicup.ru/p/packs

14.11.2017 11:31:23
xomachine

xomachine

ННГУ им. Лобачевского

cArmius

cArmius

МГУ

в итоге и сделал через апдейт - бегу по сохраненному списку и если совпадает id объекта - обновляю его. но суть в том, что это занимает процессорное время со стороны участника, а если бы давались сразу координаты каждый ход (абсолютные), то это время было бы занято на стороне сервера.

Ну процессорное время со стороны участника будет занято в любом случае (если конечно стратегия чуть сложнее Quick start), ведь юнитов надо как-то классифицировать, кластеризовать и т. д. Система апдейтов даже немного экономит время, на мой взгляд.

14.11.2017 11:37:16
MrErsh

MrErsh

ЮУрГУ (НИУ)

В классе World для свойств-двумерных массивов(вроде TerrainByCellXY) гарантируется, что все строки имеют одинаковую длину?

14.11.2017 21:31:05
SladeThe

SladeThe

Команда Russian AI Cup

When will you publish the rules in English? Because i dont still know how to use some of methods, please publish in english asap

The rules in English are available to download.

15.11.2017 19:22:47
andrey_bogdanov

Урон танка по самолету, меньше чем защита самолета от наземных юнитов.

То что защита больше урона значит что танки вообще не могут истребители? Или всё-таки могут, но атака могут значительно меньше? Если будут то как? 60, 10(70-60) или коэффициент?

15.11.2017 19:24:43
Sanda

Sanda

JetBrains

То что защита больше урона значит что танки вообще не могут истребители? Или всё-таки могут, но атака могут значительно меньше? Если будут то как? 60, 10(70-60) или коэффициент?

Вообще не могут, да.

15.11.2017 19:33:13
mi5

mi5

Симферополь

Испоганили игру ядерными бомбами. Лепешки и так бы рассосались из-за фабрик.

16.11.2017 9:02:53
4way

4way

Первый Бит

mi5

mi5

Симферополь

Испоганили игру ядерными бомбами. Лепешки и так бы рассосались из-за фабрик.

это элемент игры, которую добавили разработчики, и она очень крутая, так как добавляем много новых маневров для действий.

16.11.2017 10:07:22
yayuye

Как узнать место ядерного удара? Не нашёл этого в api, но топовые стратегии это делают.

16.11.2017 10:47:40
yayuye

Как узнать место ядерного удара? Не нашёл этого в api, но топовые стратегии это делают.

у оппонента можно вызвать getNextNuclearStrikeTickIndex() и getNextNuclearStrikeX/Y ?

16.11.2017 10:50:55
jurifoll

jurifoll

Москва

Да, боюсь новые правила ядерным ударом только усилят тенденцию сбора в крупные отряды. Мелкие отряды для взрыва еще более уязвимы.

16.11.2017 11:00:20
4way

4way

Первый Бит

у оппонента можно вызвать getNextNuclearStrikeTickIndex() и getNextNuclearStrikeX/Y ?

да выбираешь противника и вызываешь эти методы. и плюс кулдаун по ядерку смотришь.

16.11.2017 11:25:46
andrey_bogdanov
Sanda

Sanda

JetBrains

Вообще не могут, да.

Вы серьёзно?? Тогда не понятно - почему в таблице указано “урон атаки против воздушных целей” у Танка 60 едениц. Почему не прочерк тогда??

16.11.2017 11:33:14
AlexKol

Вы серьёзно?? Тогда не понятно - почему в таблице указано “урон атаки против воздушных целей” у Танка 60 едениц. Почему не прочерк тогда??

Потому что танк может атаковать вертолет. Но не может пробить самолет. А самолет атакует только воздушные юниты.

16.11.2017 11:36:07
andrey_bogdanov

Ребята из администрации ответьте пожалуйста. Всё таки не понятно… Урон одной атаки по наземным целям у истребителя указано “-”, это понятно - истребитель вообще ничего не может сделать по наземным целям. Не понятно касаемо танков!!! Урон одной атаки по наземным целям у танка 60. (При этом Защита от наземных целей у вертолёта 40, у истребителя 70) Конкретно сколько наносит танк урон вертолёту и истребителю??? Спасибо.

16.11.2017 11:41:11
andrey_bogdanov

Ребята из администрации ответьте пожалуйста. Всё таки не понятно… Урон одной атаки по наземным целям у истребителя указано “-”, это понятно - истребитель вообще ничего не может сделать по наземным целям. Не понятно касаемо танков!!! Урон одной атаки по наземным целям у танка 60. (При этом Защита от наземных целей у вертолёта 40, у истребителя 70) Конкретно сколько наносит танк урон вертолёту и истребителю??? Спасибо.

блин. конечно “Танков по ВОЗДУШНЫМ целям”! сколько бьёт танк по вертолёту и по истребителю?

16.11.2017 11:42:31
andrey_bogdanov

Потому что танк может атаковать вертолет. Но не может пробить самолет. А самолет атакует только воздушные юниты.

Спасибо! Примерно понятно. Прошу прощения за спам - поздно прочитал ответ( Танк вообще не бьёт истребитель. А по вертолёту 20 или урона?

16.11.2017 11:46:08
AlexKol

Спасибо! Примерно понятно. Прошу прощения за спам - поздно прочитал ответ( Танк вообще не бьёт истребитель. А по вертолёту 20 или урона?

Танк не бьет по истребителю потому что не может нанести урон, как мне кажется. Хотя прикольно было бы если бы он стрелял по истребителю. А по вертолету всё правильно 20 урона.

16.11.2017 11:48:32
Sanda

Sanda

JetBrains

AlexKol

AlexKol

BB

Танк не бьет по истребителю потому что не может нанести урон, как мне кажется. Хотя прикольно было бы если бы он стрелял по истребителю. А по вертолету всё правильно 20 урона.

Танк не бьёт по истребителю, потому что так написано в правилах (:

П. 2.3.: <…> потенциальный урон одной атаки (<урон>−<защита>) <…> Если потенциальный урон по цели не является положительным числом, считается, что юнит не может атаковать цель.

16.11.2017 12:12:24
tyamgin

tyamgin

Симферополь

Кажется, в главе 2.6 (стр. 12) забыли описать в какой момент происходит взрыв бомбы.

18.11.2017 16:10:03