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

Языковые пакеты

Проект

Песочница

Раунд 1

Раунд 2

Финал

Песочница (на 20 декабря 2015 г.)

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

1 ноября 15:44: AlexeyN написал комментарий в посте Планы по развитию чемпионата
1 ноября 11:24: tyamgin написал комментарий в посте Планы по развитию чемпионата
1 ноября 10:35: tyamgin написал комментарий в посте Планы по развитию чемпионата
31 октября 18:17: AlexeyN написал комментарий в посте Планы по развитию чемпионата
31 октября 18:15: AlexeyN написал комментарий в посте Планы по развитию чемпионата
31 октября 14:38: amurushkin написал комментарий в посте Планы по развитию чемпионата

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

 

Для написания собственной стратегии для CodeRacing опубликованы языковые пакеты. На данный момент мы поддерживаем языки:

Язык Версия компилятора Ссылки
C++ и С++11 g++ GCC 5.1 скачать пакет для C++
Java Oracle JDK 1.8 скачать пакет для Java
C# Visual C# compiler 4.0.30319 for .NET framework 4.5+ скачать пакет для C#
Pascal Free Pascal 2.6.4 скачать пакет для Pascal
Python2 Python 2.7 скачать пакет для Python2
Python3 Python 3.5 скачать пакет для Python3
Ruby JRuby 9.0.3.0, Oracle JDK 1.8 скачать пакет для Ruby
Scala Scala 2.11.7, Oracle JDK 1.8 скачать/выписать пакет для Scala
D DMD32 D сompiler v2.068.2 скачать/выписать пакет для D
Kotlin Kotlin 1.0.0-beta-2423 скачать/выписать пакет для Kotlin

Каждый языковой пакет содержит в себе набор моделей (Car, Player и т.д.), класс MyStrategy, в котором вы пишете логику своей стратегии, а также файлы Runner.* и RemoteProcessClient.*, необходимые соответственно для запуска процесса стратегии и обмена данными с процессом игры.

В каждом языковом пакете находятся bat-файлы, осуществляющие сборку стратегии в исполняемый файл (исключения: языковой пакет на Java собирается в файл JAR, языковые пакеты на Python и Ruby собираются в ZIP-архив).

Кроме того, в некоторые языковые пакеты вложены файлы проектов одной или нескольких популярных IDE.

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

Для вашего удобства мы разработали утилиту Repeater, которая поможет у себя на компьютере локально повторять игры, в которых участвовала ваша стратегия.

Обновлено:

  • 12 ноября: В системе поддержан пакет для Scala. Обратите внимание, что поддержка этого пакета осуществляется Маратом Якуповым, а не командой Russian AI Cup. Все замечания/предложения стоит направлять прямиком ему.
  • 25 ноября: В системе поддержаны пакеты для D и Kotlin. Поддержка пакета D осуществляется Иваном Казменко, а пакета Kotlin — Александром Удаловым.


Ixanezis

Ixanezis

Яндекс

Makefile в пакете для С++ не очень работает.

09.11.2015 20:28:20
alladdin

alladdin

МФТИ (ГУ)

У меня проект на с++ под вижуалкой упорно пытается найти puck.cpp и hockeyist.cpp, которых нет в директории вообще. Что забавно, он также упорно показывает, что они там есть. O_o

09.11.2015 20:30:56
Ixanezis

Ixanezis

Яндекс

Почему бы не выкладывать исходники пакетов на github? Тогда бы их новые версии было бы проще получить, да и сами участники могли бы что-то фиксить при желании. Кажется, распространять и версионировать код .zip-файлами немного старомодно :)

09.11.2015 20:32:15
LeeT

LeeT

Россия

Ixanezis

Ixanezis

Яндекс

Почему бы не выкладывать исходники пакетов на github? Тогда бы их новые версии было бы проще получить, да и сами участники могли бы что-то фиксить при желании. Кажется, распространять и версионировать код .zip-файлами немного старомодно :)

Также все языковые пакеты опубликованы на GitHub. Читать умеем?

09.11.2015 20:35:27
Nepobedimych

Шикарно, что и правила выложили в git, да еще и в tex’е :) Молодцы!

09.11.2015 20:57:39
tyamgin

tyamgin

Симферополь

С описанием getTilesXY явно что-то не то

public TileType getTilesXY( ) – Returns - Возвращает двумерный массив тайлов, где первое измерение—это позиция X, а второе—Y. Конвертировать позицию в точные координаты можно, используя значение game.trackTileSize.

09.11.2015 21:15:30
tyamgin

tyamgin

Симферополь

tyamgin

tyamgin

Симферополь

С описанием getTilesXY явно что-то не то public TileType getTilesXY( ) – Returns - Возвращает двумерный массив тайлов, где первое измерение—это позиция X, а второе—Y. Конвертировать позицию в точные координаты можно, используя значение game.trackTileSize.

Сорри. Теперь до меня дошло что это.

09.11.2015 21:17:02
alladdin

alladdin

МФТИ (ГУ)

Если кому-то удастся скомпилировать это на с++, объясните пожалуйста, как вы это сделали…

09.11.2015 21:20:21
Adler

Adler

Дзержинск

alladdin

alladdin

МФТИ (ГУ)

Если кому-то удастся скомпилировать это на с++, объясните пожалуйста, как вы это сделали…

https://www.diffchecker.com/e8qksgnd

09.11.2015 21:24:12
Adler

Adler

Дзержинск

alladdin

alladdin

МФТИ (ГУ)

Если кому-то удастся скомпилировать это на с++, объясните пожалуйста, как вы это сделали…

это файл cpp-cgdk_vs10.vcxproj

09.11.2015 21:25:12
Adler

Adler

Дзержинск

когда уже можно будет стратегии отправлять?

09.11.2015 21:27:25
PikMike

PikMike

Саратовский ГУ

alladdin

alladdin

МФТИ (ГУ)

Если кому-то удастся скомпилировать это на с++, объясните пожалуйста, как вы это сделали…

А если под MinGW, то мне пришлось добавить ключ -D__NO_INLINE__ при компиляции из-за проблем с hypot

09.11.2015 21:29:19
alladdin

alladdin

МФТИ (ГУ)

Adler

Adler

Дзержинск

это файл cpp-cgdk_vs10.vcxproj

Спасибо большое! В прошлые года таких проблем не было :c

09.11.2015 21:30:27
Ixanezis

Ixanezis

Яндекс

LeeT

LeeT

Россия

Также все языковые пакеты опубликованы на GitHub. Читать умеем?

Упс, спасибо, видимо, не умеем :)

09.11.2015 21:56:41
Team9

Team9

Warsaw

alladdin

alladdin

МФТИ (ГУ)

Спасибо большое! В прошлые года таких проблем не было :c

И все же помните что это бета-тест =)

09.11.2015 21:56:53
Novixon

Novixon

Creogen

А Python проект у кого-нибудь получилось запустить?

09.11.2015 23:38:35
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

Novixon

Novixon

Creogen

А Python проект у кого-нибудь получилось запустить?

локально да. в песочнице еще не пробовал

09.11.2015 23:39:59
Novixon

Novixon

Creogen

amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

локально да. в песочнице еще не пробовал

А у тебя Windows или *nix? И какая IDE? У меня что-то не получается запустить на Mac OS :)

09.11.2015 23:42:32
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

Novixon

Novixon

Creogen

А у тебя Windows или *nix? И какая IDE? У меня что-то не получается запустить на Mac OS :)

win7. ide роли не играет я запускаю вне ее. python Runner.py

09.11.2015 23:47:14
Adler

Adler

Дзержинск

const vector<vector<int> >& World::getWaypoints() const { return waypoints; }

эм…. std::pair<int,int>? нет, не слышал.

