Open AI Championship

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

Project

Sandbox

Round 1

Round 2

Finals

Песочница (на 19 октября 2014 г.)

Recent comments

3 november 19:39: alevlaber wrote comment on post Закрытие Russian AI Cup 2014
3 november 19:33: alevlaber wrote comment on post Закрытие Russian AI Cup 2014
3 november 19:26: alevlaber wrote comment on post Закрытие Russian AI Cup 2014
29 september 10:26: alevlaber wrote comment on post Закрытие Russian AI Cup 2014
4 september 14:57: steleal wrote comment on post Закрытие Russian AI Cup 2014
4 september 14:56: steleal wrote comment on post Закрытие Russian AI Cup 2014
4 september 08:24: zavod wrote comment on post Закрытие Russian AI Cup 2014

VK Group

 

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

Язык Версия компилятора Ссылки
C++ и С++11 g++ GCC 4.7.2 скачать пакет для C++
Java Oracle JDK 1.7.0_67 скачать пакет для 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.7 скачать пакет для Python2
Python3 Python 3.4.1 скачать пакет для Python3
Ruby JRuby 1.7.13, Oracle JDK 1.7.0_67 скачать пакет для Ruby
Scala Scala 2.11.2, Oracle JDK 1.7.0_67 скачать/выписать пакет для Scala

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

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

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

  • для С++ вложен проект Visual C++ 2005;
  • для Java вложены проекты Maven 2, Intellij IDEA 12, Eclipse;
  • для C# вложен проект Visual C# 2010;
  • для Pascal вложены проекты Delphi и Lazarus IDE;
  • и другие.

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

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

Обновлено:

  • 14 сентября 20:30: В системе поддержан пакет для Scala. Обратите внимание, что поддержка этого пакета осуществляется Сергеем Ивановым, а не командой Russian AI Cup. Все замечания/предложения стоит направлять прямиком ему.


HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

Пакет С++, похоже, недоделан. По привычке ткнул cpp-cgdk.sln, он сконвертировался. При попытке компиляции в Visual Studio 2010: 1>c1xx : fatal error C1083: Не удается открыть файл источник: model\Bonus.cpp: No such file or directory 1>c1xx : fatal error C1083: Не удается открыть файл источник: model\Trooper.cpp: No such file or directory …

Помогло в студии удалить *.cpp и *.h в папках model и передабавить их все из папки языкового пакета, после этого собралось и заработало.

Хоккей такой классный :-)

Sep 8, 2014 12:56:17 AM
SladeThe

SladeThe

Команда Russian AI Cup

GRaAL

GRaAL

Actimind

А java 8 не планируется поддерживать?

До этого не планировали )

А вообще, зависит от загруженности текучкой. Постараемся добавить в течение чемпионата. Но если совсем аврал будет, то только в следующем году.

Sep 8, 2014 2:32:53 AM
SladeThe

SladeThe

Команда Russian AI Cup

HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

Пакет С++, похоже, недоделан. По привычке ткнул cpp-cgdk.sln, он сконвертировался. При попытке компиляции в Visual Studio 2010: 1>c1xx : fatal error C1083: Не удается открыть файл источник: model\Bonus.cpp: No such file or directory 1>c1xx : fatal error C1083: Не удается открыть файл источник: model\Trooper.cpp: No such file or directory …

Действительно, были обновлены только некоторые проекты. В ближайшее время поправим.

Sep 8, 2014 2:33:41 AM
GRaAL

GRaAL

Actimind

SladeThe

SladeThe

Команда Russian AI Cup

До этого не планировали ) А вообще, зависит от загруженности текучкой. Постараемся добавить в течение чемпионата. Но если совсем аврал будет, то только в следующем году.

А что для этого необходимо? Можно ли как-то помочь?

Sep 8, 2014 3:12:58 AM
SladeThe

SladeThe

Команда Russian AI Cup

GRaAL

GRaAL

Actimind

А что для этого необходимо? Можно ли как-то помочь?

Пока не начали, сложно сказать. В идеале всё должно быть легко и быстро (Java должна быть на 100% обратно совместимой), а там кто знает, какие трудности могут всплыть.

Sep 8, 2014 3:19:44 AM
SladeThe

SladeThe

Команда Russian AI Cup

Скачал языковой пакет C++ нажимаю на батник, но он не компилирует даже MyStrategy которая шла в комплекте с языковым пакетом, что делаю не так?

У вас в системе должен быть установлен один из требуемых компиляторов: gcc 4.7.2 для скрипта compile-g++.bat или MS Visual C++ для compile-vscpp.bat. Если не это является проблемой, отправьте нам сообщение с подробным описанием проблемы: ОС, вывод скрипта компиляции и т.д.

Sep 8, 2014 11:37:55 AM
kostya93

