Войти
ФлеймФорумОбщее

CodeTanks 2 (30 стр)

Страницы: 129 30 31 3259 Следующая »
#435
20:57, 10 ноя. 2012

Кажеться, левому и правому танчикам (на 3 и на 9 часов) всегда не сладко.


#436
21:24, 10 ноя. 2012

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

#437
0:01, 11 ноя. 2012

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

Написал простенький класс, который тупо передает входные параметры основному классу runner'a, думаю они там на серверах ровно так и поступают. Его надо класть рядом с localRunner.jar
CodeTanks runner

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

java -cp .:local-runner.jar Run -render-to-screen=true -render-to-screen-scale=0.75 -render-to-screen-sync=true -debug=true -base-adapter-port=31000 -p1-name=Bot1 -p2-name=Bot2 -p3-name=You com.a.a.a.a.c.a.class com.a.a.a.a.c.c.class "#LocalTestPlayer"

Это для линукса, под виндой думаю надо просто параметр cp писать с разделителем ";", т.е ".;local-runner.jar"

Чтобы запустить себя и противника emptyPlayer:

java -cp .:local-runner.jar Run -render-to-screen=true -render-to-screen-scale=0.75 -render-to-screen-sync=true -debug=true -base-adapter-port=31000 -p1-name=Bot1 -p2-name=You com.a.a.a.a.c.a.class "#LocalTestPlayer"

Чтобы запустить себя и противника QuickStartGuy

java -cp .:local-runner.jar Run -render-to-screen=true -render-to-screen-scale=0.75 -render-to-screen-sync=true -debug=true -base-adapter-port=31000 -p1-name=Bot1 -p2-name=You com.a.a.a.a.c.c.class "#LocalTestPlayer"

Чтобы запустить двоих себя пишем

java -cp .:local-runner.jar Run -render-to-screen=true -render-to-screen-scale=0.75 -render-to-screen-sync=true -debug=true -base-adapter-port=31000 -p1-name=Bot1 -p2-name=Bot2 -p3-name=You com.a.a.a.a.c.a.class com.a.a.a.a.c.c.class "#LocalTestPlayer" -p3-team-size=2

Чтобы запустить две своих стратегии пишем

java -cp .:local-runner.jar Run -render-to-screen=true -render-to-screen-scale=0.75 -render-to-screen-sync=true -debug=true -base-adapter-port=31000 -p1-name=qwe -p2-name=wer -p3-name=You com.a.a.a.a.c.a.class "#LocalTestPlayer" "#LocalTestPlayer"

потом запускаем свою первую стратегию с параметрами:

./ai localhost 31000 0000000000000000

потом вторую с параметрами

./ai localhost 31001 0000000000000000

Есть еще параметры "-tick-count=5000" и "-size=1280x800" и "-seed=123" и "-write-to-text-file=f.txt", но я их не проверял, не знаю работают ли.

#438
0:39, 11 ноя. 2012

Есть еще параметр "-dump-tcp-data=true", он создает файлы типа p3-tcp-dump.bin, где 3 - номер игрока #LocalTestPlayer, и могут использоваться для repeater'а. Думаю именно эти файлы выкладываются в http://russianaicup.ru/boombox/data/dumps/*** и их скачивает репитер, который потом тупо шлет содержимое на порт 31000. Под линуксом можно аналогичную операцию сделать командой:

cat p3-tcp-dump.bin | netcat -l 31000 > /dev/null
#439
0:47, 11 ноя. 2012

ud1
Изображение

#440
5:30, 11 ноя. 2012

Я понял почему топы- топы. Они очень сильно фапают на время заеда в угол. Кто-либо нашел траекторию, дающую минимальное время заезда у ближайший угол?

#441
5:46, 11 ноя. 2012

Как определить, проходит ли угол между двумя другими? Для всех случаев.

#442
5:50, 11 ноя. 2012

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

#443
8:48, 11 ноя. 2012

ud1
Кул. Вот только не понятно, почему это всё организаторы не сделали из коробки и надо пользователям расколупывать и доводить до ума.

#444
9:23, 11 ноя. 2012

Executor

Понять как правильно пользоваться инструментами конкурса это часть конкурса. : )

#445
11:16, 11 ноя. 2012

Насчет формул физики. Движение танка затормаживается по жизни экипажа.
Берется коэф:
koef = 0.5 + 0.5*health
где health = crew_health/max_health - число от 0 до 1
этот коэф умножается на силу действующую на так
force = (0.5*left_track_power + 0.5*right_track_power)*engine_power*koef
Т.е. при максимальном здоровье и left_track_power  = right_track_power = 1, получим силу равную engine_power = 7500 для нормального танка
Потом считаем ускорение равное force/m где m = 10 масса
получаем новую скорость
v1 = old_v + F*dt/m, где dt = 1/60
и делаем поправку на сопротивление воздуха
result_v = v1 - v1*damping/m
где damping = 0.5
И при передачи новых скоростей и координат в нашу стратегию, все это делится еще на 60

Например если тпнк покоится, и мы придаем ему макс ускорение
v1 = 0 + 7500*(1/60)/10 = 12.5
result_v = 12.5 - 12.5*0.5/10 = 11.875
И наша стратегия получает значение новой скорости равное 11.875/60 = 0.19791666666666666667

#446
12:00, 11 ноя. 2012

было бы это добро вчера, ух...

А есть что либо по поводу угловых скоростей?

#447
12:00, 11 ноя. 2012

ud1
respect!

#448
12:19, 11 ноя. 2012

Чертов великий рандом! у меня больших половины позиций в сражениях - на 3-х и 9-ти часах. У вас как? должна быть примено треть...

#449
12:21, 11 ноя. 2012

Что за глюк с первым боем, почему очки вычитали?))

Страницы: 129 30 31 3259 Следующая »
ФлеймФорумОбщее

Тема в архиве.