Open AI Championship

Language packages

Sandbox: before end

Project

Sandbox

Round 1

Round 2

Finals

Песочница (на 10 января 2021 г.)

Recent comments

7 january 16:04: tsapelman wrote comment on post Finals: Results
5 january 15:34: amurushkin wrote comment on post CodeCraft 2020 App
5 january 15:28: Dan_Tat wrote comment on post CodeCraft 2020 App
5 january 15:24: Dan_Tat wrote comment on post CodeCraft 2020 App
5 january 15:24: Dan_Tat wrote comment on post CodeCraft 2020 App
5 january 14:38: amurushkin wrote comment on post CodeCraft 2020 App
5 january 14:29: Dan_Tat wrote comment on post CodeCraft 2020 App
5 january 14:02: Dan_Tat wrote comment on post Quick start
29 december 15:53: kuviman wrote comment on post Finals: Results
29 december 15:53: kuviman wrote comment on post Language packages

VK Group

Telegram chat

Discord

 

Language packages to create your own strategies for CodeCraft are published. Also available on GitHub repository. We currently support the following languages:

Language Compiler Links
C++20 GNU C++ 10.2 download
C# .Net 5.0 download
D dmd 2.080 download
Go Go 1.15 download
Java Java 15 download
Kotlin Kotlin 1.4.20 download
Python CPython 3.9 / PyPy 3.6 download
Ruby JRuby 9 download
Rust Rust 1.48 download
Scala Scala 2.13.4 download
F# .Net 5.0 download
JavaScript NodeJS 15.3 download

Each language package contains a set of models, MyStrategy class, where you write the logic of your strategy, and other files necessary for running the strategy process and exchanging data with the game server.



geranazavr5551

geranazavr5551

Codeforces

Oh, cool

Nov 27, 2020 9:38:13 PM
TongoHiti

TongoHiti

Moscow

Let’s do this! :)

Nov 28, 2020 12:03:43 AM
Staxxx

GL HF !!!

Nov 28, 2020 1:25:02 AM
vovo4ka

vovo4ka

Ryazan

And there is a link to the repository packages?

Nov 28, 2020 1:47:10 AM
steleal

steleal

Ulyanovsk

Сразу Java 15 - сильно!

Nov 28, 2020 8:54:28 AM
bukazoid

bukazoid

Yekaterinburg

а в мавен можно добавлять библиотеки? lombok например? логирование? Помню раньше пользовательские классы заменялись на оригинальные перд сборкой, теперь как с этим?

Nov 28, 2020 9:25:31 AM
GoodDalek

GoodDalek

АлтГУ

Если у кого пакет C++ откажется собираться, ссылаясь на "неразрешённый внешний символ __imp_*“, то добавление в начало своего TcpStream.hpp строки #pragma comment(lib, ”Ws2_32.lib") решит проблему

Nov 28, 2020 10:25:42 AM
iLegion

iLegion

Ренессанс жизнь

Ребят, пожскадите, пожалуйста: 1. Как понять, какая версия Python3 будет использована сервере? 2. Где то есть описание API для python (или вообще какое то) человеческим языком, чтобы не надо было угадывать по коду и названию? Кажется, в прошлых соревнованиях была PDFка с описанием API

Nov 28, 2020 12:17:52 PM
ICRainbow

Rust есть, хорошо. Планируется прикрутить Haskell? Что для этого нужно?

Nov 28, 2020 1:04:27 PM
ciiol

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

Nov 28, 2020 1:38:54 PM
MagneticFox

Тоже не понял. В прошлый раз была 8-ка, и все было замечательно.

Nov 28, 2020 2:18:01 PM
MagneticFox
steleal

steleal

Ulyanovsk

Сразу Java 15 - сильно!

Тоже не понял. В прошлый раз была 8-ка, и всё было замечательно.

Nov 28, 2020 2:19:08 PM
n0bleman