kostya93

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

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

Sep 8, 2014 12:00:59 PM
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

kostya93

kostya93

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

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

А в пакет смотрел? Там и другие проекты есть.

Sep 8, 2014 12:22:32 PM
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

StepetS

StepetS

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

планируется ли в обозримом будущем полноценная поддержка *n*x систем в Pascal-пакете ?

По опыту предыдущих лет - времени на добавление новых языков не будет. Будут исправлены ошибки в уже имеющихся пакетах. Стоит подходить с позиции опенсорса - если чего не так, то не ждать, а сделать самому и пошарить. То есть - запилить пакет с любимым языком или допилить существующий самому и выложить для всех. На своем примере - сразу же вперся с пакетом С++, разобрался и отписался, как его надо поправить. Дерзайте и не бойтесь творить, это проще, чем кажется, ругать не будут :-)

Sep 8, 2014 12:50:46 PM
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

EvAn

EvAn

КубГТУ

Поддержки Scala не будет?

По опыту предыдущих лет - времени на добавление новых языков не будет. Будут исправлены ошибки в уже имеющихся пакетах. Стоит подходить с позиции опенсорса - если чего не так, то не ждать, а сделать самому и пошарить. То есть - запилить пакет с любимым языком или допилить существующий самому и выложить для всех. На своем примере - сразу же вперся с пакетом С++, разобрался и отписался, как его надо поправить. Дерзайте и не бойтесь творить, это проще, чем кажется, ругать не будут :-)

Sep 8, 2014 12:50:53 PM
admin

admin

Команда Russian AI Cup

StepetS

StepetS

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

планируется ли в обозримом будущем полноценная поддержка *n*x систем в Pascal-пакете ?

Нам неизвестен кросс-платформенный способ работы с TCP-сокетами во FreePascal. Если такой способ вам известен, то можно рассмотреть возможность доработки пакета.

Sep 8, 2014 1:02:21 PM
SladeThe

SladeThe

Команда Russian AI Cup

Народ, подскажите, я скачал С++ пакет, если я без каких либо изменений кода запущу его в VS12 игра должна включиться? или она включится только после написания кода?

Языковой пакет не содержит игру, а только лишь вашу стратегию. Если вы хотите тестировать свою стратегию локально (без использования сайта), то вам необходимо скачать утилиту Local runner, запустить её, а затем вашу стратегию.

Sep 8, 2014 3:38:50 PM
xandox

xandox

Яндекс

Вы как-то наивно предполагаете, что все компилируют либо в Windows Visual Studia-ей либо в Linux shell-скриптом (sic!). В частносте, на darwin код из коробки не компилируется. Мне не сложно, я поправил. Но осадочек остался :)

Sep 8, 2014 5:07:14 PM
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

xandox

xandox

Яндекс

Вы как-то наивно предполагаете, что все компилируют либо в Windows Visual Studia-ей либо в Linux shell-скриптом (sic!). В частносте, на darwin код из коробки не компилируется. Мне не сложно, я поправил. Но осадочек остался :)

Отошлите организаторам, чо :-) Пускай труд не пропадет и у кого-то из коробки заработает.

Sep 8, 2014 5:58:00 PM
imsohate

imsohate

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

языковой пакет Ruby, в папке model в файле unit.rb в ф-ции get_distance_to используется ф-ция hypot, как я понял, из библиотеки Math, но она вызывается без префикса “Math::”, на что ругается компилятор jruby 1.7.15 и говорит, что в классе unit нет метода hypot.

Sep 8, 2014 8:13:16 PM
SladeThe

SladeThe

Команда Russian AI Cup

xandox

xandox

Яндекс

Вы как-то наивно предполагаете, что все компилируют либо в Windows Visual Studia-ей либо в Linux shell-скриптом (sic!). В частносте, на darwin код из коробки не компилируется. Мне не сложно, я поправил. Но осадочек остался :)

Вы же понимаете, что мы не можем поддержать все возможные ОС и компиляторы. Предполагается, что если вы используете ОС, отличную от Windows, то ваш уровень чуточку выше, чем просто user. А значит, вы можете поправить скрипт компиляции.

Присоединяюсь к предложению access_denied: если вы уже сделали fix, то почему бы не поделиться им через GitHub? Можете также прислать правку нам, и мы добавим её сами. Тогда другие пользователи Darwin получат пакет «из коробки».

Sep 8, 2014 8:42:51 PM
bernikowich

bernikowich

Джей лаб

Не планируется добавить пакет для XCode?

Sep 8, 2014 8:57:43 PM
admin

admin

Команда Russian AI Cup

lispad

lispad

Петрозаводск

Стратегия на Ruby (базовая) не проходит верификацию. Ваша стратегия «упала» в коротком проверочном бою 2x2. При инициализации игрока возникло непредвиденное исключение.

