Coder Social home page Coder Social logo

mailruchamps / raic-2019 Goto Github PK

View Code? Open in Web Editor NEW
73.0 73.0 45.0 918 KB

Russian AI Cup — artificial intelligence programming contest. Official website: http://russianaicup.ru

License: GNU General Public License v3.0

CMake 0.10% C++ 10.04% Dockerfile 0.41% Shell 0.86% C# 7.08% D 6.76% Go 5.34% Java 9.06% Kotlin 7.06% Python 5.46% Ruby 5.16% Rust 27.07% Scala 4.52% F# 4.06% JavaScript 6.56% GLSL 0.26% HTML 0.18%

raic-2019's People

Contributors

aaafgcfg avatar aceforg avatar and-semakin avatar eush77 avatar kuviman avatar matrohin avatar montylab avatar sannikovdmitry avatar sladethe avatar

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

Watchers

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

raic-2019's Issues

C++ WeaponType hash compilation error on gcc version 5.4.0 (ubuntu 16.04)

Old gcc has only partial C++17 support. There is known issue with enum hashes:
https://stackoverflow.com/a/29618545/1762922

In file included from /usr/include/c++/5/bits/hashtable.h:35:0,
                 from /usr/include/c++/5/unordered_map:47,
                 from /home/ftsarev/Downloads/cpp/model/Properties.hpp:10,
                 from /home/ftsarev/Downloads/cpp/model/Game.hpp:7,
                 from /home/ftsarev/Downloads/cpp/MyStrategy.hpp:6,
                 from /home/ftsarev/Downloads/cpp/MyStrategy.cpp:1:
/usr/include/c++/5/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::__is_noexcept_hash<WeaponType, std::hash<WeaponType> >’:
/usr/include/c++/5/type_traits:137:12:   required from ‘struct std::__and_<std::__is_fast_hash<std::hash<WeaponType> >, std::__detail::__is_noexcept_hash<WeaponType, std::hash<WeaponType> > >’
/usr/include/c++/5/type_traits:148:38:   required from ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<WeaponType> >, std::__detail::__is_noexcept_hash<WeaponType, std::hash<WeaponType> > > >’
/usr/include/c++/5/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<WeaponType, WeaponParams>’
/home/ftsarev/Downloads/cpp/model/Properties.hpp:41:50:   required from here
/usr/include/c++/5/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<WeaponType>) (const WeaponType&)’
  noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
                                  ^
In file included from /usr/include/c++/5/bits/move.h:57:0,
                 from /usr/include/c++/5/bits/stl_pair.h:59,
                 from /usr/include/c++/5/bits/stl_algobase.h:64,
                 from /usr/include/c++/5/bits/char_traits.h:39,
                 from /usr/include/c++/5/string:40,
                 from /home/ftsarev/Downloads/cpp/Stream.hpp:4,
                 from /home/ftsarev/Downloads/cpp/Debug.hpp:4,
                 from /home/ftsarev/Downloads/cpp/MyStrategy.hpp:4,
                 from /home/ftsarev/Downloads/cpp/MyStrategy.cpp:1:
/usr/include/c++/5/type_traits: In instantiation of ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<WeaponType> >, std::__detail::__is_noexcept_hash<WeaponType, std::hash<WeaponType> > > >’:
/usr/include/c++/5/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<WeaponType, WeaponParams>’
/home/ftsarev/Downloads/cpp/model/Properties.hpp:41:50:   required from here
/usr/include/c++/5/type_traits:148:38: error: ‘value’ is not a member of ‘std::__and_<std::__is_fast_hash<std::hash<WeaponType> >, std::__detail::__is_noexcept_hash<WeaponType, std::hash<WeaponType> > >’
     : public integral_constant<bool, !_Pp::value>

Workaround is to define std::hash specialization for WeaponType

Archive for Linux

Can‘t extract files from archive for Linux

Output:
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Typo in C# client

Property public Model.WeaponType Typ is misspelled in Weapon.cs file.
Should be public Model.WeaponType Type

Add CMake C++ 11 flags

The C++ language package requires C++ 11 features enabled. By default they are not enabled.

Sample code cannot be compiled under gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

