Добавлен , не публикуется

Введение

Здравствуйте, дамы и господа. Завершился конкурс Fackov'a, а значит настало время нового конкурса.
Хочу предложить Вам сыграть в игру по алгоритмизации перемещений крестьян.

Правила

Запись на конкурс осуществляется в комментариях в этой теме. Карты с алгоритмом присылаются личным письмом на xgm.
Вы должны написать алгоритм выживания крестьян при определенных константах игрового мира и условиях, которые будут указаны ниже.

Условия игрового мира

  • Каждые 3 секунды в случайной точке появляется куст звездолиста.
  • Подбирающий куст крестьянин может оставить его либо в инвентаре, либо съесть.
  • Если крестьянин ест куст, он либо рождает нового крестьянина, либо полностью восстанавливает свое здоровье.
  • При убийстве крестьянина появляется куст звездолиста на месте его смерти.
  • При смерти крестьянина от голода - не появляется.

Технические условия

  • Все алгоритмы будут залиты в одну карту.
  • Каждому игроку будет выделена группа юнитов, от которой и будет плясать движок, сверяя каждую секунду действия, которые будет выполнять крестьянин.
  • Каждому игроку будет предоставлен один начальный крестьянин.
  • Вначале карты каждому крестьянину будет помещено в инвентарь 3 куста звездолиста.
  • Все крестьяне принадлежат игроку-красному.
  • Код создающий утечки недопустим. Протестируйте алгоритм на приложеных версиях ниже.
  • Старайтесь создавать уникальные переменные с Вашим Никнеймом, дабы не саботировать других участников конкурса. Например Avs_countpeasant

Константы крестьян

Константы крестьян самостоятельно не изменяются. Любые попытки изменить что-то в характеристиках юнитов с помощью кода повлечет исключение данного участника из конкурса.
  • Здоровье = 100
  • Защита = 0
  • Атака = 10
  • Скорость регенерации здоровья = -3
  • Базовая скорость = 300
  • Способности = предметы герой (возможно добавление способностей, не дающих ничего, ради визуализации и работы алгоритма. Вообще ничего. Ни хила, ни урона, ни маны, ни дальности атаки)
Остальные характеристики как у стандартного рабочего альянса.

Запрещено

  • Менять константы РО юнитов.
  • Создавать предметы и юнитов.
  • Перемещать юнитов приказами отличными от ордеров.
  • Использовать переменные без имени автора. CountPeon - не верно. Avs_CountPeon - верно.
  • Все используемые Вами хранилища данных (будь то бд, переменные, массивы и т.п.) должны быть приватными и созданными только для использования Вашим кодом.
  • Все библиотеки должны иметь префикс %username.
  • Использование userdate не на своих юнитах запрещена. На своих - не рекомендуется.
  • Какой либо саботаж систем других участников конкурса.
  • Использовать алгоритмы с утечками и/или излишним перебором (например перебор всех юнитов на карте, когда Вам требуется только определенный радиус)

Что Вы можете сделать дополнительно

  • Выбрать модель или иную отличительную черту крестьянина.
  • Добавить эффекты при действиях крестьянина.
  • Иная визуализация

Условия победы

В течение 30 минут после запуска карты будет собираться статистика по каждой группе в рамках параметров:
  • Убийства чужих рабочих(больше - лучше)
  • Количество собранных предметов (кустов) созданных рандомом, а не убийством (больше - лучше)
  • Рождаемость = Рождаемость - Смертность от своих рук (больше - лучше)
  • Количество крестьян на данный момент (больше - лучше)
Если участник конкурса будет лучшим в каком-то из параметров - это дает ему +3 балла.
Если участник конкурса остался один на карте, а все остальные противники выбыли (количество крестьян всех кроме крестьян одного конкурсанта равно 0) - это дает ему +5 баллов, если его крестьяне просуществуют хотя бы 1 лишнюю минуту после выбытия соперников.
Следующий этап - создание нестандартной ситуации.
На карту будут добавлены либо очень сильные враги, либо предметы дающие + или - к характеристикам, либо территории, отнимающие дополнительное здоровье, погода замедляющая всех на 20%, а так же иные случайные условия, которые придут лицу проводящему конкурс в голову.
Снова будет собираться вышеназванная статистика. Если участник станет лучшим в каком-то из параметров статистики при этих условиях - это даст ему +2 балла.
При возникшей ничье за первое место.
Карта будет выложена в общий доступ, возможно, записан ролик.
Конкурсантам будет дана возможность в течение 3х дней поправить свой алгоритм.
Подчеркиваю, на этом этапе все будут знать чужие алгоритмы.
Карта отчистится от остальных конкурсантов и будет произведен повторный запуск карты для определения победителя.
Каждый из этапов будет запущен по 3 раза, для определения среднего значения.

Призовой фонд и сроки

Сроки проведения - до 31 июля включительно.
Результаты - 1 августа.
Призовой фонд - 1 тысяча рублей.
Помните, что данный конкурс несет развлекательный характер. Наличие даже хорошего алгоритма, может не принести Вам победы, если госпожа удача будет не на Вашей стороне и алгоритмы участников будут примерно равны.

Задумайтесь

  • Вы можете убивать крестьян противника, увеличивая свою популяцию.
  • Вы можете убивать своих крестьян с низким здоровьем, чтобы получить полностью здорового нового юнита.
  • Вы можете зажимать крестьян противника.
  • Вы можете передавать предмет (куст) от одного крестьянина другим своим крестьянам и крестьянам противника.
  • Вы можете контролировать определенную территорию, чтобы не бегать от края карты до края.
  • Вы можете нападать на крестьян противника, только собрав крестьян в группу.
  • У каждого крестьянина 34 секунды жизни.
  • Многое и многое другое, на что хватит вашего воображения.
