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

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

Песочница: до окончания

Проект

Песочница

Раунд 1

Раунд 2

Финал

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

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

7 января 16:04: tsapelman написал комментарий в посте Финал: Результаты
5 января 15:34: amurushkin написал комментарий в посте Приложение CodeCraft 2020
5 января 15:28: Dan_Tat написал комментарий в посте Приложение CodeCraft 2020
5 января 15:24: Dan_Tat написал комментарий в посте Приложение CodeCraft 2020
5 января 15:24: Dan_Tat написал комментарий в посте Приложение CodeCraft 2020
5 января 14:38: amurushkin написал комментарий в посте Приложение CodeCraft 2020
5 января 14:29: Dan_Tat написал комментарий в посте Приложение CodeCraft 2020
5 января 14:02: Dan_Tat написал комментарий в посте Быстрый старт
29 декабря 15:53: kuviman написал комментарий в посте Финал: Результаты
29 декабря 15:53: kuviman написал комментарий в посте Языковые пакеты

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

Telegram-чат

Discord

 

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

Язык Компилятор Ссылки
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

Каждый языковой пакет содержит в себе набор моделей, класс MyStrategy, в котором вы пишете логику своей стратегии, а также прочие файлы необходимые для запуска процесса стратегии и обмена данными с игровым сервером.



geranazavr5551

geranazavr5551

Codeforces

О, круто

27.11.2020 21:38:13
TongoHiti

TongoHiti

Москва

Погнали! :)

28.11.2020 0:03:43
Staxxx

GL HF !!!

28.11.2020 1:25:02
vovo4ka

vovo4ka

Рязань

А есть ссылка на репозиторий с пакетами?

28.11.2020 1:47:10
steleal

steleal

Ульяновск

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

28.11.2020 8:54:28
bukazoid

bukazoid

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

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

28.11.2020 9:25:31
GoodDalek

GoodDalek

АлтГУ

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

28.11.2020 10:25:42
iLegion

iLegion

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

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

28.11.2020 12:17:52
ICRainbow

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

28.11.2020 13:04:27
ciiol

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

28.11.2020 13:38:54
MagneticFox

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

28.11.2020 14:18:01
MagneticFox
steleal

steleal

Ульяновск

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

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

28.11.2020 14:19:08
n0bleman

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

28.11.2020 18:46:51
mynameisdaniil

Будет ли Elixir?

28.11.2020 20:23:21
pashqa88

pashqa88

Leroy Merlin

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

28.11.2020 23:24:33
kuliev.vitaly

kuliev.vitaly

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

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

29.11.2020 2:16:48
kuviman

kuviman

Codeforces

kuliev.vitaly

kuliev.vitaly

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

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

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

29.11.2020 2:29:29
kuviman

kuviman

Codeforces

bukazoid

bukazoid

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

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

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

29.11.2020 2:40:59
kuviman

kuviman

Codeforces

pashqa88

pashqa88

Leroy Merlin

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

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

29.11.2020 2:43:05
kuviman

kuviman

Codeforces

iLegion

iLegion

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

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

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

29.11.2020 2:44:08
arkountos

arkountos

NTUA, Athens

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

29.11.2020 3:10:52
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

29.11.2020 3:34:22
PaRy

PaRy

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

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

29.11.2020 4:48:27
prospero78su

prospero78su

Берлин

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

29.11.2020 9:13:48
pashqa88

pashqa88

Leroy Merlin

kuviman

kuviman

Codeforces

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

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

29.11.2020 13:47:13
xocks

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

29.11.2020 16:16:34
Hooloovo

Hooloovo

УрФУ

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

30.11.2020 1:03:31
dozorhunterr

dozorhunterr

Москва

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

30.11.2020 1:46:27
dozorhunterr

dozorhunterr

Москва

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

30.11.2020 2:07:19
kuviman

kuviman

Codeforces

dozorhunterr

dozorhunterr

Москва

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

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

30.11.2020 4:10:36
cartman

cartman

Ялта

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

30.11.2020 15:25:26
kuviman

