Что нового

Разработка алгоритма движения бота без доступа к карте

astanid

Новичок
Сообщения
38
Репутация
0
Пишу бота для War thunder. для танков
входить в бой бот уже умеет.
первая версия умеет рандомно ездить туда сюда - очки конечно приносит, но мало.
Вопрос как сделать перемещение. с карты можно получить координаты всей техники и точек на карте. координаты и направление игрока.
Цель поездок - захватывать точки.
Код:
[
{"type":"airfield","color":"#ff0000","color[]":[255,0,0],"blink":0,"icon":"none","icon_bg":"none","sx":1.111117,"sy":-1.897653,"ex":0.889308,"ey":-1.917059},
{"type":"airfield","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"none","icon_bg":"none","sx":0.064057,"sy":2.270260,"ex":-0.158387,"ey":2.260547},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":0.086450,"y":2.346436},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":0.119116,"y":2.207190},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":0.016162,"y":2.198645},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":-0.152515,"y":2.196106},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":-0.104175,"y":2.326709},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":-0.002722,"y":2.333325},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":-0.061108,"y":2.389648},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":-0.238818,"y":2.342468},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":-0.083252,"y":2.133118},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Airdefence","icon_bg":"none","x":0.059924,"y":2.156104},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"LightTank","icon_bg":"none","x":0.352044,"y":0.251173},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.351590,"y":0.248904},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"LightTank","icon_bg":"none","x":0.352484,"y":0.257168},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.351600,"y":0.253700},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"LightTank","icon_bg":"none","x":0.351837,"y":0.255094},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.299515,"y":0.249366},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"TankDestroyer","icon_bg":"none","x":0.363031,"y":0.242080},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.354430,"y":0.232359},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.447249,"y":0.287244},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"SPAA","icon_bg":"none","x":0.351922,"y":0.242376},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.445864,"y":0.285885},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"HeavyTank","icon_bg":"none","x":0.427286,"y":0.289078},
{"type":"ground_model","color":"#57D756","color[]":[87,215,86],"blink":0,"icon":"HeavyTank","icon_bg":"none","x":0.377676,"y":0.279473},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"Player","icon_bg":"none","x":0.331426,"y":0.355599,"dx":0.601034,"dy":-0.799224},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.339256,"y":0.255571},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.351792,"y":0.228315},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.351032,"y":0.245321},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.445088,"y":0.289042},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"TankDestroyer","icon_bg":"none","x":0.387478,"y":0.485953},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"LightTank","icon_bg":"none","x":0.340352,"y":0.260853},
{"type":"ground_model","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"MediumTank","icon_bg":"none","x":0.447367,"y":0.281033},
{"type":"capture_zone","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"capture_zone","icon_bg":"none","x":0.350525,"y":0.241321},
{"type":"capture_zone","color":"#ff0000","color[]":[255,0,0],"blink":0,"icon":"capture_zone","icon_bg":"none","x":0.621326,"y":0.262463},
{"type":"capture_zone","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"capture_zone","icon_bg":"none","x":0.451782,"y":0.284106},
{"type":"respawn_base_tank","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"respawn_base_tank","icon_bg":"none","x":0.329553,"y":0.362195},
{"type":"respawn_base_tank","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"respawn_base_tank","icon_bg":"none","x":0.441467,"y":0.479688},
{"type":"respawn_base_tank","color":"#ff0000","color[]":[255,0,0],"blink":0,"icon":"respawn_base_tank","icon_bg":"none","x":0.670276,"y":0.132825},
{"type":"respawn_base_tank","color":"#ff0000","color[]":[255,0,0],"blink":0,"icon":"respawn_base_tank","icon_bg":"none","x":0.515417,"y":0.131726},
{"type":"respawn_base_fighter","color":"#185AFF","color[]":[24,90,255],"blink":0,"icon":"respawn_base_fighter","icon_bg":"none","x":0.035327,"y":2.028503,"dx":77.645691,"dy":-289.778015},
{"type":"respawn_base_fighter","color":"#ff0000","color[]":[255,0,0],"blink":0,"icon":"respawn_base_fighter","icon_bg":"none","x":0.983167,"y":-1.508691,"dx":-77.645691,"dy":289.778015}]
Идеи:
- следовать за каким то игроком (в частности созводником, он зеленого цвета). Минусов много - его может не быть, его могут убить и т.д.
- записывать координаты движения всех игроков команды. Получаем в итоге дерево возможных путей - потом едем по ним. вопрос как это адекватно сделать ?
может есть готовые алгоритмы ? есть игрок, есть точка куда хотелось бы попасть, есть многомерный массив представляющий дерево путей

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

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Выбор пути из дерева возможных путей

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Выбор пути из дерева возможных путей" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 
Верх