Была проблема с конфигурацией, исправлено.

Sep 8, 2014 10:42:07 PM
andheroe_12

andheroe_12

DataRobot

В пакетах Python в среде PyCharm для параметра “me” не работает авто-дополнение среды. Баг - не баг, а работать неудобно, может подскажете, где искать проблему?

Sep 8, 2014 10:50:33 PM
dreamComeFalse

dreamComeFalse

Минск

Плюсую за xCode

Sep 8, 2014 11:05:08 PM
vJRoF

Может не к язывовым пакетам относится, но всё же: иногда получается, что в world.Hockeyists передаётся четыре игрока вместо шести, причём с завидной периодичностью. В результате что-то типа Hockeyist goalie = world.Hockeyists.Single(h => !h.IsTeammate && h.Type == HockeyistType.Goalie); кидает исключение. Это как-то объясняется?

Sep 8, 2014 11:10:55 PM
lispad

lispad

Петрозаводск

admin

admin

Команда Russian AI Cup

Была проблема с конфигурацией, исправлено.

А теперь ошибка компиляции…

Sep 8, 2014 11:12:04 PM
Tehnar

Tehnar

СПб АУ РАН

getOwnerHockeyistId publi long getOwnerHockeyistId( ) – Returns - Возвращает идентификатор хоккеиста, контролирующего шайбу, или -1.

Возвращает идентификатор хоккеиста в массиве wold.getHockeyists?

Sep 8, 2014 11:14:43 PM
lispad

lispad

Петрозаводск

lispad

lispad

Петрозаводск

А теперь ошибка компиляции…

Во, теперь прошла! :)

Sep 8, 2014 11:24:13 PM
lispad

lispad

Петрозаводск

Для ruby поправьте модели плиз, уже писали выше.

get_angle_to': undefined methodatan2’ for #<Hockeyist:0x1916358> (NoMethodError)

atan2 -> Math::atan2 и hypot -> Math::hypot

Sep 9, 2014 12:04:23 AM
andheroe_12

andheroe_12

DataRobot

andheroe_12

andheroe_12

DataRobot

В пакетах Python в среде PyCharm для параметра “me” не работает авто-дополнение среды. Баг - не баг, а работать неудобно, может подскажете, где искать проблему?

class MyStrategy: def move(self, me, world, game, move): ""“ Функция, описывающая стратегию хоккеиста в один тик @type me: Hockeyist ”"" move.speed_up = -1.0 move.turn = pi move.action = ActionType.STRIKE

Python не понимал тип переменной, вставил указание в строке документации функции - помогло.

Sep 9, 2014 12:38:04 AM
ikillpeople

ikillpeople

Цюрих

Предложение: добавьте в окружение библиотеку numpy (для обоих питонов). Она достаточно признана в сообществе чтобы считать её стандартной, очень mature, поставить её легко, и это несколько сократит разрыв в скорости между питоном и с++.

Спасибо!

Sep 9, 2014 1:22:39 AM
coldmind

coldmind

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

Подскажите пожалуйста, для явы разбивка на пакеты не вариант? Смутило “Эти файлы должны находиться в том же каталоге, что и основной файл стратегии.”

Sep 9, 2014 1:23:08 AM
GreenTea

GreenTea

ISDDesign

coldmind

coldmind

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

Подскажите пожалуйста, для явы разбивка на пакеты не вариант? Смутило “Эти файлы должны находиться в том же каталоге, что и основной файл стратегии.”

В теории можно, но тогда можно наткнуться на вот такую проблему http://stackoverflow.com/questions/283816/how-to-access-java-classes-in-the-default-package

Sep 9, 2014 2:11:02 AM
imwode

imwode

Красногорск

Пакет для питона 2.7: Документацию можно читать, только для того, чтобы получить общее представление. Большая часть того, что в доках описано как “методы”, на самом деле в питоновском пакете являются параметрами. Редкие методы встречаются, названия методов абсолютно не соответствуют докам. Ну и черт бы с ними, конечно же. Частенько выдвет ошибку при поиске вратаря - проходим по списку хоккеистов и периодически в нем нет голкипера-тимммейта. Учитывая десяток разных действий, которые надо совершить, чтобы поймать причину - этим не заморачивался пока. Ошибка возникает рандомно. В батниках добавьте команды exit, чтобы открывающиеся окна сами закрывались по окончании сеанса. И блин, почему не сделать координаты центра ворот своих и чужих? У меня ребята там в пяти боях из четырех наваливались на свои ворота толпой - я грешным делом решил, что свои ворота всегда справа :-)

Sep 9, 2014 3:02:32 AM
-XraY-

-XraY-

СПбГУ