10.11.2015 0:55:09
TongoHiti

TongoHiti

СберТех

А в Java-версии снова нельзя создавать классы в пакетах, отличных от default (корневого)? Не планируете снять ограничение?

10.11.2015 0:59:08
SKolotienko

SKolotienko

Москва

Adler

Adler

Дзержинск

const vector<vector >& World::getWaypoints() const { return waypoints; } эм…. std::pair<int,int>? нет, не слышал.

Встречал такие решения для кросс-платформенных сэмплов и ранее. Так делают, чтобы код на разных платформах выглядил более похожим. А то pair не везде есть.

10.11.2015 1:55:10
TheQuickFox

TheQuickFox

АлтГТУ

Могу ли я модифицировать файл MyStrategy.h в пакете для C++? Правилах сказано “Модифицировать в пакете разрешено лишь один файл, который и предназначен для содержания вашей стратегии”. Но также “Для каждого кодемобиля в вашей команде в начале игры создаётся отдельный экземпляр класса, в полях которого стратегия может хранить информацию о данном кодемобиле”. Чтобы хранить информацию в полях экземпляра класса нужно объявить эти поля, а для этого нужно модифициовать файл MyStrategy.h.

10.11.2015 9:15:17
Valdemar

Valdemar

Университет ИТМО

TheQuickFox

TheQuickFox

АлтГТУ

Могу ли я модифицировать файл MyStrategy.h в пакете для C++? Правилах сказано “Модифицировать в пакете разрешено лишь один файл, который и предназначен для содержания вашей стратегии”. Но также “Для каждого кодемобиля в вашей команде в начале игры создаётся отдельный экземпляр класса, в полях которого стратегия может хранить информацию о данном кодемобиле”. Чтобы хранить информацию в полях экземпляра класса нужно объявить эти поля, а для этого нужно модифициовать файл MyStrategy.h.

В тех же правилах написано, что для С++ можно менять оба файла. Причем если не отправить MyStrategy.h, то он будет заменен на стандартный

10.11.2015 11:33:10
mGx

mGx

TSI

amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

локально да. в песочнице еще не пробовал

Подскажиет пожалуйсто, как можно запустить / протестировать стратегию локально?

10.11.2015 11:48:03
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

mGx

mGx

TSI

Подскажиет пожалуйсто, как можно запустить / протестировать стратегию локально?

сначала запускаете LocalRunner. потом Runner.py. и все работает

10.11.2015 11:55:20
griboedov

griboedov

Севастополь

mGx

mGx

TSI

Подскажиет пожалуйсто, как можно запустить / протестировать стратегию локально?

http://russianaicup.ru/p/localrunner

10.11.2015 11:56:06
Kirill_Tim

Kirill_Tim

NRU ITMO

какое ограничение на размер файла(файлов) с исходным кодом?

11.11.2015 0:29:41
dimsa

dimsa

Астрософт-Сибирь

Мне очень нравится формат и я участвовал в прошлогоднем турнире, но люди которые разрабатывают Pascal версию - не умеют на нём писать. Трудно было сделать Property с приватными геттерами и сеттерами? Что это за стыдоба? Приходится блин Class Helpers писать вечно…

public constructor Create; function GetEnginePower: Double; procedure SetEnginePower(enginePower: Double);

11.11.2015 6:49:59
alevlaber

alevlaber

Костанай

dimsa

dimsa

Астрософт-Сибирь

Мне очень нравится формат и я участвовал в прошлогоднем турнире, но люди которые разрабатывают Pascal версию - не умеют на нём писать. Трудно было сделать Property с приватными геттерами и сеттерами? Что это за стыдоба? Приходится блин Class Helpers писать вечно… public constructor Create; function GetEnginePower: Double; procedure SetEnginePower(enginePower: Double);

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

11.11.2015 8:12:11
dimsa

dimsa

Астрософт-Сибирь

alevlaber

alevlaber

Костанай

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

Зачем? Нет. Я хочу чтобы вместо длинного Obj.GetBlaBla() и Obj.SetBlaBla() было: if Obj.BlaBla < 1 then Obj.BlaBla := 1;

11.11.2015 8:15:10
dimsa

dimsa

Астрософт-Сибирь

dimsa

dimsa

Астрософт-Сибирь

Зачем? Нет. Я хочу чтобы вместо длинного Obj.GetBlaBla() и Obj.SetBlaBla() было: if Obj.BlaBla < 1 then Obj.BlaBla := 1;

А если пытаешься установить свойство другого объекта, то выдавать эксепшн, получать дисквалификацию и т.д.)

11.11.2015 8:16:31
mscvkl

mscvkl

DataArt

А по какой причине нету пакета для Javascript?

11.11.2015 8:32:52
Hohol

Hohol

Maxifier

А не появилось возможности пекеджи в Java использовать? Очень уж грустно без них.

11.11.2015 17:30:29
TongoHiti

TongoHiti

СберТех

Hohol

Hohol

Maxifier

А не появилось возможности пекеджи в Java использовать? Очень уж грустно без них.

+1

12.11.2015 1:42:01
imbeat

imbeat

МИЭТ

Hohol

Hohol

Maxifier

А не появилось возможности пекеджи в Java использовать? Очень уж грустно без них.

да и в C# хотелось бы использовать nuget-пакеты

12.11.2015 19:03:09
cups_17467

cups_17467

Калининград

А связна C++ + Mac OS у кого нибудь работает? А то проблемка с linux/if_packet.h

12.11.2015 20:19:50
Mr.Smile

Mr.Smile

Москва

Нельзя ли в объекте Car ввести метод getNextWaypointIndex(), который возвращал бы номер следующей цели в списке World::getWaypoints()? А то неудобно работать в случае нескольких целей в одном тайле.

12.11.2015 21:26:19
cups_17467

cups_17467

Калининград

cups_17467

cups_17467

Калининград

А связна C++ + Mac OS у кого нибудь работает? А то проблемка с linux/if_packet.h

Все банально, необходимо заменить -D_LINUX на -D_DARWIN

12.11.2015 21:41:17
kirill_

kirill_

Минск

cups_17467

cups_17467

Калининград

Все банально, необходимо заменить -D_LINUX на -D_DARWIN

У меня теперь: ld: warning: option -s is obsolete and being ignored ld: library not found for -lcrt0.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

13.11.2015 1:47:02
the_lucky_one
kirill_

kirill_

Минск

У меня теперь: ld: warning: option -s is obsolete and being ignored ld: library not found for -lcrt0.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

Это скорее всего из-за опции -static. Ее нужно убрать

13.11.2015 11:35:17
cNoNim

cNoNim

DataArt

Mr.Smile

Mr.Smile

Москва

Нельзя ли в объекте Car ввести метод getNextWaypointIndex() , который возвращал бы номер следующей цели в списке World::getWaypoints() ? А то неудобно работать в случае нескольких целей в одном тайле.

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

13.11.2015 11:49:15
MagAlex

MagAlex

Нижний Новгород

cNoNim

cNoNim

DataArt

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

Карта map01, тайл (3;4) перекрёсток

13.11.2015 11:55:14
cups_17467

cups_17467

Калининград

Это скорее всего из-за опции -static. Ее нужно убрать

Честно говоря я добавил все файлы в XCode и тогда всё собралось без проблем.

13.11.2015 12:32:51
GS

GS

Тюмень

dimsa

dimsa

Астрософт-Сибирь

Мне очень нравится формат и я участвовал в прошлогоднем турнире, но люди которые разрабатывают Pascal версию - не умеют на нём писать. Трудно было сделать Property с приватными геттерами и сеттерами? Что это за стыдоба? Приходится блин Class Helpers писать вечно… public constructor Create; function GetEnginePower: Double; procedure SetEnginePower(enginePower: Double);