kuviman

Codeforces

cartman

cartman

Ялта

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

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

30.11.2020 16:23:25
Sardukar

Sardukar

Артем

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

30.11.2020 17:06:03
xocks

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

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

30.11.2020 18:40:21
ooCristalloo

ooCristalloo

СМПК

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

30.11.2020 22:20:06
UA3MQJ

Elixir будет?

01.12.2020 9:59:31
yulik.daniel

yulik.daniel

Москва

Кто-то, кто справился скомпилировать под 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

01.12.2020 13:33:04
salimbek

salimbek

ИП

yulik.daniel

yulik.daniel

Москва

Кто-то, кто справился скомпилировать под 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)’

01.12.2020 18:23:06
kuviman

kuviman

Codeforces

yulik.daniel

yulik.daniel

Москва

Кто-то, кто справился скомпилировать под 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 .

01.12.2020 19:28:31
MikeWazowski

MikeWazowski

Москва

kuviman

kuviman

Codeforces

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

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

02.12.2020 11:52:27
kreo

kreo

Яндекс

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

02.12.2020 21:41:36
Zeratul

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

03.12.2020 0:52:19
kuviman

kuviman

Codeforces

kreo

kreo

Яндекс

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

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

03.12.2020 1:31:55
zn-soft

zn-soft

Fesco

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

06.12.2020 5:18:31
zn-soft

zn-soft

Fesco

zn-soft

zn-soft

Fesco

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

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

06.12.2020 5:47:13
zn-soft

zn-soft

Fesco

zn-soft

zn-soft

Fesco

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

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

06.12.2020 5:47:51
MityanPal

MityanPal

Москва

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

06.12.2020 14:26:29
zn-soft

zn-soft

Fesco

MityanPal

MityanPal

Москва

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

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

06.12.2020 14:27:56
MityanPal

MityanPal

Москва

zn-soft

zn-soft

Fesco

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

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

06.12.2020 14:31:07
egdude

egdude

Москва

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

06.12.2020 14:38:40
MityanPal

MityanPal

Москва

Вот полный код метода 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

06.12.2020 14:43:15
MityanPal

MityanPal

Москва

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

06.12.2020 14:44:34
zn-soft

zn-soft

Fesco

MityanPal

MityanPal

Москва

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

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

06.12.2020 15:51:05
ShmelX

ShmelX

Тула

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

06.12.2020 17:33:59
TDC777

TDC777

Иркутск

Hooloovo

Hooloovo

УрФУ

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

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

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

07.12.2020 14:08:51
TDC777

TDC777

Иркутск

TDC777

TDC777

Иркутск

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

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

07.12.2020 14:25:53
TDC777

TDC777

Иркутск

Hooloovo

Hooloovo

УрФУ

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

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

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

07.12.2020 14:48:20
HoberMellow

HoberMellow

Freelancer

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

09.12.2020 11:48:16
mr2dark

mr2dark

Piano.io

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

09.12.2020 13:41:41
Polifem

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

10.12.2020 23:12:54
zn-soft

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

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

11.12.2020 7:25:49
Khao

Khao

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

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

`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)`

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

14.12.2020 21:59:13
Khao

Khao

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

Khao

Khao

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

При сабмите выдаёт вот это: 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)

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

14.12.2020 22:18:35
luckman17

luckman17

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

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

14.12.2020 22:28:23
Khao

Khao

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

luckman17

luckman17

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

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

14.12.2020 22:32:59
Dyavol

Dyavol

Изюм

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

28.12.2020 22:28:14
amurushkin

amurushkin

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

Dyavol

Dyavol

Изюм

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

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

29.12.2020 0:21:48
Dyavol

Dyavol

Изюм

amurushkin

amurushkin

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

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

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

29.12.2020 8:35:11
amurushkin

amurushkin

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

Dyavol

Dyavol

Изюм

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

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

29.12.2020 12:08:15
kuviman

kuviman

Codeforces

Dyavol

Dyavol

Изюм

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

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

29.12.2020 15:53:15