У меня проблема с пакетом для с++ на mac os. ./csimplesocket/SimpleSocket.h:61:12: fatal error: ‘linux/if_packet.h’ file not found Ничего полезного в инете я не нашел. Что делать?)

Sep 9, 2014 5:18:43 AM
imwode

imwode

Красногорск

imwode

imwode

Красногорск

Пакет для питона 2.7: Документацию можно читать, только для того, чтобы получить общее представление. Большая часть того, что в доках описано как “методы”, на самом деле в питоновском пакете являются параметрами. Редкие методы встречаются, названия методов абсолютно не соответствуют докам. Ну и черт бы с ними, конечно же. Частенько выдвет ошибку при поиске вратаря - проходим по списку хоккеистов и периодически в нем нет голкипера-тимммейта. Учитывая десяток разных действий, которые надо совершить, чтобы поймать причину - этим не заморачивался пока. Ошибка возникает рандомно. В батниках добавьте команды exit, чтобы открывающиеся окна сами закрывались по окончании сеанса. И блин, почему не сделать координаты центра ворот своих и чужих? У меня ребята там в пяти боях из четырех наваливались на свои ворота толпой - я грешным делом решил, что свои ворота всегда справа :-)

С вратарями понял - в овертайме вратари убираются из ворот и случается “ой”

Sep 9, 2014 5:39:22 AM
erwins

erwins

Мегафон

Как добавить Немерли? язык net, работает под Моно. Готов взять на себя перевод кода и доработку.

Sep 9, 2014 7:22:54 AM
gimntut
andheroe_12

andheroe_12

DataRobot

class MyStrategy: def move(self, me, world, game, move): "““ Функция, описывающая стратегию хоккеиста в один тик @type me: Hockeyist ””" move.speed_up = -1.0 move.turn = pi move.action = ActionType.STRIKE Python не понимал тип переменной, вставил указание в строке документации функции - помогло.

В документацию выносить не обязательно, но идея хорошая. Достаточно просто убрать “типы”.

Sep 9, 2014 10:01:29 AM
alexx.nazaroff

alexx.nazaroff

Forticom

bernikowich

bernikowich

Джей лаб

Не планируется добавить пакет для XCode?

Добавил пулл реквест

Sep 9, 2014 10:04:53 AM
alexx.nazaroff

alexx.nazaroff

Forticom

-XraY-

-XraY-

СПбГУ

У меня проблема с пакетом для с++ на mac os. ./csimplesocket/SimpleSocket.h:61:12: fatal error: ‘linux/if_packet.h’ file not found Ничего полезного в инете я не нашел. Что делать?)

Добавил xcode project (в гите см форк https://github.com/Rogaven/cpp-cgdk, если пройдет пулл реквест - будет и в оф версии) - через него запускается отлично

Sep 9, 2014 10:08:33 AM
Romano

Могу ли я использовать в своей стратегии пакет numpy?

Sep 9, 2014 11:15:52 AM
sevlar

sevlar

Барнаул

Если я реализую языковой пакет для golang вы его добавите?

Sep 9, 2014 2:15:52 PM
Arugin

Arugin

unbe

atan2 -> Math::atan2 и hypot -> Math::hypot для ruby поправьте пожалуйста. Ну пожалуйста!

Sep 9, 2014 2:53:21 PM
vladimirzorin

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

Sep 9, 2014 3:10:15 PM
kipar

kipar

ООО Доминанта

Arugin

Arugin

unbe

atan2 -> Math::atan2 и hypot -> Math::hypot для ruby поправьте пожалуйста. Ну пожалуйста!

Я “include Math” в начале файла написал (т.е. до require) и все работает. Правда принимает стратегию раза с третьего, жалуется на ошибки компиляции.

Sep 9, 2014 3:16:15 PM
Arugin

Arugin

unbe

kipar

kipar

ООО Доминанта

Я “include Math” в начале файла написал (т.е. до require) и все работает. Правда принимает стратегию раза с третьего, жалуется на ошибки компиляции.

Уже пофиксили.

Sep 9, 2014 3:31:08 PM
vladimirzorin

а где тут инструкция для чайников? кому не жалко поделитесь примером кода на С++, где хотябы хокеисты за шайбой следуют. мне бы за чтонибудь зацепиться, а там само пойдет. в языковом пакете есть компилятор (С++), если есть то как им пользоваться? заранее, спасибо за помощь.

Sep 9, 2014 3:36:53 PM
admin

admin

Команда Russian AI Cup

а где тут инструкция для чайников? кому не жалко поделитесь примером кода на С++, где хотябы хокеисты за шайбой следуют. мне бы за чтонибудь зацепиться, а там само пойдет. в языковом пакете есть компилятор (С++), если есть то как им пользоваться? заранее, спасибо за помощь.

Разработки базовой стратегии является частью конкурса. Делиться кодом запрещено. Ознакомьтесь с содержимым пакета для C++, постом про быстрый старт и прочтите правила.

Sep 9, 2014 4:03:46 PM
smith.postman

Пакет Ruby не работает. Разные баги в самом пакете (Math::atan2), и ошибки на сервере при “компиляции”

Sep 9, 2014 4:50:40 PM
xgetc

xgetc

Москва

Почините пакет для руби ! :(

Sep 9, 2014 4:55:40 PM
kipar

kipar

ООО Доминанта

Arugin

Arugin

unbe

Уже пофиксили.

В гитхабе может и починили) но без include все равно стратегия не принимается.

Sep 9, 2014 5:13:27 PM
cherchaa

В питоне только у меня ошибка socket.error: [Errno 10061] ?

Sep 9, 2014 5:25:23 PM
alladdin

alladdin

МФТИ (ГУ)

а где тут инструкция для чайников? кому не жалко поделитесь примером кода на С++, где хотябы хокеисты за шайбой следуют. мне бы за чтонибудь зацепиться, а там само пойдет. в языковом пакете есть компилятор (С++), если есть то как им пользоваться? заранее, спасибо за помощь.

http://russianaicup.ru/p/quick - вот здесь есть код на Java, который довольно легко скопировать и подправить так, чтобы он работал на C++

Sep 9, 2014 5:36:03 PM
enot110

enot110

ITMO University

Если кто-нибудь расскажет, как заставить CLion (среда от JetBrains для с++) компилировать все (а лучше только то, что реально было изменено), будет круто :)

