Code Monkey home page Code Monkey logo

miniaicups's Introduction

miniaicups

Правила, исходники и прочее для aicups.ru

miniaicups's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

miniaicups's Issues

Назначение кнопок

Было бы неплохо кнопку play/pause сделать единым целым. А освободившуюся кнопку занять рандомизацией сида.

GOPATH для go-docker

Не передается ( передается по умолчанию ) переменная окружения, что не позволяет использовать ничего кроме main.go

solution/main.go:7:2: cannot find package "" in any of:
/usr/lib/go-1.10/src/
(from $GOROOT)
/root/go/src/*** (from $GOPATH)

Добавьте GOPATH который смотрит в solution

ENV COMPILATION_COMMAND='GOPATH=$SOLUTION_CODE_PATH go build -linkshared $SOLUTION_CODE_PATH/main.go 2>&1 > /dev/null'

Id хозяина выбросов

Поскольку у выброса есть Id игрока, его породившего, и он влияет на очки, хотелось бы его получать от сервера в JSON состояния игры.

Видимость жирных амеб

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

Влияние вязкости среды

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

Запрос фичи: покадровая перемотка в веб отладчике

Текущие опции не позволяют просмотреть покадровые изменения:

missingperframenavigation

Возможность делать шаг на один <-тик-> может быть полезна при анализе поведения в сложных ситуациях:
image
Особенно когда тиков >10к вручную проматывать будет очень нелегко...

Баг local_runner(?) Масса в Circle хранится как целочисленное значение

В классе Circle масса целочисленная, при этом getter возвращает её в double. Все операции над массой работают с ней, как с числом с плавающей точкой. Это ошибка или фича?)

class Circle {
public:
explicit Circle(..., double _mass)...
double getM() const {
  return mass;
}
protected:
  int mass;
}

Репитер

На текущий момент на сайте можно скачать visio_[ID].log

внутри он выглядит так

#O=Options, A=Add, +=Change K=Kill, C=Command, T=Tick, W=World, F=Food, P=Player, V=Virus, E=Ejection
OD T16 G1835 B50
OW W990 H990 S959462412
OF R2.5 M3.16843
OV R16.0735 M40
OP R8 M40
OE R4 M15
OFog S10
AF5 X182 Y203
AF6 X808 Y203
AF7 X808 Y787
AF8 X182 Y787
AF9 X455 Y423
AF10 X535 Y423
AF11 X535 Y567
AF12 X455 Y567
AF13 X155 Y322
AF14 X835 Y322
AF15 X835 Y668
AF16 X155 Y668
AF17 X5 Y254
AF18 X985 Y254

В целом понятно, что это за объекты, и как их читать, но...

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

Отдельной очень полезной фичей могла бы быть одновременная обрезка невидимых объектов в соответствии с правилами, т.о. получили бы готовый репитер для локального дебага игр, прошедших на сайте.

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

Стратегия на Go, в локал-раннере (Windows7 x64) играет нормально. На сервере стратегия неожиданно падает (пример - игра №85802, жёлтый игрок), в консоли браузера следующее:

Tick[910] Ожидание ответа превышено!
app.bundle.js:45494 Tick[911] Ожидание ответа превышено!
app.bundle.js:45494 Tick[912] Ожидание ответа превышено!
. . . . .
app.bundle.js:45494 Tick[938] Ожидание ответа превышено!
app.bundle.js:45494 Tick[939] Суммарное ожидание клиента превышено. Клиент будет отключён!

При этом судя по отладочным сообщениям бота он съел за все ходы суммарно 20.9 секунд, из которых 20 секунд - это время "разогрева" до начала раунда.

Помогите разобраться, откуда взялся тайм-аут? В правилих написано 5 секунд на ход, 150 секунд на игру, а тут даже не близко.

Добавить поля в профиль на сайте

Полезно было бы добавить в профиль на сайте "OS", чтобы понимать востребованность сборок LR под разные платформы.
Ещё можно добавить выбор удобного способа взаимодействия с LR: tcp или stdio с менее удобной отладкой (для новых соревнований)

локал ранер значение в json не соответствует описаню (FLOAT vs INT)

в правилах FOOD_MASS - масса еды (float) (меняется от 1.0 до 4.0); json идет {... ,"FOOD_MASS":1, ...} и я получаю ошибку когда делаю каст config["FOOD_MASS"] as Float ... тоесть без точки оно воспринемается как инт... я конечно могу сделать проверку, но ... =)
это в локал ранере такое.

Показ версии решения в интерфейсе игры

Сделайте отображение версии решения в интерфейсе игры на сервере.
Если играют несколько решений от одного автора, то совершенно не понятно где какая версия.

localrunner: отключение GUI

В дополнение к #19 и #40 нужна опция отключения визуализатора.
По аналогии с параметром render-to-screen в localrunner'е для Russian AI Cup.

localrunner и параметры командной

Для запуска localrunner необходима возможность передавать ему через командную строку:

  1. параметры игрового мира (#19), в том числе и таймаут (#35)
  2. пути к программам-ботам
  3. Путь к конфиг-файлу (возможно, в формате json), в котором будет описано все вышеуказанное.

Добавьте плиз доскер для FreePascal (внутри созданный dockerfile)

Я, к сожалению, в создании pull requests не силен, поэтому прошу добавить докер для FreePascal:

FROM ubuntu:16.04
MAINTAINER Igor Kuznetsov [email protected]

RUN apt-get install fp-compiler

ENV COMPILED_FILE_PATH=/opt/client/main
ENV SOLUTION_CODE_PATH=/opt/client/solution
ENV SOLUTION_CODE_ENTRYPOINT=main.pp
ENV COMPILATION_COMMAND='fpc -Cs67107839 -Mobjfpc -XS $SOLUTION_CODE_PATH/$SOLUTION_CODE_ENTRYPOINT -o$COMPILED_FILE_PATH 2>&1 > /dev/null'
ENV RUN_COMMAND='$COMPILED_FILE_PATH'

localrunner (win) не работает console.readline()

Пишу на C#.
Похоже на то, что locarunner (win) не отдает в консоль данные. На вызове Console.ReadLine() бот блокируется, а localrunner сообщает о таймауте.

Точность параметров в json и jcode

  1. Обеспечить одинаковую точность дробных
  2. Обеспечить полноту параметров мира в jcode

Необходимо для последующего локального конверта одного в другое

[BUG] 85652 - на старте не был передан конфиг частично или полностью

http://aicups.ru/session/85652/
у себя в отладочном вызове что GAME_WIDTH не нашелся в первом конфиге и либа кинула exception.
У двух других игроков судя по всему была похожая проблема, а у одного все ок.

Exception in thread "main" org.json.JSONException: JSONObject["GAME_WIDTH"] not found.
	at org.json.JSONObject.get(JSONObject.java:520)
	at org.json.JSONObject.getInt(JSONObject.java:694)
	at Game.<init>(Game.java:24)
	at Game.from(Game.java:39)
	at Main.main(Main.java:33)

app.bundle.js?v=1.3.4:45494 Tick[3] Ожидание ответа превышено!
app.bundle.js?v=1.3.4:45494 Tick[4] Решение отключилось от механики до окончания!

Багофичи

Хотелось бы понять баги это или фичи:

  1. Безынерционный warp-двигатель: при движении в точку на расстоянии <3 мы телепортируемся в неё мгновенно
    if (dist < STOP_LIMIT) {
  2. Если фрагмент что-то съел то на этом тике он проигнорирует команды split и eject
  3. Туман войны на самом деле не сдвинут
    bool can_see(const Circle *circle) {
  4. "При количестве фрагментов больше одного, радиус обзора каждого из фрагментов дополнительно умножается на коэффициент по формуле: radius = 1.25 * radius * sqrt(fragments.count())" не похоже на код:
    const double VIS_FACTOR = 4.0; // vision = radius * VF
    const double VIS_FACTOR_FR = 2.5; // vision = radius * VFF * qSqrt(fragments.count())
  5. Масса игрока int или double?
  6. В начале игры радиус игрока не соответствует его массе (2*sqrt)
    const double PLAYER_RADIUS = 8.0;
    const double PLAYER_MASS = 40.0;

local_runner: Player::fuse_timer не инициализирован

В начале игры в конструкторе Player::Player(...) fuse_timer не инициализируется. Как минимум на первом тике в json'е приходит мусор, например, "TTF":3473457.
P.S. Если замечу еще какие-то мелкие проблемы в runner'e, как их лучше оформить, PR или issue?

SEED для инициализации ГПСЧ

Хотелось бы, чтобы при передаче параметров в начале раунда стратегия получала в том числе и SEED - уникальное для каждой игры большое число.
Это позволит при воспроизведении лога ввода получаемого стратегией от runner'а получать всегда одно и то же поведение, при использовании ГПСЧ.

Недоопределены правила

Не указано, в каких пределах может меняться размер игрового поля, а это важнейший параметр.
Не сказано, что происходит при пересечении границы поля.
Непонятно, можно ли проскочить еду/другой объект за один тик, если двигаться очень быстро, или коллизии буду расчитаны в непрерывной модели.

local_runner в ubuntu 17.10 (не unity)

Последняя (на данный момент) убунта, которая уже без unity.

screenshot from 2018-03-29 22-36-40

Как видно, игровое поле чуть вмещено вверх относительно рамки (и частично скрывается под меню)

Для отладки требуется добавление в local_runer настройки времени ожидания отклика

Пусть мы разрабатываем в VS2017, C#. Логично желание поставить точку остановки и спокойно почитать что происходит в ходе выполнения стратегии. Насильный таймаут в 5 секунд лишает нас такой возможности. Пример:
missingtimeoutsettings

Просьба добавить в local_runer опцию выставления времени таймаута хотя бы в 5 минут - это сильно упростит жизнь=)

Очки за съедание выброса.

В правилах не озвучено получение очков за съедание выброса. Хотя судя по локалранеру очки за это начисляются.
Проясните этот момент.

Название скрипта в "История решений"

Было бы очень удобно, если бы в "История решений" показывался не только ID решения, но и имя файла скрипта. Иначе сложно разобраться с версионностью собственного скрипта.
Ну или просто пользовательский комментарий к каждому своему решению.

C# .NET: Добавление библиотеки accord-net framework

Добавьте пожалуйста для C# accord-net framework .

Аргументы за:

Гайды по установке в Linux

Аргументы против:

  • Не во всех языках есть аналоги - ANN для KNN, Regression, Neural Network Library. Это спровоцирует неравенство возможностей. Это как дать разработчикам на Питоне использовать TF вместе с scipy.
  • В ней горы библиотек которых могут быть использованы максимум 3-4 в нашей ситуации. При этом в разных решениях разные.

Предложение:
Добавить набор пакетов касающихся Scientific Computing и из зависимости (общим весом менее 6mb):

  1. Accord
  2. Accord.Genetic
  3. Accord.Math.Core
  4. Accord.Math
  5. Accord.Statistics
  6. Accord.MachineLearning
  7. Accord.Neuro

Установка через Nuget:

Install-Package Accord.Neuro
Install-Package Accord.MachineLearning
Install-Package Accord.Statistics
Install-Package Accord.Math

[MINOR] Шрифты в окне подбора игры

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

сейчас:
image

Поменял что смог на #000000 :)
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.