Zmeika
простая аркадная игра
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Страницы
Класс Snake

состояние "змеи". Подробнее...

#include <Game.hpp>

Граф связей класса Snake:
Collaboration graph

Открытые типы

using Position = Field::Position
 позиция на поле
 

Открытые члены

 Snake (Field &field, Index snake_len=5)
 по умолчанию двигается из левого нижнего угла (0, 0) вверх по y. Подробнее...
 
void reset (Index snake_len=0)
 сбросить змею Подробнее...
 
void up ()
 двигаться "вверх".
 
void down ()
 двигаться "вниз".
 
void left ()
 двигаться "влево".
 
void right ()
 двигаться "вправо".
 
Cell step ()
 передвинуться на один шаг вперёд Подробнее...
 
Cell warpHead (const Position &new_head)
 телепортировать голову змеи Подробнее...
 
Index length () const
 get snake length
 

Закрытые типы

using Positions = std::vector< Position >
 

Закрытые члены

void createSnake (Index snake_len)
 создать змею
 
Position moved (const Position &p) const
 сдвинутая на vx, vy позиция
 
void check_reverse ()
 обратить порядок, если нужно
 

Закрытые данные

Positions positions
 позиции клеток, занимаемых змеёй, голова на индексе 0.
 
Index vx
 
Index vy
 
Fieldfield
 

Подробное описание

состояние "змеи".

Конструктор(ы)

Snake::Snake ( Field field,
Index  snake_len = 5 
)
inlineexplicit

по умолчанию двигается из левого нижнего угла (0, 0) вверх по y.

Аргументы
fieldполе, на котором разместить змею
snake_lenдлина змеи, змея укладывается горизонтально

Граф вызовов:

Методы

void Snake::reset ( Index  snake_len = 0)
inline

сбросить змею

Змея удаляется с поля field, затем действует как конструктор.

Граф вызовов:

Граф вызова функции:

Cell Snake::step ( )
inline

передвинуться на один шаг вперёд

Возвращает
пройденная клетка (если пустая – прошла, если змея – столкновение, кролик – съел)

Граф вызовов:

Граф вызова функции:

Cell Snake::warpHead ( const Position new_head)
inline

телепортировать голову змеи

Возвращает
старое значение клетки, которую заняла голова змеи

Граф вызова функции:


Объявления и описания членов класса находятся в файле: