Как стать автором
Обновить

Комментарии 10

getAngleDeflaction — ?? а что это? 0_о
вот цитата из, скажем так, мануала на habrawars:
Управление, возвращаемое роботом
Функция action должна возвращать массив из 4 элементов:

•скорость — от 0 до 1, скорость выше 0.5 расходует энергию робота;
•направление поворота — от -1 до 1 градуса;
•выстрел — true, если нужно произвести выстрел (игнорируется при энергии < 100);
•дальность выстрела — положительное число, задающее дальность полета снаряда (игнорируется, если выстрел не производится).
Пример: return [0.5, -1, true, 350];

Вобщем эта функция занимается тем, что говорит: на -1, 0 или 1 градус повернуться…
Я немного не про то.

Просто немного непонятно, почему тратя столько времени и сил на продумывания различных вариаций и коли уж решили называть функции используя англоязычные термины — то неплохо было бы посмотреть — как же все таки правильно писать :)

я так понимаю, что
Deflaction должен быть все таки Deflection? ;)
блин, и в правду ошибся, все это время думал что надо писать через `a`))) спасибо что указали)
Проверка на distance != 0 в функции this.fire выглядит несколько странно, т.к.:
а) роботы не могут проходить друг сквозь друга, поэтому меньше 30 оно не станет;
б) если заменить 0 на 30 — ваш робот будет стрелять, даже если смотрит в противоположную от цели сторону, если подойдет к врагу вплотную. В остальном вроде прилично, добавить только поправку на движение — будет совсем замечательно =)
Я так понимаю, эта проверка, чтобы не поделить случайно на ноль.
Мало ли что может прийти в функцию в качестве параметра.
Просто дополнительная защита, чтобы робот не упал во время боя даже в случае небольшой ошибки.
Тогда, возможно, проверку стоит сделать в начале функции на distance >= params.robot_radius (при меньшем значении стрелять бессмысленно — себе повреждений подконтрольный робот нанесет больше)
ага, MiXei4 прав, тоесть это задумывалась как проверка чтоб, мало-ли что, не поделить на ноль…
а насчет вашего предложения — это да, было бы лучше, даже еще можно написать что-то вроде этого: distance >= params.robot_radius + 5
т.к. повреждается робот, даже если заряд попадает в районе примерно 5-8 пикселей…
Радиус действия бомбы 45 пикс., следовательно робот повреждается, если бомба упала от края робота ближе 30пикс.

Но если мы не будем стрелять в этом случае, то при двух оставшихся роботах вплотную друг к другу ваш проиграет :)
ну да, я же говорил что логика — сложная штука)) чтоб организовать хоть чуть-чуть похожее на человека, поведение у робота, надо написать строк где-то так тыщи три…
кстати, есть идея такая: вобщем мы ведь тут имеем дело с жабаскриптом, так-что можем перехватывать нажатия клавиш на клаве… так почему бы не сделать управляемого робота? надо будет попробовать в ближайшее время, единственное — конечно такое чудо никогда не допустят не до каких соревнований
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации