Мой вариант правил HabraWars

Спортивное программирование
Тут описана идея товарища @p_r_i_m_a_t.
Мои соображения по поводу правил под катом:


  1. Битва — сражение между одинаковыми роботами, управляемыми программами участников (далее именуются роботами)
  2. Битва проходит на прямоугольной карте заранее неизвестных размеров, которая состоит из полей. Все объекты в игре размером с поле. Битва происходит в пошаговом режиме
  3. Поля бывают следующих видов:
    • обычное поле — обычное поле. По нему робот может проходить, может простреливать.
    • преграда — не проходимое, не простреливаемое поле
    • (?)вода — не проходимое, но простреливаемое поле
    • (?)«кусты» — проходимое, но не простреливаемое поле
    • «зарядка» — поле с «зарядкой». Становясь на такое поле, робот получает боеприпас/энергию

  4. Роботы обладают следующими параметрами (у всех роботов на старте равными):
    • Уровень жизни — заранее неизвестен. При каждом попадании в робота уменьшается на единицу. Не восстанавливается. При достижении нуля — робот погибает
    • Боезапас — заранее неизвестен. При каждом выстреле робота уменьшается на единицу. Восстанавливается на полях «зарядки» боезапаса.
    • Уровень энергии — заранее неизвестен. Каждый ход уменьшается на единицу. От уровня энергии зависит «меткость» робота (возможно в обратной геометрической прогрессии? тут надо подумать). Может восстанавливаться дружественными роботами, находящимися в соседнем поле, путем перекачивания своей энергии, в количестве (?) 10% от первоначальной энергии за ход

    Роботы управляются программами игроков, программам доступны следующие операции (одна за ход) над роботами:
    • Операции перемещения:поворот влево, поворот вправо, шаг вперед
    • Операция обзора: применив эту операцию (и соответственно постояв на месте), к началу следующего хода робот получает информацию о полях в радиусе 4 клеток от себя (тут опять же надо подумать, может лучше о квадрате вокруг себя, и размер тоже обдумать надо)
    • Операция выстрела: выстрелить в противника в зоне видимости. Чем дальше до противника и меньше энергия стреляющего, тем меньше шансов попасть.
    • Операция «Idle»: стоять, ничего не делать
    • Операция «поделиться энергией»: В коммандной игре перекачать дружественному роботу, находящемуся в соседнем поле, свою энергию
    • Операция сообщения: отослать дружественному роботу, находящемуся недалеко (или в зоне видимости) сообщение. Содержание и смысл сообщений должны заранее обсуждаться с союзниками

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


  5. Вот как то так. Достаточно просто, и по-моему, интересно.
Теги:спортивное программированиеrobot warshabrawarsсоревнование
Хабы: Спортивное программирование
-2
693 1
Комментарии 11

Похожие публикации

Лучшие публикации за сутки