Согласен, что с property намного удобнее. Зря что ли стандарт языка это поддерживает? :)

Я кстати пакет для паскаля доработал, а именно добавил свойства для каждого класса в пакете, а функции перенес в private (не все, а только которые используются для свойств. Расчетные функции остались в public). Также почему то некоторые конструкторы были в protected, перенес в public. Теперь осталось выяснить, интересен ли такой обновленный пакет для администрации. Если, то куда слать? :)

13.11.2015 13:15:40
SladeThe

SladeThe

Команда Russian AI Cup

SandeR

SandeR

Украина

уберите директорию “.idea” из пакетов для питона

Это проект для PyCharm.

13.11.2015 16:14:50
SandeR

SandeR

Украина

SladeThe

SladeThe

Команда Russian AI Cup

Это проект для PyCharm.

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

13.11.2015 17:33:06
Adler

Adler

Дзержинск

Mr.Smile

Mr.Smile

Москва

Нельзя ли в объекте Car ввести метод getNextWaypointIndex() , который возвращал бы номер следующей цели в списке World::getWaypoints() ? А то неудобно работать в случае нескольких целей в одном тайле.

+1

13.11.2015 17:56:08
tyamgin

tyamgin

Симферополь

cNoNim

cNoNim

DataArt

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

Это реализовать занимает меньше времени чем здесь об этом просить.. Просто держим указатель (сначала равный 0). И сдвигаем как только getNextWP изменился

13.11.2015 18:24:54
sergileon

sergileon

Москва

Возможен ли такой случай, что чисто теоретически окажется так, что два соседних вейпоинта будут находиться в одном тайле?

13.11.2015 20:47:33
ShikaSD

ShikaSD

MAMK

Спасибо за пакет со Scala, как раз вовремя =)

13.11.2015 23:14:12
vovanz123

vovanz123

УрФУ (ранее УрГУ и УГТУ-УПИ)

Вопросы по питону: Можно ли использовать NumPy и вообще, сторонние библиотеки? Можно ли сделать так чтобы моя стратегия запускалась в альтернативном интерпретаторе (PyPy, например)?

14.11.2015 16:03:07
santa324

santa324

Москва

А где TyleType.UNKNOWN ? (пакет java) В правилах сказано “в каждой ячейке матрицы тайлов гоночной трассы будет находиться специальное значение UNKNOWN”. Поясните, там буде null или забыли добавить тип?

14.11.2015 22:35:17
_dd210

_dd210

5vision

  • 1 к вопросу про Python и Numpy.

14.11.2015 22:43:27
13human

13human

Квартплата 24

santa324

santa324

Москва

А где TyleType.UNKNOWN ? (пакет java) В правилах сказано “в каждой ячейке матрицы тайлов гоночной трассы будет находиться специальное значение UNKNOWN”. Поясните, там буде null или забыли добавить тип?

Скоро появится. Ориентировочно завтра

14.11.2015 22:44:23
Valdemar

Valdemar

Университет ИТМО

sergileon

sergileon

Москва

Возможен ли такой случай, что чисто теоретически окажется так, что два соседних вейпоинта будут находиться в одном тайле?

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

15.11.2015 0:08:09
Djaarf

Запускаю локал раннер. Пишет “Ожидание подключения стратегии…”. Запускаю cpp-cgdk_vs10.exe успешно скомпилированный в VC10. Ничего не происходит. При этом, если все стратегии в local-runner.properties “Quick” то все работает. Добрые люди, помогите.

15.11.2015 17:16:09
alevlaber

alevlaber

Костанай

Запускаю локал раннер. Пишет “Ожидание подключения стратегии…”. Запускаю cpp-cgdk_vs10.exe успешно скомпилированный в VC10. Ничего не происходит. При этом, если все стратегии в local-runner.properties “Quick” то все работает. Добрые люди, помогите.

попробуйте из среды разработки с отладкой запустить