Version number not supported by OGL driver

Есть возможность снизить требования к версии OpenGL для aicup2019.exe?

INFO - Guessed window DPI factor: 1
INFO - GL version: "2.1.0 - Build 8.15.10.2900"
ERROR - panicked at 'called Result::unwrap() on an Err value: ShaderCompilationError { log: "ERROR: 0:1: '' : Version number not supported by OGL driver\nERROR: 0:2: 'precision' : syntax error parse error\n\n\u{0}" }', src\libcore\result.rs:1084:5
ERROR - stack backtrace:
0: backtrace::backtrace::trace
1: backtrace::capture::Backtrace::new
2: batbox::logger::init_with_level::{{closure}}
3: std::panicking::rust_panic_with_hook
at src\libstd/panicking.rs:481
4: std::panicking::continue_panic_fmt
at src\libstd/panicking.rs:384
5: rust_begin_unwind
at src\libstd/panicking.rs:311
6: core::panicking::panic_fmt
at src\libcore/panicking.rs:85
7: core::result::unwrap_failed
at src\libcore/result.rs:1084
8: geng_core::draw_2d::Draw2D::new
9: geng_core::context::Geng::new
10: aicup2019::run_with
11: aicup2019::run
12: std::rt::lang_start::{{closure}}
13: std::rt::lang_start_internal::{{closure}}
at src\libstd/rt.rs:49
std::panicking::try::do_call
at src\libstd/panicking.rs:296
14: __rust_maybe_catch_panic
at src\libpanic_unwind/lib.rs:80
15: std::panicking::try
at src\libstd/panicking.rs:275
std::panic::catch_unwind
at src\libstd/panic.rs:394
std::rt::lang_start_internal
at src\libstd/rt.rs:48
16: main
17: __tmainCRTStartup
at ./mingw-w64-crt/crt/crtexe.c:339
18: mainCRTStartup
at ./mingw-w64-crt/crt/crtexe.c:223
19: _report_error
20: _report_error

Убрать автоперезарядку оружия, добавить явную перезарядку

Сейчас из-за автоперезарядки невозможно прицельно стрелять одиночными\короткими очередями.
Сразу после остановки стрельбы, юнит начинает перезаряжаться что занимает большое время.

Дополнение: рри пустой обойме и при поднятие, автоматическая перезарядка все же нужна. А так же запретить перезаряжать если обойма полная.

Go: массовые ошибки

main.go: should not use dot imports
main.go: exported type Runner should have comment or be unexported
main.go: exported function NewRunner should have comment or be unexported
main.go: exported method Runner.Run should have comment or be unexported

my_strategy.go: should not use dot imports

debug.go: should not use dot imports
debug.go: exported type Debug should have comment or be unexported
debug.go: exported method Debug.Draw should have comment or be unexported

go.mod: зачем вы впихнули модули? Вы используете версии? Боитесь сами у себя удалить зависимости? Чтобы невозможно было создать свой пакет? (а при попытке импортировать модуль "../ai2019/module" -- сделать это невозможно, хоть по системном пути, хоть вне системного пути).

$ go get github.com/MailRuChamps/raic-2019/...

package github.com/MailRuChamps/raic-2019/clients/go
    imports aicup2019/model: unrecognized import path "aicup2019/model" (import path does not begin with hostname)