Sep 9, 2014 11:48:21 PM
denisx

denisx

Россия

с# : не компилит (и не подсказывает) world.getHockeyists();

Sep 10, 2014 12:36:59 AM
dreadlockeugene

Добавил xcode project (в гите см форк https://github.com/Rogaven/cpp-cgdk , если пройдет пулл реквест - будет и в оф версии) - через него запускается отлично

Огромное спасибо за XCode! Надеюсь, его и дальше будут поддерживать.

Sep 10, 2014 11:08:48 AM
SladeThe

SladeThe

Команда Russian AI Cup

denisx

denisx

Россия

с# : не компилит (и не подсказывает) world.getHockeyists();

Такого метода у объекта world нет. Это был пример для Java. В C# вы можете получить список хокккеистов через свойство world.Hockeyists. В пакете есть исходный код всех классов, используемых в стратегии, и вы легко это можете посмотреть.

Sep 10, 2014 11:34:30 AM
Arugin

Arugin

unbe

Почините Repeater для Ruby! Не проходит верификацию на сервере и накак не посмотреть почему.

Sep 10, 2014 7:41:32 PM
majiq

в “языковых пакетах” для питона надо удалить папку “.idea”, ато не гоже требовать от моего кошерного линукса “python.exe”

Sep 11, 2014 1:13:53 PM
Rempler

Rempler

Саратов

Rempler

Rempler

Саратов

Подскажите, можно ли размещать Java код в разных пакетах?

Уже разобрался, что нельзя, а жаль.

Sep 11, 2014 8:55:04 PM
asurkis

Прошу прощения, в языковом пакете для C++ не планируется поддерживать CMake? Вроде поддерживаются оба известных компилятора, а среда разработки используется только Visual Studio. Хотелось бы использовать в качестве среды разработки QtCreator или KDevelop, но никак не Visual Studio, ибо она слишком тяжеловесна.

Sep 12, 2014 4:51:12 PM
emergency1997

emergency1997

Севастополь

Прошу прощения но при первой компиляции файла MYstrategy.pas(я пока ничего не менял) в Free Pascal у меня возникла такая ошибка

HockeyistControl.pas(9,24) Error: Identifier not found “class” HockeyistControl.pas(10,5) Error: Error in type definition HockeyistControl.pas(10,5) Fatal: Syntax error, “;” expected but “identifier PRIVATE” found HockeyistControl.pas(0) Fatal: Compilation aborted

Для решения пробовал в interfaces добавить {$mode objfpc} В первый раз помогло но Free Pascal тогда не компилировал новый MYstrategy.exe. Я переустановил Free Pascal и попробовал снова добавить {$mode objfpc}, но в этот раз проблема не решилась.

Помогите пожалуйста!

Sep 12, 2014 11:31:16 PM
Cooler

Cooler

Минск

emergency1997

emergency1997

Севастополь

Прошу прощения но при первой компиляции файла MYstrategy.pas(я пока ничего не менял) в Free Pascal у меня возникла такая ошибка HockeyistControl.pas(9,24) Error: Identifier not found “class” HockeyistControl.pas(10,5) Error: Error in type definition HockeyistControl.pas(10,5) Fatal: Syntax error, “;” expected but “identifier PRIVATE” found HockeyistControl.pas(0) Fatal: Compilation aborted …

Для решения пробовал в interfaces добавить {$mode objfpc} В первый раз помогло но Free Pascal тогда не компилировал новый MYstrategy.exe.

Нужно компилировать в режиме Delphi: параметр в командной строке -Mdelphi - он уже прописан в compile-fpc.bat, просто запускайте его. Режим objfpc в принципе тоже годен, но возможны нежданчики. Ну а свой код можно писать в любом режиме синтаксиса используя {$mode xxx}

Sep 13, 2014 1:11:57 AM
SladeThe

SladeThe

Команда Russian AI Cup

Spun

Spun

Москва

Функции game.getPickUpPuckBaseChance и game.getStrikePuckBaseChance возвзращают не те значения, которые предполагаются. 0.6 и 0.75 соответственно. Из документации ожидаются 1.6 и 1.75. Работаю в Python3.

Фактически, здесь имеются в виду значения из формул 2.9, 2.10 и 2.11 правил. Далее в документации к методу указано, что атрибуты хоккеиста увеличивают шанс на успешное действие, а скорость шайбы уменьшает. Действительно, в правилах базовым шансом называется другое значение, и мы поправим документацию к методам. Возвращаемые значения меняться не будут, так как возможно уже кто-то заложился на это в своей стратегии.

Sep 13, 2014 1:03:30 PM
emergency1997

emergency1997

Севастополь

Cooler

Cooler

Минск

Нужно компилировать в режиме Delphi: параметр в командной строке -Mdelphi - он уже прописан в compile-fpc.bat, просто запускайте его. Режим objfpc в принципе тоже годен, но возможны нежданчики. Ну а свой код можно писать в любом режиме синтаксиса используя {$mode xxx}

Спасибо проблема решилась. Но к сожалению осталась другая проблема. При компиляции пишет “Can’t run a unit” . Я так понял что он не хочет создавать exe файл. Помоги пожалуйста

Sep 13, 2014 2:08:29 PM
Cooler

Cooler

Минск

emergency1997

emergency1997

Севастополь

Спасибо проблема решилась. Но к сожалению осталась другая проблема. При компиляции пишет “Can’t run a unit” . Я так понял что он не хочет создавать exe файл. Помоги пожалуйста

Главный файл - runner.dpr.

Sep 13, 2014 2:14:32 PM
emergency1997

emergency1997

Севастополь

Cooler

Cooler

Минск

Главный файл - runner.dpr.

Прости, но я не очень тебя понял. Я нашёл файл compile-dpr. Но как с помощью него создать exe файл. Объясни пожалуйста.

Sep 13, 2014 3:10:22 PM
emergency1997

emergency1997

Севастополь

Cooler

Cooler

Минск

Главный файл - runner.dpr.

Всё спасибо разобрался. Сделал так: запустил compile-dpr и compile-fpc Экзешник появился и всё заработало. Большое тебе спасибо за помощь.

Sep 13, 2014 5:41:18 PM
fippo

fippo

Яндекс

Прошу прощения, в языковом пакете для C++ не планируется поддерживать CMake? Вроде поддерживаются оба известных компилятора, а среда разработки используется только Visual Studio. Хотелось бы использовать в качестве среды разработки QtCreator или KDevelop, но никак не Visual Studio, ибо она слишком тяжеловесна.

http://pastebin.com/SpXGZKZD

Sep 13, 2014 6:57:19 PM
emergency1997

emergency1997

Севастополь

Кстати, кажись в документации, а именно в процедуре Hockeyist самая последняя функция должна называться вместо “isTeammate( )” - “getTeammate( )” По крайней мере в Free Pascale так должно быть

Sep 13, 2014 10:35:28 PM
amurushkin

amurushkin

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

emergency1997

emergency1997

Севастополь

Кстати, кажись в документации, а именно в процедуре Hockeyist самая последняя функция должна называться вместо “isTeammate( )” - “getTeammate( )” По крайней мере в Free Pascale так должно быть

isTeammate самое логичное название этой функции, которое говорит само за себя

Sep 13, 2014 10:38:21 PM
emergency1997

emergency1997

Севастополь

amurushkin

amurushkin

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

isTeammate самое логичное название этой функции, которое говорит само за себя

На счёт того что оно логичное я не спорю. Я имею ввиду что “isTeammate” вообще нигде не описана кроме как в документации. В место неё в языковом пакете используется “getTeammate”. Возможно в документации допустили не большую опечатку и я предлагаю её исправить.

Sep 13, 2014 11:32:20 PM
Flutter

Flutter

Nitka Technologies

Только у меня self.AngularSpeed (в C#) всё время равно нулю?

Sep 16, 2014 10:22:26 AM
dantistus

dantistus

Student

Flutter

Flutter

Nitka Technologies

Только у меня self.AngularSpeed (в C#) всё время равно нулю?

При повороте move.setTurn() AngularSpeed не меняется, она не равна нулю, когда хоккеисты сталкиваются и закручиваются.

Sep 16, 2014 10:58:37 AM
Flutter

Flutter

Nitka Technologies

dantistus

dantistus

Student

При повороте move.setTurn() AngularSpeed не меняется, она не равна нулю, когда хоккеисты сталкиваются и закручиваются.

Интересно, это баг или фича?

Sep 16, 2014 11:01:57 AM
dimoc

dimoc

Минск

Flutter

Flutter

Nitka Technologies

Интересно, это баг или фича?

по-моему так и должно быть. когда ставишь setTurn, то на следующем тике у тебя просто угол изменился, например на 3 градуса(т.е. в отличие от столкновения, хоккеист не раскручивается от внешней силы, а просто устанавливается другой угол)

Sep 16, 2014 11:22:18 AM
dantistus

dantistus

Student

Flutter

Flutter

Nitka Technologies

Интересно, это баг или фича?

Фича :)

Sep 16, 2014 3:52:33 PM
alevlaber

alevlaber

Костанай

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

Sep 16, 2014 8:44:39 PM
StrelokCj

StrelokCj

Техноавиа

Компилирую код в Visual Studoi C++ 2010, все в порядке. Отправляю сюда, пишет ошибку в цикле for each: MyStrategy.cpp:99:8: error: expected ‘(’ before ‘each’ Почему?

Sep 20, 2014 10:22:00 PM
Kirill_Tim

Kirill_Tim

NRU ITMO

StrelokCj

StrelokCj

Техноавиа

Компилирую код в Visual Studoi C++ 2010, все в порядке. Отправляю сюда, пишет ошибку в цикле for each: MyStrategy.cpp:99:8: error: expected ‘(’ before ‘each’ Почему?

тебе нужно выбрать С++11 в качестве компилятора, а не просто С++

Sep 20, 2014 10:23:32 PM
StrelokCj

StrelokCj

Техноавиа

Kirill_Tim

Kirill_Tim

NRU ITMO

тебе нужно выбрать С++11 в качестве компилятора, а не просто С++

Да те же самые ошибки

Sep 20, 2014 10:24:36 PM
ud1

ud1

Химки

StrelokCj

StrelokCj

Техноавиа

Компилирую код в Visual Studoi C++ 2010, все в порядке. Отправляю сюда, пишет ошибку в цикле for each: MyStrategy.cpp:99:8: error: expected ‘(’ before ‘each’ Почему?

В с++ нет for each. В с++11 есть укороченный for.

Sep 20, 2014 10:25:21 PM
ud1

ud1

Химки

StrelokCj

StrelokCj

Техноавиа

Компилирую код в Visual Studoi C++ 2010, все в порядке. Отправляю сюда, пишет ошибку в цикле for each: MyStrategy.cpp:99:8: error: expected ‘(’ before ‘each’ Почему?

Возможно ты путаешь расширения придуманые Microsoft в студии, нужно же писать на православном С++.

Sep 20, 2014 10:26:58 PM
Kirill_Tim

Kirill_Tim

NRU ITMO

ud1

ud1

Химки

В с++ нет for each. В с++11 есть укороченный for.

есть: http://www.cplusplus.com/reference/algorithm/for_each/

Sep 20, 2014 10:27:00 PM
ud1

ud1

Химки

Kirill_Tim

Kirill_Tim

NRU ITMO

есть: http://www.cplusplus.com/reference/algorithm/for_each/

Ну так этож другое, автор имел ввиду вероятно http://msdn.microsoft.com/en-us/library/ms177202.aspx

Sep 20, 2014 10:28:45 PM
StrelokCj

StrelokCj

Техноавиа

ud1

ud1

Химки

Возможно ты путаешь расширения придуманые Microsoft в студии, нужно же писать на православном С++.

А как еще тогда можно перебрать коллекцию world.getHockeyists() ? Мне в голову кроме как for each ничего не приходит.

Sep 20, 2014 10:29:35 PM
ud1

ud1

Химки

StrelokCj

StrelokCj

Техноавиа

А как еще тогда можно перебрать коллекцию world.getHockeyists() ? Мне в голову кроме как for each ничего не приходит.

Ты язык знаешь? Цикл можно 10 разными способами написать, через итератор, через инкрементируемый индекс, через тотже укороченный for. Почитай любую книжку по С++, главу про циклы.

Sep 20, 2014 10:31:38 PM
Kirill_Tim

Kirill_Tim

NRU ITMO

ud1

ud1

Химки

Ну так этож другое, автор имел ввиду вероятно http://msdn.microsoft.com/en-us/library/ms177202.aspx

согласен. я и не знал, что есть ещё один вариант for each

Sep 20, 2014 10:38:56 PM
awesoon

awesoon

ONER

ud1

ud1

Химки

Ну так этож другое, автор имел ввиду вероятно http://msdn.microsoft.com/en-us/library/ms177202.aspx

Вряд ли. Полагаю, речь шла о range-based for

Sep 21, 2014 6:54:05 AM
awesoon

awesoon

ONER

awesoon

awesoon

ONER

Вряд ли. Полагаю, речь шла о range-based for

Не увидел, кто кому отвечает. Игнорируйте сообщение выше.

Sep 21, 2014 6:55:12 AM
KarimTheGrim

KarimTheGrim

НАУ им. Н. Е. Жуковского «ХАИ»

KarimTheGrim

KarimTheGrim

НАУ им. Н. Е. Жуковского «ХАИ»

Скажите, пожалуйста, как запустить стратегию в Local Runner? Ubuntu 14.04, Python 3.

Проблема решена. Спасибо тем, кто захотел бы ответить на дурацкий вопрос не по теме. но уже не нужно.

Sep 22, 2014 11:27:06 PM
Vbif1998

Помогите, кто-нибудь, пожалуйста, не могу понять, что возвращают функции getSpeedX и getSpeedY, что значит x и y скорости?

Sep 23, 2014 8:37:50 PM
Vbif1998

Как я понял, функции должны возвращать положение тела в следующий тик?

Sep 23, 2014 8:41:59 PM
alevlaber

alevlaber

Костанай

Как я понял, функции должны возвращать положение тела в следующий тик?

Положение тела в следующий тик относительно текущих координат, если так можно выразиться

Sep 23, 2014 9:02:21 PM
alevlaber

alevlaber

Костанай

KarimTheGrim

KarimTheGrim

НАУ им. Н. Е. Жуковского «ХАИ»

Проблема решена. Спасибо тем, кто захотел бы ответить на дурацкий вопрос не по теме. но уже не нужно.

Простите, но какой вопрос, такой ответ. Конкретно на ваш вопрос есть ответ в инструкции “Запустите LocalRunner, затем запустите вашу стратегию”. Если что-то не получилось из этого, надо писать, что пробовали и что не получилось. А вообще тут активность в комментариях низкая) Не всегда есть время заходить. А с добавлением комментариев к боям еще и не видно стало, что кто-то написал в постах что-то

Sep 23, 2014 9:05:36 PM
Vbif1998
alevlaber

alevlaber

Костанай

Положение тела в следующий тик относительно текущих координат, если так можно выразиться

Имеется в виду смещение игрока?

Sep 23, 2014 9:06:24 PM
alevlaber

alevlaber

Костанай

Имеется в виду смещение игрока?

Да. И к шайбе тоже применимо.

Sep 23, 2014 9:08:22 PM
Vbif1998

Все, ясно, спасибо.

Sep 23, 2014 9:09:35 PM
JackOfShadow

JackOfShadow

КвантумСофт

Python 2.7 В методе move, класса MyStrategy выполняю print world.tick. Выводит 0 0 1 1 2 2 … Это как так?

Sep 25, 2014 6:22:12 AM
awesoon

awesoon

ONER

JackOfShadow

JackOfShadow

КвантумСофт

Python 2.7 В методе move, класса MyStrategy выполняю print world.tick. Выводит 0 0 1 1 2 2 … Это как так?

Для каждого хоккеиста создается свой объект класса MyStrategy и на каждом тике вызывается метод move.

Sep 25, 2014 7:08:26 AM
JackOfShadow

JackOfShadow

КвантумСофт

awesoon

awesoon

ONER

Для каждого хоккеиста создается свой объект класса MyStrategy и на каждом тике вызывается метод move.

А, блин, затупил… Спасибо)

Sep 25, 2014 8:29:08 AM
DVS

DVS

здесь может быть Ваша компания! :)

Планируется ли поддержка BASIC ? (не дот нетовский, там он почти как C#)

Oct 4, 2014 8:14:26 PM
nop

nop

БГУ

DVS

DVS

здесь может быть Ваша компания! :)

Планируется ли поддержка BASIC ? (не дот нетовский, там он почти как C#)

Я могу снова добавить поддержку C, раз уж шансов дальше мало :)

Oct 4, 2014 8:18:59 PM
DVS

DVS

здесь может быть Ваша компания! :)

nop

nop

БГУ

Я могу снова добавить поддержку C, раз уж шансов дальше мало :)

есть С++ он почти обратно совместим.

А вот BASIC вообще не присутствует.

Oct 4, 2014 8:34:27 PM