15.11.2015 19:22:07
Djaarf
alevlaber

alevlaber

Костанай

попробуйте из среды разработки с отладкой запустить

Запускал и так - результат один. Ничего не происходит, а процесс cpp-cgdk_vs10.exe не убить и из Task Manager. Проект дефолтный.

15.11.2015 20:10:22
cjey

Компилятор для C# поддерживает C# 6.0?

15.11.2015 21:40:36
olsh

olsh

Архангельск

Компилятор для C# поддерживает C# 6.0?

Нет, т.к. на сервере используется Visual C# Compiler version 4.6.0081.0

15.11.2015 23:18:43
borhammere

borhammere

Mera

vovanz123

vovanz123

УрФУ (ранее УрГУ и УГТУ-УПИ)

Вопросы по питону: Можно ли использовать NumPy и вообще, сторонние библиотеки? Можно ли сделать так чтобы моя стратегия запускалась в альтернативном интерпретаторе (PyPy, например)?

тоже интересно, непонятно что можно подключить, что есть в окружении

17.11.2015 20:12:02
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

borhammere

borhammere

Mera

тоже интересно, непонятно что можно подключить, что есть в окружении

уже можно использовать NumPy и SciPy

17.11.2015 20:17:55
Diod

Diod

АлтГТУ

Всем привет :) подскажите как запустить скомпилированный java на локальном эмуляторе или просто нужно скопировать mystrategy куда-то?

18.11.2015 10:03:05
MadKnight

MadKnight

Student

скачал с++ пакет, запустил g++ makefile, а он выдал Не найден файл: -NAME g++ -o MyStrategy g++.exe: fatal error: no input files compilation terminated. make: *** [MyStrategy] Error 1

кто подскажет, как исправить? ругается именно на строчку cpps:=$(shell find -name ’*.cpp’)

19.11.2015 16:06:00
Dan555

Организаторам огромное спасибо за то, что поправили пакет Pascal, добавив properties и “паскалевское” форматирование! Стало намного привычнее и удобнее. Однако, там есть еще пара шероховатостей более практического плана, на которые хотелось бы обратить внимание: 1. в класс TStrategy желательно добавить виртуальный конструктор, который можно было бы перекрыть в TMyStrategy и выполнять в нем всю необходимую инициализацию стратегии. Сейчас же приходится перекрывать метод AfterConstruction, или вызывать инициализацию из метода Move с выставлением флага после первого вызова. Не страшно, конечно, но слегка костыльно. 2. Везде, где методы Get* возвращают массивы (например в TWorld.GetTilesXY) зачем-то выполняется копирование содержимого массива с помощью Copy(). Это, на мой взгляд, совершенно излишне и только попусту тратит драгоценное процессорное время. Например, если вызывать TWorld.GetTilesXY[i][j] в цикле по всему игровому полю, то на каждый тайл будет выполнено выделение памяти и копирование всего массива! Зачем? Можно же напрямую возвращать ссылку на внутренний массив. А если программисту потребуется отдельная его копия, которую можно изменять, то Copy он выполнит самостоятельно, тем более, что это редко бывает нужно.

19.11.2015 20:09:16
LostGhost

LostGhost

Брянск

Пожалуйста помогите! Какая версия паскаля поддерживается

19.11.2015 22:03:56
klisha

klisha

ООО "Бизнес-Оптимизация"

попробовал запустить на jruby: mercury:ruby-cgdk klisha$ /Users/klisha/jruby-9.0.3.0/bin/jruby runner.rb Errno::ECONNREFUSED: Connection refused - Connection refused initialize at org/jruby/ext/socket/RubyTCPSocket.java:124 new at org/jruby/RubyIO.java:861 initialize at /Users/klisha/Downloads/ruby-cgdk/remote_process_client.rb:37 initialize at runner.rb:10 <top> at runner.rb:50

19.11.2015 23:12:01
Dan555
LostGhost

LostGhost