package github.com/MailRuChamps/raic-2019/clients/go
    imports aicup2019/stream: unrecognized import path "aicup2019/stream" (import path does not begin with hostname)`

Error while running in Ubuntu 18.04.

I tried to run aicup2019 in Ubuntu 18.04 and I got the following output:

INFO - Guessed window DPI factor: 1
ERROR - panicked at 'not yet implemented', /builds/aicup/2019/app/.cache/.cargo/registry/src/github.com-1ecc6299db9ec823/glutin-0.21.2/src/api/egl/mod.rs:1007:35
ERROR - stack backtrace:
0: batbox::logger::init_with_level::{{closure}}
1: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:481
2: std::panicking::begin_panic
3: glutin::api::egl::Context::new
4: glutin::platform::platform::x11::Context::new_first_stage::{{closure}}
5: glutin::platform::platform::x11::Context::new_first_stage
6: glutin::platform::platform::x11::Context::new_impl
7: glutin::platform::platform::x11::Context::new::{{closure}}
8: glutin::platform::platform::x11::Context::try_then_fallback
9: glutin::windowed::<impl glutin::ContextBuilder>::build_windowed
10: geng_core::window::Window::new
11: geng_core::context::Geng::new
12: aicup2019::run_with
13: aicup2019::run
14: std::rt::lang_start::{{closure}}
15: std::rt::lang_start_internal::{{closure}}
at src/libstd/rt.rs:49
std::panicking::try::do_call
at src/libstd/panicking.rs:296
16: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
17: std::panicking::try
at src/libstd/panicking.rs:275
std::panic::catch_unwind
at src/libstd/panic.rs:394
std::rt::lang_start_internal
at src/libstd/rt.rs:48
18: main
19: __libc_start_main
20: _start

Go: ошибка в PlayerId

При попытке вычислить своего игрока и чужого -- PlayerId совпадает.
Причём, игроков 2, а номер 181, 193...
Где-то происходит копирование указателя врага при переборе в назначенного врага. Приходится делать полную копию структуры выбранного врага и назначать при выборе PlayerId=-1

Скорость по умолчанию в плеере

Пожалуйста, сделайте скорость по умолчанию в плеере поменьше, хотя бы 30 TPS. Сейчас очень быстро, ничего нельзя разобрать. Каждый раз приходится останавливать, отматывать, менять скорость. Скорость менять тоже неудобно, потому что максимум - нереальные 500, на которых никто смотреть не будет. Лично я всегда настраиваю в левой четверти. Может и 500 подрезать до 200 хотя бы?

Графики рейтинга/места на сайте

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

LocalRunner падает при сворачивании окна.

ОС: Windows 10.
Запустить aicup2019.exe, выбрать любые настройки, например quickstart vs quickstart. После запуска игры, если свернуть окно, выдает ошибку:

ERROR - panicked at 'assertion failed: value.is_finite()', /builds/aicup/2019/app/.cache/.cargo/git/checkouts/batbox-bf0d12541f0f0764/cbe0f3c/src/num/real.rs:119:9
ERROR - stack backtrace:
0: backtrace::backtrace::trace
1: backtrace::capture::Backtrace::new
2: batbox::logger::init_with_level::{{closure}}
3: std::panicking::rust_panic_with_hook
at src\libstd/panicking.rs:481
4: std::panicking::begin_panic
5: aicup2019::renderer::camera::Camera::screen_to_world
6: <aicup2019::renderer::Renderer as codegame::Rendereraicup2019::model::Game>::draw
7: <codegame::app::game_screen::GameScreen<G,R> as geng_core::state::State>::draw
8: <geng_debug_overlay::DebugOverlay as geng_core::state::State>::draw
9: geng_core::context::run
10: geng::run
11: aicup2019::run_with
12: aicup2019::run
13: std::rt::lang_start::{{closure}}
14: std::rt::lang_start_internal::{{closure}}
at src\libstd/rt.rs:49
std::panicking::try::do_call
at src\libstd/panicking.rs:296
15: __rust_maybe_catch_panic
at src\libpanic_unwind/lib.rs:80
16: std::panicking::try
at src\libstd/panicking.rs:275
std::panic::catch_unwind
at src\libstd/panic.rs:394
std::rt::lang_start_internal
at src\libstd/rt.rs:48
17: main
18: __tmainCRTStartup
at ./mingw-w64-crt/crt/crtexe.c:339
19: mainCRTStartup
at ./mingw-w64-crt/crt/crtexe.c:223
20: _report_error
21: _report_error

Неправильные тайминги

Assault rifle должно стрелять раз в 600 микротиков, а на деле 601. Вызвано ошибками округления в таймерах, в конце, когда должен получаться 0, на деле получается малое число большее 0, и оно сжирает лишний микротик. Стоит вычитать у всех таймеров EPS (или перейти на целые времена измеряемые в микротиках, но это изменение сетевого протокола, вероятно нежелательно)

Crash macOS

I can't start macOS client. It's always crashed
System - macOS Catalina 10.15.1

Logs

INFO - GL version: "4.1 INTEL-14.2.16"
INFO - Loading "./assets/level/jumper_1.png"
INFO - Loading "./assets/level/jumper_2.png"
INFO - Loading "./assets/level/wall_down_R.png"
INFO - Loading "./assets/level/wall_down_C.png"
INFO - Loading "./assets/level/wall_down_solo.png"
INFO - Loading "./assets/level/wall_L.png"
INFO - Loading "./assets/level/wall_C.png"
INFO - Loading "./assets/level/wall_R.png"
INFO - Loading "./assets/level/wall_solo.png"
INFO - Loading "./assets/level/window_L.png"
INFO - Loading "./assets/level/window_R.png"
INFO - Loading "./assets/level/window_C.png"
INFO - Loading "./assets/level/window_solo.png"
INFO - Loading "./assets/level/railing_L.png"
INFO - Debug overlay initialized
INFO - Loading "./assets/level/jumper_3.png"
INFO - Loading "./assets/level/railing_C.png"
INFO - Loading "./assets/level/railing_R.png"
INFO - Loading "./assets/level/wall_down_L.png"
INFO - Loading "./assets/level/platform_R.png"
INFO - Loading "./assets/level/platform_solo.png"
INFO - Loading "./assets/level/floor_1.png"
INFO - Loading "./assets/level/platform_L.png"
INFO - Loading "./assets/level/door.png"
INFO - Loading "./assets/level/platform_C.png"
INFO - Loading "./assets/level/floor_2.png"
INFO - Loading "./assets/level/platform_small_L.png"
INFO - Loading "./assets/level/platform_small_C.png"
INFO - Loading "./assets/./city.png"
INFO - Loading "./assets/level/platform_small_R.png"
INFO - Loading "./assets/level/stairs.png"
INFO - Loading "./assets/./cloud.png"
INFO - Loading "./assets/level/platform_small_solo.png"
INFO - Loading "./assets/unit/1/jump/3.png"
INFO - Loading "./assets/./explosion.png"
INFO - Loading "./assets/unit/1/jump/2.png"
INFO - Loading "./assets/unit/1/rise/1.png"
INFO - Loading "./assets/unit/1/jump/1.png"
INFO - Loading "./assets/unit/1/rise/2.png"
INFO - Loading "./assets/unit/1/rise/3.png"
INFO - Loading "./assets/unit/1/rise/4.png"
INFO - Loading "./assets/unit/1/walk/2.png"
INFO - Loading "./assets/unit/1/rise/5.png"
INFO - Loading "./assets/unit/1/walk/1.png"
INFO - Loading "./assets/unit/1/rise/6.png"
INFO - Loading "./assets/unit/1/walk/5.png"
INFO - Loading "./assets/unit/1/walk/4.png"
INFO - Loading "./assets/unit/1/walk/3.png"
INFO - Loading "./assets/unit/1/walk/6.png"
INFO - Loading "./assets/unit/1/hand.png"
INFO - Loading "./assets/unit/2/jump/1.png"
INFO - Loading "./assets/unit/2/jump/2.png"
INFO - Loading "./assets/unit/2/jump/3.png"
INFO - Loading "./assets/unit/1/head.png"
INFO - Loading "./assets/unit/1/stay.png"
INFO - Loading "./assets/unit/2/rise/1.png"
INFO - Loading "./assets/unit/2/rise/2.png"
INFO - Loading "./assets/unit/2/rise/3.png"
INFO - Loading "./assets/unit/2/rise/4.png"
INFO - Loading "./assets/unit/2/rise/5.png"
INFO - Loading "./assets/unit/2/rise/6.png"
INFO - Loading "./assets/unit/2/walk/3.png"
INFO - Loading "./assets/unit/2/walk/2.png"
INFO - Loading "./assets/unit/2/walk/5.png"
INFO - Loading "./assets/unit/2/walk/6.png"
INFO - Loading "./assets/unit/2/walk/4.png"
INFO - Loading "./assets/unit/2/walk/1.png"
INFO - Loading "./assets/unit/2/hand.png"
INFO - Loading "./assets/unit/2/head.png"
INFO - Loading "./assets/unit/2/stay.png"
INFO - Loading "./assets/unit/3/jump/3.png"
INFO - Loading "./assets/unit/3/jump/1.png"
INFO - Loading "./assets/unit/3/rise/1.png"
INFO - Loading "./assets/unit/3/jump/2.png"
INFO - Loading "./assets/unit/3/rise/2.png"
INFO - Loading "./assets/unit/3/rise/3.png"
INFO - Loading "./assets/unit/3/rise/6.png"
INFO - Loading "./assets/unit/3/rise/5.png"
INFO - Loading "./assets/unit/3/walk/2.png"
INFO - Loading "./assets/unit/3/walk/3.png"
INFO - Loading "./assets/unit/3/rise/4.png"
INFO - Loading "./assets/unit/3/walk/1.png"
INFO - Loading "./assets/unit/3/walk/4.png"
INFO - Loading "./assets/unit/3/walk/5.png"
INFO - Loading "./assets/unit/3/walk/6.png"
INFO - Loading "./assets/unit/3/hand.png"
INFO - Loading "./assets/unit/3/head.png"
INFO - Loading "./assets/guns/assault_rifle/bullet.png"
INFO - Loading "./assets/guns/assault_rifle/muzzle_flash_1.png"
INFO - Loading "./assets/unit/3/stay.png"
INFO - Loading "./assets/guns/assault_rifle/gun.png"
INFO - Loading "./assets/guns/assault_rifle/muzzle_flash_2.png"
INFO - Loading "./assets/guns/pistol/gun.png"
INFO - Loading "./assets/guns/pistol/bullet.png"
INFO - Loading "./assets/guns/pistol/muzzle_flash.png"
INFO - Loading "./assets/loot/health_pack.png"
INFO - Loading "./assets/loot/mine.png"
INFO - Loading "./assets/guns/rocket_launcher/muzzle_flash.png"
INFO - Loading "./assets/guns/rocket_launcher/gun.png"
INFO - Loading "./assets/loot/assault_rifle.png"
INFO - Loading "./assets/loot/rocket_launcher.png"
INFO - Loading "./assets/guns/rocket_launcher/bullet.png"
INFO - Loading "./assets/mine/triggered.png"
INFO - Loading "./assets/loot/pistol.png"
INFO - Loading "./assets/mine/preparing.png"
INFO - Loading "./assets/./explosion.wav"
INFO - Loading "./assets/mine/idle.png"
INFO - Loading "./assets/./pickup.wav"
INFO - Loading "./assets/./hit.wav"
INFO - Loading "./assets/./guns/pistol/shoot.wav"
INFO - Loading "./assets/./heal.wav"
INFO - Loading "./assets/./guns/assault_rifle/shoot.wav"
INFO - Loading "./assets/./guns/rocket_launcher/shoot.wav"
ERROR - panicked at 'Failed to load assets: IoError(Os { code: 2, kind: NotFound, message: "No such file or directory" })

./assets/level/jumper_1.png', src/libcore/result.rs:1084:5
ERROR - stack backtrace:
0: backtrace::backtrace::trace
1: backtrace::capture::Backtrace::new
2: batbox::logger::init_with_level::{{closure}}
3: std::panicking::rust_panic_with_hook
4: std::panicking::continue_panic_fmt
5: rust_begin_unwind
6: core::panicking::panic_fmt
7: core::result::unwrap_failed
8: core::ops::function::FnOnce::call_once{{vtable.shim}}
9: <alloc::boxed::Box as core::ops::function::FnOnce>::call_once
10: <geng_core::loading_screen::LoadingScreen<T,L,G> as geng_core::state::State>::transition
11: <geng_core::state::manager::StateManager as geng_core::state::State>::update
12: geng_core::context::run
13: geng::run
14: aicup2019::run_with
15: aicup2019::run
16: std::rt::lang_start::{{closure}}
17: std::panicking::try::do_call
18: __rust_maybe_catch_panic
19: std::rt::lang_start_internal
20: main

team_size = 2 - нет управления вторым юнитом. Возможно, ошибка в нумерации игроков в ЛР

Запустил локально игру сам с собой (с двумя юнитами в каждой команде). И не смог получить управление вторым юнитом. Есть подозрение, что на стороне локал-раннера некорректно нумеруются id-шники игроков, в итоге получается не 2 команды по 2 юнита, а 4 - по 1. Воспроизвести можно примерно так:
image

Вывод первого игрока:

player_view.my_id = 1

	player_id  	id
	1		2	Its MY unit!
	3		4
	5		6
	7		8

и второго:

player_view.my_id = 3

	player_id  	id
	1		2
	3		4	Its MY unit!
	5		6
	7		8

В итоге по одному юниту в каждой команде - не получают управления и неподвижно стоят.

Некорректная позиция юнитов (метод getPosition java-клиент)

Метод getPosition возвращает возвращает некорректные значения для класса Unit. Судя по документации поле position: Vec2⟨float64⟩— позиция (середина нижней границы). Однако на практике при смене вектора движения, при подборе предметов, либо при "слипании" юнитов возвращаемые значения не являются корректными. Ниже скриншоты, в дебаге выведены методы getPosition().getX() / getPosition().getY() для юнита игрока и для юнита соперника.
Обратите внимание на то, как меняется значение EnemyX / EnemyY для двух соседних тиков.
подбор предмета1
подбор предмета2
смена вектора движения1
смена вектора движения2
слипание

пакеты python

привет,
где узнать какие пакеты есть для python? есть ли pytorch?

Черный экран при перенаправлении stderr

Пытаюсь перенаправить поток вывода ошибок у локалранера. В --batch-mode работает нормально, а с графикой черный экран. Нужно это для отслеживания запуска приложения (ожидание INFO - Waiting for connection on port), чтобы потом подключиться к нему из своего кода и обучать нейронку. Можно проверить примерно таким кодом на питоне. Если убрать stderr=PIPE, то всё работает.

from subprocess import Popen, PIPE
proc = Popen(['localrunner/aicup2019.exe'], cwd='localrunner', 
    stdout=PIPE, stdin=PIPE, stderr=PIPE)

Catboost для C++

Добрый день, есть ли на сервере Catboost для C++? Если его нет, можете, пожалуйста, добавить его?

doc шрифт ГЛАЗА.... ПОМОЖИТЕ!!!!....

Я оценил навыки наборщика в ЛаТеХе, но можно как-то поменять шрифт на что-то менее оригинальное? Например, Дежавю Шериф/Шериф Конденсед?
И убедительная просьба -- на титульной странице проставлять дату и версию по последнему коммиту на момент публикации.
Я понимаю, в ЛаТеХе собирать круто, но может также устроит сборный документ в ЛибреОфисе? Он тоже так умеет. Да и маркдаун тут же на гитхабе -- вполне годная вещь. А ещё тут рядом есть гитбук -- вообще чумовая штука.

jumpState.canJump = false, если тик завершился "прилипанием" к потолку

Стратегия для повторения:

        if (currentTick == 0) {

        } else if (currentTick == 1) {
            action.velocity = 10;
        } else {
            action.jump = true;
        }

Как видно, она просто прыгает и бьётся об потолок.
Ровно на конец тика №127 так совпало, что юнит остаётся прижатым к потолку. На 128-й тик уже приходит canJump = fasle.

Это баг, или как нужно трактовать такую ситуацию?

localrunner flickering

Мерцает дебаг вывод в локал раннере - видео в архиве
every_tick_debug_short.zip

стратегия первым же действием рисует линию между собой и врагом

    override fun getAction(unit: model.Unit, game: Game, debug: Debug): UnitAction {
        debug.draw(CustomData.Line(game.units[0].position, game.units[1].position, 1 / 30f, ColorFloat(1f, 0f, 0f, 1f)))

Logical error in C# MyStrategy

this line
return (a.X - b.X) * (a.X - b.X) + (a.Y - b.X) * (a.Y - b.Y);
should be
return (a.X - b.X) * (a.X - b.X) + (a.Y - b.Y) * (a.Y - b.Y);

Kotlin send strategy

Если отправить архивом стратегию, то на попытке компиляции на сервере получаем ошибку, что не хватает файлов проекта для сборки

stdout:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.210 s
[INFO] Finished at: 2019-12-01T10:26:45Z
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/project). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

stderr:

  • '[' compile '!=' base ']'
    ++ ls -1 /src/
    ++ wc -l
  • [[ 5 -eq 1 ]]
  • rm -rf ./Dockerfile ./compile.sh ./pom.xml ./run.sh ./src ./target
  • cp -rf /src/Debug.kt /src/MyStrategy.kt /src/Runner.kt /src/model /src/util ./
  • mvn package --batch-mode

LocalRunner+WebRunner -- имена игроков

Если в LocalRunner ещё можно понять кто есть кто, то в WebRunner непонятно от слова совсем. Прилепите игрокам по лейбле.

Localrunner падает при отладке

Обычно на втором шаге.

INFO - Loading "./assets/./guns/assault_rifle/shoot.wav"
ERROR - panicked at 'assertion failed: value.is_finite()', /builds/aicup/2019/app/.cache/.cargo/git/checkouts/batbox-bf0d12541f0f0764/cbe0f3c/src/num/real.rs:119:9
ERROR - stack backtrace:
   0: backtrace::backtrace::trace
   1: backtrace::capture::Backtrace::new
   2: batbox::logger::init_with_level::{{closure}}
   3: std::panicking::rust_panic_with_hook
             at src\libstd/panicking.rs:481
   4: std::panicking::begin_panic
   5: aicup2019::renderer::camera::Camera::screen_to_world
   6: <aicup2019::renderer::Renderer as codegame::Renderer<aicup2019::model::Game>>::draw
   7: <codegame::app::game_screen::GameScreen<G,R> as geng_core::state::State>::draw
   8: <geng_debug_overlay::DebugOverlay as geng_core::state::State>::draw
   9: geng_core::context::run
  10: geng::run
  11: aicup2019::run_with
  12: aicup2019::run
  13: std::rt::lang_start::{{closure}}
  14: std::rt::lang_start_internal::{{closure}}
             at src\libstd/rt.rs:49
      std::panicking::try::do_call
             at src\libstd/panicking.rs:296
  15: __rust_maybe_catch_panic
             at src\libpanic_unwind/lib.rs:80
  16: std::panicking::try
             at src\libstd/panicking.rs:275
      std::panic::catch_unwind
             at src\libstd/panic.rs:394
      std::rt::lang_start_internal
             at src\libstd/rt.rs:48
  17: main
  18: __tmainCRTStartup
             at ./mingw-w64-crt/crt/crtexe.c:339
  19: mainCRTStartup
             at ./mingw-w64-crt/crt/crtexe.c:223
  20: _report_error
  21: _report_error

Конфиг


{
  "options_preset": {
    "Custom": {
      "level": "Simple",
      "properties": null
    }
  },
  "players": [
    {
      "Tcp": {
        "host": null,
        "port": 31001,
        "accept_timeout": null,
        "timeout": null,
        "token": null
      }
    },
    {
      "Empty": null
    }
  ]
}

Иногда при приземлении происходит "тупняк" на 1 микротик.

Карта дефолтная.

Псевдокод стратегии:

        if (currentTick == 0) {
            // do nothing
        } else {
            action.jump = true;
            if (currentTick == 67 || currentTick == 68) {
                std::cout << unit.position.y << std::endl;
            }
        }

1.00333
1.16167

Суммарное передвижение равно (1.00333 - 1) + (1.16167 - 1) = 0.165, что не соответствует заявленным 10 / 60 = 0.16666666 (т.к. скорости падения и прыжка равны).

Другой пример, где всё ожидаемо:

        if (currentTick == 0) {
            // do nothing
        } else if (currentTick == 1) {
            action.velocity = 10;
        } else {
            action.jump = true;
            if (currentTick == 52 || currentTick == 53) {
                std::cout << unit.position.y << std::endl;
            }
        }

1.06667
1.1

(1.06667 - 1) + (1.1 - 1) = 0.16667

В чате написали, что это нормально, но я так не считаю. Хотелось услышать мнения.

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.