Бой генерируется автоматически на основе логики змей. Повлиять на исход боя после старта невозможно!
Битва происходит на клетчатом поле. Каждая "живая" змея состоит из головы, туловища и хвоста. Весь змеиный "интеллект", включая датчики для сканирования окружающей обстановки, находится, разумеется, в голове, а хвост является наиболее уязвимым местом.
Змея может сходить на пустую клетку, съесть хвост противника и стоять в тупике
В ходе боя возможны всего лишь два варианта движения змеи. Если голова змеи перемещается на пустую клетку, то все тело змеи перемещается вслед за головой, так что первая клетка туловища оказывается там, где раньше была голова, а хвост оказывается там, где была последняя клетка туловища.
Если же змея производит атаку на противника, то ее голова окажется на той клетке, где был хвост другой змеи, а все тело останется на месте. Таким образом, длина укусившей змеи увеличивается на единицу, а длина укушенной - на единицу уменьшается.
Суммарная длина участников остается постоянной.
Таким образом, суммарная длина участников боя остается постоянной, а длина Вашей змеи является показателем того, насколько успешно воюет именно она. Задача-максимум для пользователя состоит в том, чтобы его змея полностью "съела" всех противников, задача-минимум - добиться того, чтобы его змея имела максимальную длину.
В самой битве одновременно участвует от двух до четырех змей. Сразу замечу, что бой с участием четырех змей гораздо интереснее и менее предсказуем, чем с участием пары.
Бой заканчивается в случае:Это набор из всех ваших программ в миниатюре, с возможностью сразу просмотреть реакцию змеи.
Каждую программу можно:
Чтобы разместить элементы, необходимо выбрать объект (один раз щелкнуть мышкой) на палитре, и нажать на нужных клетках поля
Палитра состоит из объектов и логических операций. Чтобы разместить объект на поле, необходимо выбрать элемент и нажать на нужных ячейках клеточного поля.
Элементы
Логика работает следующим образом:
Если ([блок Или] И [блок И] И [блок Или-2] И [блок И-2]) то программа срабатывает.
В случае, если представление программы (зрение змеи) соответствует состоянии на поле, то будет выбрано направление, расставленное в приоритетах. В первую очередь змея выберет направление с числом "1", если клетка занята, то с числом "2" и т.д. Пустое значение не обрабатывается.
Чтобы изменить приоритет нажмите на оранжевый квадрат.
Компьютер поочередно просматривает все программы, накладывая их таким образом, чтобы голова змеи совпадала с ее текущим положением. Если окружающая обстановка совпала с тем, что занесено в матрицу (область зрения змеи), то змея перемещается в указанно направлении. Если совпадения не произошло или такой ход невозможен, то в случайном порядке перебираются все повороты и отражения этой карты. Если совпадения не произошло ни в одном варианте, то происходит переход к следующей программе. Если же ни одна карта не дала совпадения, то направление следующего хода выбирается случайным образом.
"Все животные равны, но некоторые из них равнее"
Дж.Оруэлл - "Скотский Хутор"
Точно так же и с нашими змеями. От рождения они все равны. Каждая не умеет делать ничего, кроме как двигаться в случайном направлении и кусать противников за хвост, если он сам в рот просится.
Для того, чтобы Ваша змея вела себя с умом, ее над обучить. Интересно, что обучение змея производится путем программирования логики ее поведения в самых разнообразных боевых ситуациях. Если Вы не умеете программировать, то эта игра для Вас - просто идеал. Дело в том, что "программирование" выполняется таким доступным, понятным и наглядным способом, что через десять минут после начала игры даже семилетний ребенок сможет с гордостью сказать: "Я умею программировать". И совсем приятно, что тут же можно НАГЛЯДНО увидеть, как ведет себя Ваша программа и сравнить ее с программами других авторов.
Змея должна видеть хвост противника, начинать преследование, сближаться и атаковать.Итак, змея должна сканировать окружающее пространство. Чем больше радиус "сканирования" тем интеллектуальнее ее поведение. Ниже приведены несколько вариантов (не единственных) для сканирования пространства на наличие хвостов противника.
Змея должна избегать избегать тупиковых ситуаций вблизи кромки поля.Пример такой ситуации изображена на рисунке. Хвост такой змеи беззащитен для атак соперников.
Умная змея может избегать ситуации, когда она запутывается в собственных (и не только собственных) кольцах
В ситуации "собачьих бегов", когда две змеи безуспешно преследуют друг другу по замкнутому маршруту, "умная" змея должна уметь "срезать" углы и сокращать расстояние
Змея должна уметь "разрывать" устойчивые связи (хороводы)В ситуации, когда две змеи, повинуясь своему "инстинкту" (правильнее сказать- Вашей программе) пожирают друг друга с хвоста, "умная" змея разорвет такую связь. Одним словом, программа на "разрыв связи" должна иметь более высокий приоритет, чем "основной инстинкт".