Брянск

Пожалуйста помогите! Какая версия паскаля поддерживается

На этой же странице вверху написано - Free Pascal 2.6.4. Хотя я, например, в Delphi 2009 пишу, предварительно пропатчив локальную копию SDK на предмет string –> AnsiString, проблем пока не заметил.

20.11.2015 21:34:02
Ne_Ice

Ne_Ice

ТулГУ

Эх, жаль что Java и JRuby довольно прожорливы на счёт памяти… Интересно как вообще происходит учёт используемой памяти и возможно ли предложить свой языковой пакет? Если не ошибаюсь Scala был предложен одним из участников.

21.11.2015 6:37:23
temak

temak

Universität Heidelberg

SladeThe

SladeThe

Команда Russian AI Cup

Это проект для PyCharm.

Можете подсказать с какими аргументами командной строки у вас запускаются стратегии на питоне? Используется ли опция ‘-O’ ?

21.11.2015 8:57:15
SladeThe

SladeThe

Команда Russian AI Cup

temak

temak

Universität Heidelberg

Можете подсказать с какими аргументами командной строки у вас запускаются стратегии на питоне? Используется ли опция ‘-O’ ?

Единственным аргуметом является запускаемый скрипт.

21.11.2015 13:02:54
dmitrii

dmitrii

Федеральный центр сердечно-сосудистой хирургии г. Хабаровск

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

23.11.2015 0:39:30
denisbalyko

denisbalyko

Беларусь

dmitrii

dmitrii

Федеральный центр сердечно-сосудистой хирургии г. Хабаровск

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

Ваш класс MyStrategy имеет метод Move(), который реализует поведение и вызывается каждый тик. Вы так же можете создавать любое количество других методов и полей в этом классе и “дергать” когда вам это нужно.

23.11.2015 0:43:31
i_v_a

i_v_a

Самара

планируется ли выбор PyPy для питонистов? Важно знать можно ли ожидать 6 кратного увеличения производительности или упрощать код чтоб не было таймаутов.

23.11.2015 4:05:08
TongoHiti

TongoHiti

СберТех

Вопрос к авторам пакета для Java: зачем у вас в некоторых классах в доменной модели get-методы объявлены как final (в частности, в классе Unit)? Какого-то сакрального смысла я не вижу, да и единообразия в этом подходе нет: в наследниках (например, в Car) методы не final. Почему я спрашиваю - в тестах mock’ать неудобно, Mockito не умеет финальные методы подставлять. Приходится либо PowerMock использовать, либо патчить локальную копию исходников SDK (убирать оттуда final). Может, уберёте ненужные final на get-методах в официальном SDK? Не то что бы это критично, но как-то неудобно :) Спасибо.

28.11.2015 17:03:51
Wierus

Wierus

Череповец

Подскажите, в стратегии на Java можно ли напрямую использовать исходники физического движка? Попробовал подключить, локально работает, при отправке на сервер ошибка: error: package com.codegame.codeseries.notreal2d does not exist import com.codegame.codeseries.notreal2d.*;

29.11.2015 17:56:15
dimir

dimir

СПбГЭТУ (ЛЭТИ)

Wierus

Wierus

Череповец

Подскажите, в стратегии на Java можно ли напрямую использовать исходники физического движка? Попробовал подключить, локально работает, при отправке на сервер ошибка: error: package com.codegame.codeseries.notreal2d does not exist import com.codegame.codeseries.notreal2d.*;

Ну, значит нельзя =) А вообще в правилах все есть =)

29.11.2015 22:57:56
Dan555
SladeThe

SladeThe

Команда Russian AI Cup

Единственным аргуметом является запускаемый скрипт.

Отправил вам pull request с небольшими патчами для паскалевского пакета, посмотрите, пожалуйста. Понятно, что чемпионат этого года фактически завершен, но было бы здорово увидеть эти изменения в пакетах для будущих соревнований.

17.12.2015 20:55:16