mailruchamps / raic-2019 Goto Github PK
View Code? Open in Web Editor NEWRussian AI Cup — artificial intelligence programming contest. Official website: http://russianaicup.ru
License: GNU General Public License v3.0
Russian AI Cup — artificial intelligence programming contest. Official website: http://russianaicup.ru
License: GNU General Public License v3.0
Please add Brainf**k language support coz it excellent for AI development.
It is useful to be able to replay the same game over and over (same map and everything).
Раньше можно было при нажатии на иконку языка увидеть время потраченное на стратегией на игру, а сейчас такого нет.
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
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
Сейчас непонятно кто из них кто.
Property public Model.WeaponType Typ is misspelled in Weapon.cs file.
Should be public Model.WeaponType Type
Во многих классах CustomData используются переменные с типом Vec2Float, тогда как в самой игре Vec2Double. Из-за этого не удобно использовать отладку.
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)
Есть возможность снизить требования к версии OpenGL
для aicup2019.exe
?
INFO - Guessed window DPI factor: 1
INFO - GL version: "2.1.0 - Build 8.15.10.2900"
ERROR - panicked at 'calledResult::unwrap()
on anErr
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
Сейчас из-за автоперезарядки невозможно прицельно стрелять одиночными\короткими очередями.
Сразу после остановки стрельбы, юнит начинает перезаряжаться что занимает большое время.
Дополнение: рри пустой обойме и при поднятие, автоматическая перезарядка все же нужна. А так же запретить перезаряжать если обойма полная.
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)`
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
В методе writeTo классов Bullet, Mine, ServerMessageGame, Unit, Weapon, WeaponParams ошибка в выражении условия, например,
if (explosionParams) {
stream.write(false);
} else {
stream.write(true);
(*explosionParams).writeTo(stream);
}
При попытке вычислить своего игрока и чужого -- PlayerId совпадает.
Причём, игроков 2, а номер 181, 193...
Где-то происходит копирование указателя врага при переборе в назначенного врага. Приходится делать полную копию структуры выбранного врага и назначать при выборе PlayerId=-1
Пожалуйста, сделайте скорость по умолчанию в плеере поменьше, хотя бы 30 TPS. Сейчас очень быстро, ничего нельзя разобрать. Каждый раз приходится останавливать, отматывать, менять скорость. Скорость менять тоже неудобно, потому что максимум - нереальные 500, на которых никто смотреть не будет. Лично я всегда настраиваю в левой четверти. Может и 500 подрезать до 200 хотя бы?
Port client/csharp to client/fsharp adding F# support
Хотелось бы кроме графиков рейтинга видеть график занятого места и процентное положение относительно всех участников (место / кол-во участников).
ОС: 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 (или перейти на целые времена измеряемые в микротиках, но это изменение сетевого протокола, вероятно нежелательно)
Сделайте чтобы для каждого игрока писался свой лог со всем отладочным выводом, чтобы можно было смотреть поведение бота на сервере.
хотелось бы запускать рандомные игры а потом при случае seed узнать
I can't start macOS client. It's always crashed
System - macOS Catalina 10.15.1
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
Запустил локально игру сам с собой (с двумя юнитами в каждой команде). И не смог получить управление вторым юнитом. Есть подозрение, что на стороне локал-раннера некорректно нумеруются id-шники игроков, в итоге получается не 2 команды по 2 юнита, а 4 - по 1. Воспроизвести можно примерно так:
Вывод первого игрока:
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 возвращает возвращает некорректные значения для класса Unit. Судя по документации поле position: Vec2⟨float64⟩— позиция (середина нижней границы). Однако на практике при смене вектора движения, при подборе предметов, либо при "слипании" юнитов возвращаемые значения не являются корректными. Ниже скриншоты, в дебаге выведены методы getPosition().getX() / getPosition().getY() для юнита игрока и для юнита соперника.
Обратите внимание на то, как меняется значение EnemyX / EnemyY для двух соседних тиков.
привет,
где узнать какие пакеты есть для python? есть ли pytorch?
Пытаюсь перенаправить поток вывода ошибок у локалранера. В --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++? Если его нет, можете, пожалуйста, добавить его?
Я оценил навыки наборщика в ЛаТеХе, но можно как-то поменять шрифт на что-то менее оригинальное? Например, Дежавю Шериф/Шериф Конденсед?
И убедительная просьба -- на титульной странице проставлять дату и версию по последнему коммиту на момент публикации.
Я понимаю, в ЛаТеХе собирать круто, но может также устроит сборный документ в ЛибреОфисе? Он тоже так умеет. Да и маркдаун тут же на гитхабе -- вполне годная вещь. А ещё тут рядом есть гитбук -- вообще чумовая штука.
Стратегия для повторения:
if (currentTick == 0) {
} else if (currentTick == 1) {
action.velocity = 10;
} else {
action.jump = true;
}
Как видно, она просто прыгает и бьётся об потолок.
Ровно на конец тика №127 так совпало, что юнит остаётся прижатым к потолку. На 128-й тик уже приходит canJump = fasle.
Это баг, или как нужно трактовать такую ситуацию?
Мерцает дебаг вывод в локал раннере - видео в архиве
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)))
Из-за этого их невозможно найти поиском. Например, unit_fall_speed
. Его приходится искать как unit_f all_speed
.
MacOS Catalina, Chrome последней версии.
Please, add JavaScript support, if possible ! :-)
debug.draw(model.CustomData.Line(target_pos, target_pos, 1.0, model.ColorFloat(255, 0, 0, 1.0)))
валит клиент с ошибкой:
ERROR - panicked at 'Unexpected discriminant 1065353216', /builds/aicup/2019/app/.cache/.cargo/git/checkouts/codegame-5bdec12bd92d3b8a/a2502d0/src/lib.rs:86:34
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);
Если отправить архивом стратегию, то на попытке компиляции на сервере получаем ошибку, что не хватает файлов проекта для сборки
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:
Есть подозрение, что при использовании аптечки она не исчезает с карты как объект LootBox. Её параметры по-прежнему возможно получить, перебрав доступные в экземпляре game лутбоксы. Это баг или фича?
Если в LocalRunner ещё можно понять кто есть кто, то в WebRunner непонятно от слова совсем. Прилепите игрокам по лейбле.
Обычно на втором шаге.
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
}
]
}
Карта дефолтная.
Псевдокод стратегии:
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
В чате написали, что это нормально, но я так не считаю. Хотелось услышать мнения.
Добавьте, пожалуйста, настройку для отключения отрисовки в LocalRunner.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.