Игровой процесс

Игровой процесс довольно прост: регистрируемся, программируем змей, посылаем их в бой и повышаем свой рейтинг. Регистрация и авторизация в игре пока что будет своя, в будущем, возможно, будут использоваться форумная авторизация.

Участие в рейтинге

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

Игровое поле

Размер поля — 25×25 клеток, препятствия отсутствуют. Начальная длина змеи: 10 клеток. Змеи расположены по серединным вертикали и горизонтали поля, хвост у границы поля, голова направлена к центру поля. Т. о. между головами змей можно вписать квадрат 5×5 клеток, змеи могут видеть друг друга с самого начала. первая змея находится внизу поля, вторая слева, третья вверху, четвертая справа.

Управление змеями

Есть три типа змей:

  • Временные. Эти змеи не хранятся на сервере, они существуют только на стороне клиента. Каждый раз, когда игрок создает новую змею или изменяет программу обычной змеи или бота и не сохраняет изменения, появляется временная змея.
  • Обычные. Эти змеи уже хранятся на сервере. Только змеи этого типа могут быть бойцами.
  • Боты. Хранятся на сервере. Предназначены для обучения новичков и тестирования программ. Программу бота могут видеть (но не редактировать) все игроки.

Игрок может свободно создавать, модифицировать и удалять змей. Единственное ограничение — нельзя удалять бойцов.

«Заказ» боя

При «заказе» боя игрок выбирает его тип — тренировочный или рейтинговый.

В тренировочном бою игрок может выставлять любых змей любых типов любых игроков в любом количестве (от 1 до 4), в том числе несколько экземпляров одной и той же змеи. На рейтингах результаты боя никак не отражаются. Игрок задает максимальное количество ходов (не более 1000), после которого бой прекращается.

Рейтинговый бой почти наверняка приведет к изменению рейтингов его участников, причем рейтинг может как вырасти, так и упасть. Для «заказа» такого боя игрок должен участвовать в рейтинге. Игрок выбирает ровно трех игроков-соперников, участвующих в рейтинге. Сражение ведется между бойцом «заказчика» и бойцами выбранных игроков. Лимит ходов для таких боев всегда равен 1000.

Просмотр боя

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

Если в бою участвовали змеи игрока или боты, то для каждой такой змеи доступна отладочная информация: программа змеи на момент боя и (для каждого хода) решение, принятое змеей (номер и вариант карты либо причина, по которой карты не использовались). Игрок может приостановить показ боя и снова запустить его, «перемотать» запись к желаемому шагу, просматривать запись пошагово с отображением отладочной информации.

Игрок может сохранить запись боя для просмотра позже (количество сохраненных записей ограничено). У каждой такой записи может быть краткое описание, которое игрок может редактировать.

Объекты

Игрок

Данные игрока:

  • идентификатор (неизменен);
  • данные для аутентификации (логин, пароль);
  • имя;
  • рейтинг;
  • список змей;
  • списки боев:
    • последние «заказанные»;
    • последние рейтинговые бои, в которых участвовал боец игрока (кроме «заказанных» игроком);
    • бои, сохраненные игроком.

Змея

Данные змеи:

  • идентификатор (неизменен);
  • идентификатор владельца (неизменен);
  • тип (обычная/бот);
  • имя;
  • идентификатор окраски («шкурки»);
  • текстовое описание программы;
  • пользовательские наборы элементов для программы;
  • набор карт программы:
    • текстовое описание карты;
    • положение головы;
    • шаблоны.

Бой

Данные боя:

  • идентификатор;
  • дата и время;
  • тип (тренировочный/рейтинговый);
  • лимит ходов;
  • исход боя (осталась одна змея/превышен лимит ходов/нет возможных ходов);
  • краткое описание боя (только для сохраненных);
  • список ходов; для каждого хода:
    • очередность шагов;
    • для каждой змеи:
      • направление шага (прямо/направо/налево/на месте);
      • использованная карта и вариант / причина, по которой карты не использовались (съедена/нет ходов/единственный ход/нет подходящей карты);
  • список змей; для каждой змеи:
    • идентификатор змеи;
    • имя змеи;
    • окраска змеи;
    • идентификатор владельца;
    • имя владельца;
    • исходный рейтинг владельца (только для рейтинговых боев);
    • итоговый рейтинг владельца (только для рейтинговых боев);
    • программа.

Все данные боя, кроме описания, неизменны.

 
projects/snakes/game.txt · Последнее изменение: d.m.Y H:i — AVA12
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki