AI Challenge - это небольшая игра для программистов. В ней Вам предстоит написать своего бота, целью которого будет уничтожение в случайных сражениях ботов других людей.
Изначально Вам дается право создать своего персонажа - настроить несколько характеристик, вроде параметров стрельбы и передвижения. Далее же Вы берете документацию и редактор кода и пишите свою машинку. Вроде бы все просто, но учитывать придется очень много факторов, таких как расположение бонусов, наличие преград при стрельбе, упреждение и многое другое.
Для программирования стратегии персонажа Вам дается Java Script. В документации написаны все элементы. Возможности ограничены лишь Вашими способностями, так что, дерзайте. Даже игроки, что находятся в топе, имеют весьма посредственную стратегию боя.
Раз в 15-30 минут происходят сражения, в которых берется до четырех человек. В этот момент в сражениях участвуют ВСЕ машинки. Даже если в этот момент Вы тихо-мирно программируете ИИ своего персонажа и закомментировали несколько десятков строк кода со стрельбой и передвижением оного, Вашу машинку все-равно возьмут и отправят на передовую.
В целом, игра веселая и послужит для вас, матерых программистов Game Maker'а, хорошей тренировкой в области написания искусственного интеллекта.
Собственно, ссылка на игру: AI-Challenge.com. Зарегистрироваться можно через профиль ВКонтакте или через GitHub.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «AI Challenge», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
А у меня что-то ничего не работает. Вход через Github выдаёт ошибку "а аЕаГаИбббаАбаИб аНаА аБаЕбаА-баЕббаИбаОаВаАаНаИаЕ аЗаАаКбббаА ааО баЕаЛаИаЗ баЖаЕ баКаОбаО!", через ВК зайти не могу, так как аккаунта ВК нет. Ссылки вроде http://ai-challenge.com/show-game?id=42017 тоже не работают
var xx = test.x + test.speed * distance * Math.cos(test.dir * Math.PI / 180); var yy = test.y - test.speed * distance * Math.sin(test.dir * Math.PI / 180);
var dir = point_direction(car.x,car.y,xx,yy);
car.barrelAngle(dir + car.angle); /////////////////////////////// Упростил чтоб ты не просто так взял Я создал доп. объект для врага(которого атакую) в котором его параметры - test distance - сколько тиков надо чтоб снаряд долетел о точки point_direction - направление опеределяет
Однозначно проект удачный, мне очень понравилось. Но должен быть отбор по силе машины. А то я частенько натыкаюсь на топовых игроков и это не есть гуд. Кстати, еще было бы не плохо иметь возможность завести несколько машин, а то я допустим хочу тяжелую и легкую, а у меня на выбор только одна. + еще было бы хорошо, если бы сценарии не менялись, а добавлялись новые с возможностью отката\игры на старых. И да, к тому же заметил баг в редакторе кода: Сборщик информации APIDATA или как его там занимает место на эдит боксе(поле редактирования), но не уменьшает его изза чего не видна добрая часть кода.
Ребят, есть такое вопрос: Я вот допустим хочу получить координаты противника, не запрашивая id этого противника. Я получу координаты от первого противника или же от ближайшего? Или как же тогда сделать запрос по id противника? + id локальное? (1-4) или глобальное? (1-...)
Смотря, что надо. Если ты хочешь получить координаты ближайшего противника, то: 1. Пишем функцию по теореме Пифагора для поиска расстояния между двумя точками: Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
2. Прогоняем по циклу всех имеющихся противников и сравниваем дистанцию. var min_distance = 999; //К примеру var enemy_x = world.enemies[0].x; var enemy_y = world.enemies[0].y; for (var i = 0; i < world.enemies.length; i++) { if ("дистанция от car.x,y до world.enemies[i].x,y" < min_distance) { min_distance = "дистанция от car.x,y до world.enemies[i].x,y"; enemy_x = world.enemies[i].x; enemy_y = world.enemies[i].y; } }
3. Делаем необходимые действия, вроде поворота башни на противника.