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

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

Проект

Песочница

Раунд 1

Раунд 2

Финал

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

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

3 ноября 19:39: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:36: andrey.chernov написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:33: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:30: andrey.chernov написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:26: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
1 октября 13:18: andrey.chernov написал комментарий в посте Закрытие Russian AI Cup 2014
29 сентября 10:26: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
4 сентября 14:57: steleal написал комментарий в посте Закрытие Russian AI Cup 2014
4 сентября 14:56: steleal написал комментарий в посте Закрытие Russian AI Cup 2014
4 сентября 08:24: zavod написал комментарий в посте Закрытие Russian AI Cup 2014

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

 

Для написания собственной стратегии для 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 и передабавить их все из папки языкового пакета, после этого собралось и заработало.

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

08.09.2014 0:56:17
SladeThe

SladeThe

Команда Russian AI Cup

GRaAL

GRaAL

Actimind

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

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

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

08.09.2014 2:32:53
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 …

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

08.09.2014 2:33:41
GRaAL

GRaAL

Actimind

SladeThe

SladeThe

Команда Russian AI Cup

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

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

08.09.2014 3:12:58
SladeThe

SladeThe

Команда Russian AI Cup

GRaAL

GRaAL

Actimind

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

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

08.09.2014 3:19:44
SladeThe

SladeThe

Команда Russian AI Cup

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

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

08.09.2014 11:37:55
kostya93

kostya93

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

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

08.09.2014 12:00:59
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

kostya93

kostya93

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

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

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

08.09.2014 12:22:32
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

StepetS

StepetS

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

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

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

08.09.2014 12:50:46
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

EvAn

EvAn

КубГТУ

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

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

08.09.2014 12:50:53
admin

admin

Команда Russian AI Cup

StepetS

StepetS

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

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

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

08.09.2014 13:02:21
SladeThe

SladeThe

Команда Russian AI Cup

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

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

08.09.2014 15:38:50
xandox

xandox

Яндекс

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

08.09.2014 17:07:14
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

xandox

xandox

Яндекс

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

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

08.09.2014 17:58:00
imsohate

imsohate

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

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

08.09.2014 20:13:16
SladeThe

SladeThe

Команда Russian AI Cup

xandox

xandox

Яндекс

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

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

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

08.09.2014 20:42:51
bernikowich

bernikowich

Джей лаб

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

08.09.2014 20:57:43
admin

admin

Команда Russian AI Cup

lispad

lispad

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

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

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

08.09.2014 22:42:07
andheroe_12

andheroe_12

DataRobot

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

08.09.2014 22:50:33
dreamComeFalse

dreamComeFalse

Минск

Плюсую за xCode

08.09.2014 23:05:08
vJRoF

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

08.09.2014 23:10:55
lispad

lispad

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

admin

admin

Команда Russian AI Cup

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

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

08.09.2014 23:12:04
Tehnar

Tehnar

СПб АУ РАН

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

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

08.09.2014 23:14:43
lispad

lispad

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

lispad

lispad

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

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

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

08.09.2014 23:24:13
lispad

lispad

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

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

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

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

09.09.2014 0:04:23
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 не понимал тип переменной, вставил указание в строке документации функции - помогло.

09.09.2014 0:38:04
ikillpeople

ikillpeople

Цюрих

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

Спасибо!

09.09.2014 1:22:39
coldmind

coldmind

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

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

09.09.2014 1:23:08
GreenTea

GreenTea

ISDDesign

coldmind

coldmind

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

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

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

09.09.2014 2:11:02
imwode

imwode

Красногорск

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

09.09.2014 3:02:32
-XraY-

-XraY-

СПбГУ

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

09.09.2014 5:18:43
imwode

imwode

Красногорск

imwode

imwode

Красногорск

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

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

09.09.2014 5:39:22
erwins

erwins

Мегафон

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

09.09.2014 7:22:54
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 не понимал тип переменной, вставил указание в строке документации функции - помогло.

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

09.09.2014 10:01:29
alexx.nazaroff

alexx.nazaroff

Forticom

bernikowich

bernikowich

Джей лаб

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

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

09.09.2014 10:04:53
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, если пройдет пулл реквест - будет и в оф версии) - через него запускается отлично

09.09.2014 10:08:33
Romano

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

09.09.2014 11:15:52
sevlar

sevlar

Барнаул

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

09.09.2014 14:15:52
Arugin

Arugin

unbe

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

09.09.2014 14:53:21
vladimirzorin

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

09.09.2014 15:10:15
kipar

kipar

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

Arugin

Arugin

unbe

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

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

09.09.2014 15:16:15
Arugin

Arugin

unbe

kipar

kipar

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

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

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

09.09.2014 15:31:08
vladimirzorin

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

09.09.2014 15:36:53
admin

admin

Команда Russian AI Cup

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

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

09.09.2014 16:03:46
smith.postman

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

09.09.2014 16:50:40
xgetc

xgetc

Москва

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

09.09.2014 16:55:40
kipar

kipar

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

Arugin

Arugin

unbe

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

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

09.09.2014 17:13:27
cherchaa

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

09.09.2014 17:25:23
alladdin

alladdin

МФТИ (ГУ)

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

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

09.09.2014 17:36:03
enot110

enot110

ITMO University

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

09.09.2014 23:48:21
denisx

denisx

Россия

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

10.09.2014 0:36:59
dreadlockeugene

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

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

10.09.2014 11:08:48
SladeThe

SladeThe

Команда Russian AI Cup