Так трудно было явно указывать типы в пакете на питоне? Ни автодополнение, ни линтер, не работают…

Nov 28, 2020 6:46:51 PM
mynameisdaniil

Будет ли Elixir?

Nov 28, 2020 8:23:21 PM
pashqa88

pashqa88

Leroy Merlin

Кто-нибудь знает используемую версию NodeJS?

Nov 28, 2020 11:24:33 PM
kuliev.vitaly

kuliev.vitaly

Saint Petersburg

Есть ли пример базовой стратегии на питоне?

Nov 29, 2020 2:16:48 AM
kuviman

kuviman

Codeforces

kuliev.vitaly

kuliev.vitaly

Saint Petersburg

Есть ли пример базовой стратегии на питоне?

Примеры стратегий для всех языков будут позже

Nov 29, 2020 2:29:29 AM
kuviman

kuviman

Codeforces

bukazoid

bukazoid

Yekaterinburg

а в мавен можно добавлять библиотеки? lombok например? логирование? Помню раньше пользовательские классы заменялись на оригинальные перд сборкой, теперь как с этим?

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

Nov 29, 2020 2:40:59 AM
kuviman

kuviman

Codeforces

pashqa88

pashqa88

Leroy Merlin

Кто-нибудь знает используемую версию NodeJS ?

Используется последняя версия, 15.3

Nov 29, 2020 2:43:05 AM
kuviman

kuviman

Codeforces

iLegion

iLegion

Ренессанс жизнь

Ребят, пожскадите, пожалуйста: 1. Как понять, какая версия Python3 будет использована сервере? 2. Где то есть описание API для python (или вообще какое то) человеческим языком, чтобы не надо было угадывать по коду и названию? Кажется, в прошлых соревнованиях была PDFка с описанием API

Используется последняя версия - 3.9. Документацию API можно найти на странице с правилами

Nov 29, 2020 2:44:08 AM
arkountos

arkountos

NTUA, Athens

Hello all, gl hf! Are there sample strategies for languages other than the Rust example?

Nov 29, 2020 3:10:52 AM
kuviman

kuviman

Codeforces

arkountos

arkountos

NTUA, Athens

Hello all, gl hf! Are there sample strategies for languages other than the Rust example?

Not yet, but they will be added later

Nov 29, 2020 3:34:22 AM
PaRy

PaRy

Телекомпания СЭТ

Как на Java отправить стратегию? Как в прошлом году pom + src не работает

Nov 29, 2020 4:48:27 AM
prospero78su

prospero78su

Berlin

Летс батл бегин!

Nov 29, 2020 9:13:48 AM
pashqa88

pashqa88

Leroy Merlin

kuviman

kuviman

Codeforces

Используется последняя версия, 15.3

Понял. Спасибо!!!

Nov 29, 2020 1:47:13 PM
xocks

Кто на питоне пишет, сталкивались вы с тем, что ошибки в классе MyStrategy всплывают, как ошибки в классе StreamWrapper? Например, помнится я неправильно создал экземпляр класса Vector32Int, мне вместо ошибки о создании объекта давало ошибку, что StreamWrapper в каком то методе получил 1 байт вместо 4-х. Если кто то у себя это пофиксил или знает, как, это сделать, отпишите, пожалуйста)

Nov 29, 2020 4:16:34 PM
Hooloovo

Hooloovo

УрФУ

Кто пишет на JavaScript, подскажите пожалуйста, у меня при локальном запуске выдается ошибка: Socket error: write ECONNABORTED, а на платформе: Socket error: write EPIPE. Не понимаю что это значит и от чего падает, кроме этого ничего не пишет.

Nov 30, 2020 1:03:31 AM
dozorhunterr

dozorhunterr

Moscow

Visual Studio 2019 еще не обновилась, чтобы использовать GNU 10.2)) Или я не нашел как это сделать

Nov 30, 2020 1:46:27 AM
dozorhunterr

dozorhunterr

Moscow

Скачал gcc-10.2.0-no-debug. Еле нашел эту версию компилятора. При попытке компилировать проект выдается куча ошибок

Nov 30, 2020 2:07:19 AM
kuviman

kuviman

Codeforces

dozorhunterr

dozorhunterr

Moscow

Visual Studio 2019 еще не обновилась, чтобы использовать GNU 10.2)) Или я не нашел как это сделать

необязательно использовать тот же компилятор, что на сервере. должно собираться и в Visual Studio

Nov 30, 2020 4:10:36 AM
cartman

cartman

Yalta

Эх php снова обошли стороной :)

Nov 30, 2020 3:25:26 PM
kuviman

kuviman

Codeforces

cartman

cartman

Yalta

Эх php снова обошли стороной :)

Если вы можете создать языковой пакет для PHP по аналогии с другими языками, мы его добавим. Можно сделать пулл реквест в репозиторий: https://github.com/MailRuChamps/raic-2020

Nov 30, 2020 4:23:25 PM
Sardukar

Sardukar

Артем

Кто понял как текст писать? Я примерно делаю: db.PlacedText(debugvertex,‘testtesttesttesttest’,0,20) debug_interface.send(DebugCommand.Add(db)) Но ничего не выходит

Nov 30, 2020 5:06:03 PM
xocks

Кто на питоне пишет, сталкивались вы с тем, что ошибки в классе MyStrategy всплывают, как ошибки в классе StreamWrapper? Например, помнится я неправильно создал экземпляр класса Vector32Int, мне вместо ошибки о создании объекта давало ошибку, что StreamWrapper в каком то методе получил 1 байт вместо 4-х. Если кто то у себя это пофиксил или знает, как, это сделать, отпишите, пожалуйста)

Пофиксилось с помощью скачивания новой версии приложения

Nov 30, 2020 6:40:21 PM
ooCristalloo

ooCristalloo

СМПК

пхп будет доступен?

Nov 30, 2020 10:20:06 PM
UA3MQJ

Elixir будет?

Dec 1, 2020 9:59:31 AM
yulik.daniel

yulik.daniel

Moscow

Кто-то, кто справился скомпилировать под c++, расскажите плз, как вы это сделали У меня выскакивает ошибка с кучей “undefined reference to”: /usr/bin/ld: main.cpp:(.text._ZN6Runner3runEv[_ZN6Runner3runEv]+0x55): undefined reference toMyStrategy::MyStrategy()’ /usr/bin/ld: main.cpp:(.text._ZN6Runner3runEv[_ZN6Runner3runEv]+0x79): undefined reference to ServerMessage::readFrom(InputStream&)' ... Компилирую так: g++ -std=c++2a -o code main.cpp

Dec 1, 2020 1:33:04 PM
salimbek

salimbek

ИП

yulik.daniel

yulik.daniel

Moscow

Кто-то, кто справился скомпилировать под c++, расскажите плз, как вы это сделали У меня выскакивает ошибка с кучей “undefined reference to”: /usr/bin/ld: main.cpp:(.text._ZN6Runner3runEv[_ZN6Runner3runEv]+0x55): undefined reference to MyStrategy::MyStrategy()’ /usr/bin/ld: main.cpp:(.text._ZN6Runner3runEv[_ZN6Runner3runEv]+0x79): undefined reference to …

