MailRuChamps / raic-2018

Russian AI Cup — artificial intelligence programming contest. Official website: http://russianaicup.ru
43 stars 32 forks source link

F# cgdk #37

Closed kruall closed 5 years ago

kruall commented 5 years ago

Компиляция и запуск проекта точно такие же как и у C# package. В зависимостях вместо Newtonsoft.Json стоит FSharp.Json. Добавлен quickstart для F#.

kuviman commented 5 years ago

Обновите пакет под вышедший апдейт

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

kruall commented 5 years ago

Убраны модули, добавлены константы в Rules

kruall commented 5 years ago

Интерфейс приведен к общему виду

kuviman commented 5 years ago

Если я правильно понимаю, вы убрали возможность иметь состояние?

kruall commented 5 years ago

Смотря на параллельный пр со скалой и на тамошние рассуждения про единый интерфейс, решил привести тоже к единому виду вызова act. f# позволяет использовать мутабельные значения, поэтому хранить состояния для текущей стратегии все еще можно.

kuviman commented 5 years ago

Можете пояснить каким образом? в глобальных переменных?

В остальных пакетах перед получением первых данных создается объект MyStrategy, у вас же в Runner::startRunner это отсутствует. Также MyStrategy::act не имеет аргумента который можно мутировать помимо action (я ожидал увидеть что то вроде self: StrategyData первым аргументом)

kruall commented 5 years ago

Можно заводить мутабельные значения внутри модуля добавив ключевое слово mutable. Например в quickstart на 42 строчке.

let mutable data : StrategyData = EmptyData

Присвоение происходит через <-

data <- KnownAttackBot(1, 1)

kuviman commented 5 years ago

Квикстарт не компилируется:

Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 29.67 ms for /project/fsharp-cgdk.fsproj.
/project/MyStrategy.fs(170,1): error FS0010: Unexpected infix operator in implementation file. Expected incomplete structured construct at or before this point or other token. [/project/fsharp-cgdk.fsproj]

Build FAILED.

/project/MyStrategy.fs(170,1): error FS0010: Unexpected infix operator in implementation file. Expected incomplete structured construct at or before this point or other token. [/project/fsharp-cgdk.fsproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:01.96

Однако посылка стратегий на сайте включена, проверяйте)

kruall commented 5 years ago

Спасибо! Работает, сейчас исправлю квикстарт