denisx

denisx

Россия

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

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

10.09.2014 11:34:30
Arugin

Arugin

unbe

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

10.09.2014 19:41:32
majiq

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

11.09.2014 13:13:53
Rempler

Rempler

Саратов

Rempler

Rempler

Саратов

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

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

11.09.2014 20:55:04
asurkis

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

12.09.2014 16:51:12
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}, но в этот раз проблема не решилась.

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

12.09.2014 23:31:16
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}

13.09.2014 1:11:57
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 правил. Далее в документации к методу указано, что атрибуты хоккеиста увеличивают шанс на успешное действие, а скорость шайбы уменьшает. Действительно, в правилах базовым шансом называется другое значение, и мы поправим документацию к методам. Возвращаемые значения меняться не будут, так как возможно уже кто-то заложился на это в своей стратегии.

13.09.2014 13:03:30
emergency1997

emergency1997

Севастополь

Cooler

Cooler

Минск

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

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

13.09.2014 14:08:29
Cooler

Cooler

Минск

emergency1997

emergency1997

Севастополь

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

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

13.09.2014 14:14:32
emergency1997

emergency1997

Севастополь

Cooler

Cooler

Минск

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

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

13.09.2014 15:10:22
emergency1997

emergency1997

Севастополь

Cooler

Cooler

Минск

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

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

13.09.2014 17:41:18
fippo

fippo

Яндекс

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

http://pastebin.com/SpXGZKZD

13.09.2014 18:57:19
emergency1997

emergency1997

Севастополь

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

13.09.2014 22:35:28
amurushkin

amurushkin

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

emergency1997

emergency1997

Севастополь

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

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

13.09.2014 22:38:21
emergency1997

emergency1997

Севастополь

amurushkin

amurushkin

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

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

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

13.09.2014 23:32:20
Flutter

Flutter

ТАНТК им. Г.М. Бериева

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

16.09.2014 10:22:26
dantistus

dantistus

Freelance Web & Graphic Designer

Flutter

Flutter

ТАНТК им. Г.М. Бериева

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

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

16.09.2014 10:58:37
Flutter

Flutter

ТАНТК им. Г.М. Бериева

dantistus

dantistus

Freelance Web & Graphic Designer

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

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

16.09.2014 11:01:57
dimoc

dimoc

Минск

Flutter

Flutter

ТАНТК им. Г.М. Бериева

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

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

16.09.2014 11:22:18
dantistus

dantistus

Freelance Web & Graphic Designer

Flutter

Flutter

ТАНТК им. Г.М. Бериева

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

Фича :)

16.09.2014 15:52:33
alevlaber

alevlaber

Костанай

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

16.09.2014 20:44:39
StrelokCj

StrelokCj

Техноавиа

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

20.09.2014 22:22:00
Kirill_Tim

Kirill_Tim

NRU ITMO

StrelokCj

StrelokCj

Техноавиа

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

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

20.09.2014 22:23:32
StrelokCj

StrelokCj

Техноавиа

Kirill_Tim

Kirill_Tim

NRU ITMO

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

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

20.09.2014 22:24:36
ud1

ud1

Химки

StrelokCj

StrelokCj

Техноавиа

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

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

20.09.2014 22:25:21
ud1

ud1

Химки

StrelokCj

StrelokCj

Техноавиа

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

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

20.09.2014 22:26:58
Kirill_Tim

Kirill_Tim

NRU ITMO

ud1

ud1

Химки

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

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

20.09.2014 22:27:00
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

20.09.2014 22:28:45
StrelokCj

StrelokCj

Техноавиа

ud1

ud1

Химки

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

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

20.09.2014 22:29:35
ud1

ud1

Химки

StrelokCj

StrelokCj

Техноавиа

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

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

20.09.2014 22:31:38
Kirill_Tim

Kirill_Tim

NRU ITMO

ud1

ud1

Химки

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

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

20.09.2014 22:38:56
soon

soon

NRU HSE - Perm

ud1

ud1

Химки

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

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

21.09.2014 6:54:05
soon

soon

NRU HSE - Perm

soon

soon

NRU HSE - Perm

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

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

21.09.2014 6:55:12
KarimTheGrim

KarimTheGrim

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

KarimTheGrim

KarimTheGrim

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

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

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

22.09.2014 23:27:06
Vbif1998

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

23.09.2014 20:37:50
Vbif1998

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

23.09.2014 20:41:59
alevlaber

alevlaber

Костанай

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

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

23.09.2014 21:02:21
alevlaber

alevlaber

Костанай

KarimTheGrim

KarimTheGrim

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

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

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

23.09.2014 21:05:36
Vbif1998
alevlaber

alevlaber

Костанай

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

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

23.09.2014 21:06:24
alevlaber

alevlaber

Костанай

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

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

23.09.2014 21:08:22
Vbif1998

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

23.09.2014 21:09:35
JackOfShadow

JackOfShadow

КвантумСофт

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

25.09.2014 6:22:12
soon

soon

NRU HSE - Perm

JackOfShadow

JackOfShadow

КвантумСофт

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

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

25.09.2014 7:08:26
JackOfShadow

JackOfShadow

КвантумСофт

soon

soon

NRU HSE - Perm

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

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

25.09.2014 8:29:08
DVS

DVS

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

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

04.10.2014 20:14:26
nop

nop

БГУ

DVS

DVS

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

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

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

04.10.2014 20:18:59
DVS

DVS

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

nop

nop

БГУ

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

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

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

04.10.2014 20:34:27