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

модель игрового поля, хранит массив ячеек Cell. Подробнее...

#include <Game.hpp>

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

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

using Position = std::pair< Index, Index >
 координаты на поле Подробнее...
 

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

 Field (Index horz, Index vert)
 задать размеры поля по горизонтали и вертикали Подробнее...
 
Index xsize () const
 получить размер по горизонтали
 
Index ysize () const
 получить размер по вертикали
 
Cell operator() (Index x, Index y) const
 получить клетку по координатам, бросает исключение для плохих x, y.
 
Celloperator() (Index x, Index y)
 получить клетку по координатам, бросает исключение для плохих x, y.
 
Cell operator[] (const Position &p) const
 получить клетку по координатам, бросает исключение для плохих координат
 
Celloperator[] (const Position &p)
 получить клетку по координатам, бросает исключение для плохих координат
 
template<class Visitor >
void scan (Visitor visitor) const
 пройтись по всем ячейкам поля, visitor принимает параметры (dx, dy, cell) Подробнее...
 

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

Index xsize_
 
Index ysize_
 
std::vector< Cellcells
 

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

модель игрового поля, хранит массив ячеек Cell.

Массив ячеек организован в "матрицу", которую можно адресовать индексами (x, y) с помощью оператора ().

Определения типов

using Field::Position = std::pair<Index, Index>

координаты на поле

Работа с ними опирается на "оборачивающую" арифметику в дополнительном коде (переполнения и преобразование отрицательных к беззнаковому типу).

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

Field::Field ( Index  horz,
Index  vert 
)
inline

задать размеры поля по горизонтали и вертикали

Заполняет поле пустыми ячейками.

Аргументы
horzгоризонтальный размер, индекс x от 0 до horz - 1
vertвертикальный размер, индекс y от 0 до vert - 1

Методы

template<class Visitor >
void Field::scan ( Visitor  visitor) const
inline

пройтись по всем ячейкам поля, visitor принимает параметры (dx, dy, cell)

В начале перебора: dx == 0 и dy == 0; затем передаются смещения в клетках от предыдущей переданной клетки. Так сделано для упрощения использования функции glRasterPos.

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


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