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