Приблизительные примеры работ:
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
18
6 лет назад
0
Зашел на xgm, а попал в russian ai cup. :)
Не знаю даже, как-то слишком сложно для такого небольшого конкурса.
2
32
6 лет назад
2
Если не забухаю - я в теле.
впиши, а там посмотрим что будет))
0
28
6 лет назад
Отредактирован nvc123
0
условия и константы не полностью описаны
непонятно какие способности допустимы кроме пустышек
и в каком случае их можно давать
могу ли я дать изначально всем своим тп по всей карте и скил убивающий врага 1 ударом?
могу ли я дать юнитам хил и забить нафиг на голод просто заставляя их хилить друг друга?
так же не понятно где именно генерируются цветы
подобные вещи требуют чётко расписанных правил охватывающих все аспекты, включая:
  • начальное состояние
  • доступные операции
  • влияние среды
у тебя же просто описана твоя задумка
составь подробный список
и рано выставлять конечную дату
ещё хз сколько времени ты будешь дорабатывать правила конкурса

также начальное состояние и влияние среды должны быть общими для всех
т.е. не должно быть никаких "цветок и юнит появляются в случайном месте" или "с вероятностью в 10% ваш юнит умрёт"
т.к. это может привести к ситуации когда 1 игроку тупо повезло
все параметры должны быть чётко расписаны

правила russian ai cup занимают 50 страниц
и это на движке разработанным специально для конкурса
тебе же нужно ещё учесть различные технические особенности движка вар3 (конфликты систем вызванные использованием юзердаты, лимит потока, баги и фишки игры)
наиболее правильным решением будет запретить все стандартные функции и вместо них создать свои функции которые доступны для использования участникам конкурса
иначе не удивляйся если при запуске карты возникнет конфликт систем различных участников и игра вылетит с фаталом

в общем жду инструкции страниц на 10 как минимум
0
20
6 лет назад
Отредактирован DemonoiD
0
nvc123,
Способности любые, не меняющие характеристики. Например "Рык", но без статов, если тебе требуется по триггеру какой-то баф на юните и/или визуализация эффекта "Крика о помощи", что и написано в
(возможно добавление способностей, не дающих ничего, ради визуализации и работы алгоритма)
не дающих ничего
так же не понятно где именно генерируются цветы
также начальное состояние и влияние среды должны быть общими для всех
т.е. не должно быть никаких "цветок и юнит появляются в случайном месте" или "с
вероятностью в 10% ваш юнит умрёт"
Тесты показали, что случайность не играет большой роли. Замеры были произведены на 3х алгоритмах
  1. Бежит к ближнему цветку.
  2. Бежит к дальнему цветку, но зацепляет все, что попадается под руку.
  3. Стоит на месте и ждет спавна цветка.
Те, кто стояли и ждали спавна цветка заняли 2 место по рождаемости.
Более того, я готов хоть 5 раз запустить карту, для того чтоб усреднить. В этом нет ничего сложного.
Если нет кустов - убивай других крестьян и ешь их тела.
(конфликты систем вызванные использованием юзердаты, лимит потока, баги и фишки игры)
Оптимизация своего кода - на плечах конкурсанта. Лимита потока и юзердаты не будет - т.к. примерная численность в таких условиях будет держатьсяна 20 крестьянах. Увеличу спавн растений в 2 раза - будет 40. Главное, чтобы вы отчищали свой код от утечек.
Добавлено в технические условия, так на всякий случай
  • Код создающий утечки недопустим. Протестируйте алгоритм на приложеных версиях ниже.
  • Старайтесь создавать уникальные переменные с Вашим Никнеймом, дабы не саботировать других участников конкурса. Например Avs_countpeasant
Добавлено в константы системы, так на всякий случай.
  • Способности = предметы герой (возможно добавление способностей, не дающих ничего, ради визуализации и работы алгоритма. Вообще ничего. Ни хила, ни урона, ни маны, ни дальности атаки)
Кристофер, скачай тестовые карты-примеры. Ничего сложного нет. Обычный алгоритм поиска пути с добавлением if-ov на проверку окружения, типа "пацаны я взял предмет, дай-ка я проверю свои статы" или "пацаны, тут какая-то жуткая вещь, дай я проверю её статы, прежде чем убегать или атаковать".
Просто старался отобразить всевозможные моменты, дабы потом не было недопонимания.
0
35
6 лет назад
0
Такие вещи стоит с нами согласовывать предварительно.
2
28
6 лет назад
Отредактирован nvc123
2
DemonoiD, если 2 участника хранят данные в юзердате юнитов то произойдёт конфликт и работы обоих участников будут работать неправильно
вообще по твоему комментарию складывается впечатление что ты не знаешь что такое юзердата
конкурс в котором всё на рандоме и 1 участнику может тупо повезти сложно назвать объективным
но если ты уверен что всё учёл то я готов создать карту напичканную эксплоитами и ломающая чужие работы
только учти что после старта конкурса ты не сможешь отказаться от моей работы
причём не нужно ничего специально ломать
просто небольшого конфликта будет достаточно чтобы всё пошло к чертям
0
35
6 лет назад
0
Нужно дорабатывать условия конечно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.