Такая же ерунда при компиляции под Win :-( C:\Temp\ccfQq10s.o:main.cpp:(.text$_ZN6RunnerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS7_[ZN6RunnerC1ERKNSt7_cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS7_]+0x54): undefined reference to `TcpStream::TcpStream(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, int)’

Dec 1, 2020 6:23:06 PM
kuviman

kuviman

Codeforces

yulik.daniel

yulik.daniel

Moscow

Кто-то, кто справился скомпилировать под c++, расскажите плз, как вы это сделали У меня выскакивает ошибка с кучей “undefined reference to”: /usr/bin/ld: main.cpp:(.text._ZN6Runner3runEv[_ZN6Runner3runEv]+0x55): undefined reference to MyStrategy::MyStrategy()’ /usr/bin/ld: main.cpp:(.text._ZN6Runner3runEv[_ZN6Runner3runEv]+0x79): undefined reference to …

помимо main.cpp в пакете есть другие исходники, так что компилировать их тоже надо) приложен cmake проект (CMakeLists.txt), который можно испортировать с помощью вашей ide, либо через консоль cmake . && cmake --build .

Dec 1, 2020 7:28:31 PM
MikeWazowski

MikeWazowski

Moscow

kuviman

kuviman

Codeforces

Примеры стратегий для всех языков будут позже

а когда ждать ? очень хочется увидеть пример назначения действий юнитам для java …

Dec 2, 2020 11:52:27 AM
kreo

kreo

Яндекс

Я правильно понимаю, что в исходном пакете на Rust я могу менять любые файлы, включая Cargo.toml?

Dec 2, 2020 9:41:36 PM
Zeratul

Добавьте модуль numba для Python, позволяет делать расчёты со скоростью с++, при этом использует обычный синтаксис в отличии от cython. Это jit компилятор для стандартного CPython, лучше чем PyPy.

Dec 3, 2020 12:52:19 AM
kuviman

kuviman

Codeforces

kreo

kreo

Яндекс

Я правильно понимаю, что в исходном пакете на Rust я могу менять любые файлы, включая Cargo.toml?

Можно менять все файлы языкового пакета, но сборка будет происходить без доступа к интернету, так что добавление новых зависимостей только через пулл реквесты на GitHub

Dec 3, 2020 1:31:55 AM
zn-soft

zn-soft

Fesco

при попытке построить нового юнита внутри базы C# пакет падает с ошибкой т.к не может обработать пакет ответа от сервера

Dec 6, 2020 5:18:31 AM
zn-soft

zn-soft

Fesco

zn-soft

zn-soft

Fesco

при попытке построить нового юнита внутри базы C# пакет падает с ошибкой т.к не может обработать пакет ответа от сервера

аааа нет это эксепшн если строить что угодно за пределами карты

Dec 6, 2020 5:47:13 AM
zn-soft

zn-soft

Fesco

zn-soft

zn-soft

Fesco

аааа нет это эксепшн если строить что угодно за пределами карты

например с координатами (-1,1)

Dec 6, 2020 5:47:51 AM
MityanPal

MityanPal

Moscow

Вопрос к знатокам C++: почему у меня следующий код: if(playerView.entities[i].entityType = EntityType::BUILDER_UNIT) { /*do something*/ } выполняется, даже когда у сущности другой тип? в отладчике поставил точку останова внутри данного условия и вижу, что попадаю в цикл когда левая часть - любой союзный юнит или постройка?

Dec 6, 2020 2:26:29 PM
zn-soft

zn-soft

Fesco

MityanPal

MityanPal

Moscow

Вопрос к знатокам C++: почему у меня следующий код: if(playerView.entities[i].entityType = EntityType::BUILDER_UNIT) { /*do something*/ } выполняется, даже когда у сущности другой тип? в отладчике поставил точку останова внутри данного условия и вижу, что попадаю в цикл когда левая часть - любой союзный юнит или постройка?

потому что должно быть “==” а не “=”

Dec 6, 2020 2:27:56 PM
MityanPal

MityanPal

Moscow

zn-soft

zn-soft

Fesco

потому что должно быть “==” а не “=”

А, ну да - ошибся. Я не вставил в сообщение “==” - в коде все верно. Но все равно не работает - уже всю голову себе сломал

Dec 6, 2020 2:31:07 PM
egdude

egdude

Moscow

При вызове любого метода debugInterface на go падает ошибка в /stream.ReadInt32, кто-нибудь сталкивался?

Dec 6, 2020 2:38:40 PM
MityanPal

MityanPal

Moscow

Вот полный код метода getAction(): Action result = Action(std::unordered_map<int, EntityAction>()); int myId = playerView.myId; for (size_t i = 0; i < playerView.entities.size(); i++) { const Entity& entity = playerView.entities[i]; if (entity.playerId == nullptr || entity.playerId != myId) { continue; } if (entity.entityType == EntityType::BUILDER_UNIT); { / do something */ int i = 1; } continue; } Точка останова на строке int i = 1 - заходит в условие при любом entityType

Dec 6, 2020 2:43:15 PM
MityanPal

MityanPal

Moscow

Прошу прощение, с маркдауном разобраться с виду так же сложно, как с другой моей проблемой…

Dec 6, 2020 2:44:34 PM
zn-soft

zn-soft

Fesco

MityanPal

MityanPal

Moscow

Прошу прощение, с маркдауном разобраться с виду так же сложно, как с другой моей проблемой…

а в отладчике playerView.entities[i].entityType точно другого типа , просто i =1 как то странно и возвращает итератор вначало , а там уже нас ждет этот самый билдер

Dec 6, 2020 3:51:05 PM
ShmelX

ShmelX

Tula

Здравствуйте! Не поделится ли кто примером на Java, кок можно через API лог писать.

Dec 6, 2020 5:33:59 PM
TDC777

TDC777

Irkutsk

Hooloovo

Hooloovo

УрФУ

Кто пишет на JavaScript, подскажите пожалуйста, у меня при локальном запуске выдается ошибка: Socket error: write ECONNABORTED, а на платформе: Socket error: write EPIPE. Не понимаю что это значит и от чего падает, кроме этого ничего не пишет.

Проверь координаты, у меня такое было, когда я отправил в target new model.Vec2Int(0, 0)

После new model.Vec2Int(1, 1) стало успешно

Dec 7, 2020 2:08:51 PM
TDC777

TDC777

Irkutsk

TDC777

TDC777

Irkutsk

Проверь координаты, у меня такое было, когда я отправил в target new model.Vec2Int(0, 0) После new model.Vec2Int(1, 1) стало успешно

Нет, не помогло, всё равно падает =( пошёл дебажить

Dec 7, 2020 2:25:53 PM
TDC777

TDC777

Irkutsk

Hooloovo

Hooloovo

УрФУ

Кто пишет на JavaScript, подскажите пожалуйста, у меня при локальном запуске выдается ошибка: Socket error: write ECONNABORTED, а на платформе: Socket error: write EPIPE. Не понимаю что это значит и от чего падает, кроме этого ничего не пишет.

Раздебажил свой случай - я пихал в stream.writeInt(value) // value === undefined

Добавь в stream-wrapper логирование того, что шлёшь. По итогу, я вместо Map отправлял Array, и у него не определёно свойство size

Dec 7, 2020 2:48:20 PM
HoberMellow

HoberMellow

Freelancer

При загрузке C# приложения архивом возникает ошибка компиляции Unable to load the service index for source https://api.nuget.org/v3/index.json. Хотя никаких сторонних библиотек я не использую и csproj файл не изменял. В чем причина?

Dec 9, 2020 11:48:16 AM
mr2dark

mr2dark

Piano.io

Можно, пожалуйста, зааппрувить https://github.com/MailRuChamps/raic-2020/pull/101 ?

Dec 9, 2020 1:41:41 PM
Polifem

Кто-то может подсказать: (языковой пакет JavaScript) как задать действия юниту? Можно ли как-то не задавать “полный набор” команд? Например хочу чтобы юнит просто шел, а если не возможно, то стоял. Но создается впечатление, что все равно нужно указывать и остальные команды (строительства, атаки и ремонта).

Dec 10, 2020 11:12:54 PM
zn-soft

Кто-то может подсказать: (языковой пакет JavaScript) как задать действия юниту? Можно ли как-то не задавать “полный набор” команд? Например хочу чтобы юнит просто шел, а если не возможно, то стоял. Но создается впечатление, что все равно нужно указывать и остальные команды (строительства, атаки и ремонта).

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

Dec 11, 2020 7:25:49 AM
Khao

Khao

Yekaterinburg

При сабмите выдаёт вот это:

`stdout:

stderr: + cd /output + dotnet ./aicup2020.dll gameserver 31001 0cce0bceb1c4b2c5bb321998833bbea3c9d4255e_0 Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream. at System.IO.BinaryReader.InternalRead(Int32 numBytes) at System.IO.BinaryReader.ReadInt32() at Aicup2020.Model.ServerMessage.ReadFrom(BinaryReader reader) in /project/Model/ServerMessage.cs:line 8 at Aicup2020.Runner.Run() in /project/Runner.cs:line 29 at Aicup2020.Runner.Main(String[] args) in /project/Runner.cs:line 56 run.sh: line 4: 8 Aborted (core dumped) dotnet ./aicup2020.dll “$@” Exit code:134 Memory used: 157MB Consumed time: 1013 Player crashed: IO error: Resource temporarily unavailable (os error 11)`

Что с этим делать?

Dec 14, 2020 9:59:13 PM
Khao

Khao

Yekaterinburg

Khao

Khao

Yekaterinburg

При сабмите выдаёт вот это: stdout: stderr: + cd /output + dotnet ./aicup2020.dll gameserver 31001 0cce0bceb1c4b2c5bb321998833bbea3c9d4255e_0 Unhandled exception. System.IO.EndOfStreamException: Unable to read beyond the end of the stream. at System.IO.BinaryReader.InternalRead(Int32 numBytes) at System.IO.BinaryReader.ReadInt32() at Aicup2020.Model.ServerMessage.ReadFrom(BinaryReader reader) in /project/Model/ServerMessage.cs:line 8 at Aicup2020.Runner.Run() in /project/Runner.cs:line 29 at Aicup2020.Runner.Main(String[] args) in /project/Runner.cs:line 56 run.sh: line 4: 8 Aborted (core dumped) dotnet ./aicup2020.dll “$@” Exit code:134 Memory used: 157MB Consumed time: 1013 Player crashed: IO error: Resource temporarily unavailable (os error 11)

Предыдущую стратегию пропускает, эту - нет. Вдруг это важно :)

Dec 14, 2020 10:18:35 PM
luckman17

luckman17

Saint Petersburg

При сабмите выдаёт вот это: Обычно подобные ошибки в случае, если отправляются неверные команды (координаты за границами карты и тому подобное)

Dec 14, 2020 10:28:23 PM
Khao

Khao

Yekaterinburg

luckman17

luckman17

Saint Petersburg

Понял, спасибо. Просто из текста ошибки не очевидно. Пошёл искать.

Dec 14, 2020 10:32:59 PM
Dyavol

Dyavol

Izyum

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

Dec 28, 2020 10:28:14 PM
amurushkin

amurushkin

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

Dyavol

Dyavol

Izyum

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

У меня есть, если еще актуально

Dec 29, 2020 12:21:48 AM
Dyavol

Dyavol

Izyum

amurushkin

amurushkin

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

У меня есть, если еще актуально

А можете прислать на почту d@izyum.su или сюда бросить https://dyavol.su/ur ?

Dec 29, 2020 8:35:11 AM
amurushkin

amurushkin

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

Dyavol

Dyavol

Izyum

А можете прислать на почту d@izyum.su или сюда бросить https://dyavol.su/ur ?

закинул по ссылке

Dec 29, 2020 12:08:15 PM
kuviman

kuviman

Codeforces

Dyavol

Dyavol

Izyum

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

https://github.com/MailRuChamps/raic-2018/

Dec 29, 2020 3:53:15 PM