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.
Ryazan
And there is a link to the repository packages?
А есть ссылка на репозиторий с пакетами?
Ulyanovsk
Immediately Java 15-strong!
Сразу Java 15 - сильно!
Yekaterinburg
can I add libraries to maven? lombok for example? logging? I remember before the user classes were replaced with the original fart assembly, now how about this?
а в мавен можно добавлять библиотеки? lombok например? логирование? Помню раньше пользовательские классы заменялись на оригинальные перд сборкой, теперь как с этим?
АлтГУ
If someone refuses to build a C++ package, referring to the “ unresolved external character _ _ imp_*”, then add it to the beginning of their TcpStream.hpp string #pragma comment (lib, “Ws2_32. lib”) will solve the problem
Если у кого пакет C++ откажется собираться, ссылаясь на "неразрешённый внешний символ __imp_*“, то добавление в начало своего TcpStream.hpp строки #pragma comment(lib, ”Ws2_32.lib") решит проблему
Ренессанс жизнь
Guys, please help me out: 1. How do I know which version of Python3 will be used by the server? 2. Where is the description of the API for python (or even some) in human language, so that you do not have to guess by the code and name? It seems that in past competitions there was a PDFka with a description of the API
Ребят, пожскадите, пожалуйста: 1. Как понять, какая версия Python3 будет использована сервере? 2. Где то есть описание API для python (или вообще какое то) человеческим языком, чтобы не надо было угадывать по коду и названию? Кажется, в прошлых соревнованиях была PDFка с описанием API
Rust is there, okay. Are you planning to screw Haskell? What is needed for this?
Rust есть, хорошо. Планируется прикрутить Haskell? Что для этого нужно?
I couldn’t find the license information. The code of the language packages of previous years is published on github under GPL-3.0, and now?
Не смог найти информацию о лицензии. Код языковых пакетов прошлых лет опубликован на гитхабе под GPL-3.0, а сейчас?
I didn’t understand either. Last time it was 8, and everything was great.
Тоже не понял. В прошлый раз была 8-ка, и все было замечательно.
Immediately Java 15-strong!
I didn’t understand either. Last time it was 8, and everything was great.
Сразу Java 15 - сильно!
Тоже не понял. В прошлый раз была 8-ка, и всё было замечательно.
Так трудно было явно указывать типы в пакете на питоне? Ни автодополнение, ни линтер, не работают…
Codeforces
Есть ли пример базовой стратегии на питоне?
Примеры стратегий для всех языков будут позже
а в мавен можно добавлять библиотеки? lombok например? логирование? Помню раньше пользовательские классы заменялись на оригинальные перд сборкой, теперь как с этим?
Сборка на сервере происходит без доступа к интернету. Добавить библиотеку можно будет через пулл реквест на гитхабе, как только появится репозиторий
Кто-нибудь знает используемую версию NodeJS ?
Используется последняя версия, 15.3
Ребят, пожскадите, пожалуйста: 1. Как понять, какая версия Python3 будет использована сервере? 2. Где то есть описание API для python (или вообще какое то) человеческим языком, чтобы не надо было угадывать по коду и названию? Кажется, в прошлых соревнованиях была PDFка с описанием API
Используется последняя версия - 3.9. Документацию API можно найти на странице с правилами
NTUA, Athens
Hello all, gl hf! Are there sample strategies for languages other than the Rust example?
Hello all, gl hf! Are there sample strategies for languages other than the Rust example?
Not yet, but they will be added later
Телекомпания СЭТ
Как на Java отправить стратегию? Как в прошлом году pom + src не работает
Кто на питоне пишет, сталкивались вы с тем, что ошибки в классе MyStrategy всплывают, как ошибки в классе StreamWrapper? Например, помнится я неправильно создал экземпляр класса Vector32Int, мне вместо ошибки о создании объекта давало ошибку, что StreamWrapper в каком то методе получил 1 байт вместо 4-х. Если кто то у себя это пофиксил или знает, как, это сделать, отпишите, пожалуйста)
УрФУ
Кто пишет на JavaScript, подскажите пожалуйста, у меня при локальном запуске выдается ошибка: Socket error: write ECONNABORTED, а на платформе: Socket error: write EPIPE. Не понимаю что это значит и от чего падает, кроме этого ничего не пишет.
Moscow
Visual Studio 2019 еще не обновилась, чтобы использовать GNU 10.2)) Или я не нашел как это сделать
Moscow
Скачал gcc-10.2.0-no-debug. Еле нашел эту версию компилятора. При попытке компилировать проект выдается куча ошибок
Codeforces
Visual Studio 2019 еще не обновилась, чтобы использовать GNU 10.2)) Или я не нашел как это сделать
необязательно использовать тот же компилятор, что на сервере. должно собираться и в Visual Studio
Эх php снова обошли стороной :)
Если вы можете создать языковой пакет для PHP по аналогии с другими языками, мы его добавим. Можно сделать пулл реквест в репозиторий: https://github.com/MailRuChamps/raic-2020
Артем
Кто понял как текст писать? Я примерно делаю: db.PlacedText(debugvertex,‘testtesttesttesttest’,0,20) debug_interface.send(DebugCommand.Add(db)) Но ничего не выходит
Кто на питоне пишет, сталкивались вы с тем, что ошибки в классе MyStrategy всплывают, как ошибки в классе StreamWrapper? Например, помнится я неправильно создал экземпляр класса Vector32Int, мне вместо ошибки о создании объекта давало ошибку, что StreamWrapper в каком то методе получил 1 байт вместо 4-х. Если кто то у себя это пофиксил или знает, как, это сделать, отпишите, пожалуйста)
Пофиксилось с помощью скачивания новой версии приложения
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 ServerMessage::readFrom(InputStream&)' ...
Компилирую так: g++ -std=c++2a -o code main.cpp
ИП
Кто-то, кто справился скомпилировать под 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)’
Codeforces
Кто-то, кто справился скомпилировать под 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 .
Moscow
Примеры стратегий для всех языков будут позже
а когда ждать ? очень хочется увидеть пример назначения действий юнитам для java …
Яндекс
Я правильно понимаю, что в исходном пакете на Rust я могу менять любые файлы, включая Cargo.toml?
Добавьте модуль numba для Python, позволяет делать расчёты со скоростью с++, при этом использует обычный синтаксис в отличии от cython. Это jit компилятор для стандартного CPython, лучше чем PyPy.
Я правильно понимаю, что в исходном пакете на Rust я могу менять любые файлы, включая Cargo.toml?
Можно менять все файлы языкового пакета, но сборка будет происходить без доступа к интернету, так что добавление новых зависимостей только через пулл реквесты на GitHub
Fesco
при попытке построить нового юнита внутри базы C# пакет падает с ошибкой т.к не может обработать пакет ответа от сервера
при попытке построить нового юнита внутри базы C# пакет падает с ошибкой т.к не может обработать пакет ответа от сервера
аааа нет это эксепшн если строить что угодно за пределами карты
аааа нет это эксепшн если строить что угодно за пределами карты
например с координатами (-1,1)
Moscow
Вопрос к знатокам C++: почему у меня следующий код: if(playerView.entities[i].entityType = EntityType::BUILDER_UNIT) { /*do something*/ } выполняется, даже когда у сущности другой тип? в отладчике поставил точку останова внутри данного условия и вижу, что попадаю в цикл когда левая часть - любой союзный юнит или постройка?
Вопрос к знатокам C++: почему у меня следующий код: if(playerView.entities[i].entityType = EntityType::BUILDER_UNIT) { /*do something*/ } выполняется, даже когда у сущности другой тип? в отладчике поставил точку останова внутри данного условия и вижу, что попадаю в цикл когда левая часть - любой союзный юнит или постройка?
потому что должно быть “==” а не “=”
потому что должно быть “==” а не “=”
А, ну да - ошибся. Я не вставил в сообщение “==” - в коде все верно. Но все равно не работает - уже всю голову себе сломал
Moscow
При вызове любого метода debugInterface на go падает ошибка в /stream.ReadInt32, кто-нибудь сталкивался?
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
Moscow
Прошу прощение, с маркдауном разобраться с виду так же сложно, как с другой моей проблемой…
Прошу прощение, с маркдауном разобраться с виду так же сложно, как с другой моей проблемой…
а в отладчике playerView.entities[i].entityType точно другого типа , просто i =1 как то странно и возвращает итератор вначало , а там уже нас ждет этот самый билдер
Tula
Здравствуйте! Не поделится ли кто примером на Java, кок можно через API лог писать.
Кто пишет на JavaScript, подскажите пожалуйста, у меня при локальном запуске выдается ошибка: Socket error: write ECONNABORTED, а на платформе: Socket error: write EPIPE. Не понимаю что это значит и от чего падает, кроме этого ничего не пишет.
Проверь координаты, у меня такое было, когда я отправил в target new model.Vec2Int(0, 0)
После new model.Vec2Int(1, 1) стало успешно
Проверь координаты, у меня такое было, когда я отправил в target new model.Vec2Int(0, 0) После new model.Vec2Int(1, 1) стало успешно
Нет, не помогло, всё равно падает =( пошёл дебажить
Кто пишет на JavaScript, подскажите пожалуйста, у меня при локальном запуске выдается ошибка: Socket error: write ECONNABORTED, а на платформе: Socket error: write EPIPE. Не понимаю что это значит и от чего падает, кроме этого ничего не пишет.
Раздебажил свой случай - я пихал в stream.writeInt(value) // value === undefined
Добавь в stream-wrapper логирование того, что шлёшь. По итогу, я вместо Map отправлял Array, и у него не определёно свойство size
Freelancer
При загрузке C# приложения архивом возникает ошибка компиляции Unable to load the service index for source https://api.nuget.org/v3/index.json. Хотя никаких сторонних библиотек я не использую и csproj файл не изменял. В чем причина?
Piano.io
Можно, пожалуйста, зааппрувить https://github.com/MailRuChamps/raic-2020/pull/101 ?
Кто-то может подсказать: (языковой пакет JavaScript) как задать действия юниту? Можно ли как-то не задавать “полный набор” команд? Например хочу чтобы юнит просто шел, а если не возможно, то стоял. Но создается впечатление, что все равно нужно указывать и остальные команды (строительства, атаки и ремонта).
Кто-то может подсказать: (языковой пакет JavaScript) как задать действия юниту? Можно ли как-то не задавать “полный набор” команд? Например хочу чтобы юнит просто шел, а если не возможно, то стоял. Но создается впечатление, что все равно нужно указывать и остальные команды (строительства, атаки и ремонта).
в правилах написано что можно задать все команды , но будет выплняться та что приоритетней , например если задать move то выполняется он а другие игнорируются
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)`
Что с этим делать?
При сабмите выдаёт вот это:
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)
…
Предыдущую стратегию пропускает, эту - нет. Вдруг это важно :)
Saint Petersburg
При сабмите выдаёт вот это: Обычно подобные ошибки в случае, если отправляются неверные команды (координаты за границами карты и тому подобное)
Izyum
А не осталось ли у кого-нибудь языковых пакетов 2018 года? А то за все года все файлы сохраняю, а за 2018 куда-то посеял, а найти не могу.
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
А не осталось ли у кого-нибудь языковых пакетов 2018 года? А то за все года все файлы сохраняю, а за 2018 куда-то посеял, а найти не могу.
У меня есть, если еще актуально
Izyum
У меня есть, если еще актуально
А можете прислать на почту [email protected] или сюда бросить https://dyavol.su/ur ?
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
А можете прислать на почту [email protected] или сюда бросить https://dyavol.su/ur ?
закинул по ссылке
А не осталось ли у кого-нибудь языковых пакетов 2018 года? А то за все года все файлы сохраняю, а за 2018 куда-то посеял, а найти не могу.