Я реализую простую настольную игру (Прорыв) с использованием OpenGL (плюс GLUT и GLUI).
Я думаю о реализации класса Board
, у которого vector<vector<Cell> >
будет одним из его атрибутов. Cell
представляет пробел в игровом поле. Может содержать GameObject
. GameObject
будет чисто абстрактным классом. Он требует, чтобы его производные классы реализовали, например, render()
. Возможные производные классы будут:
Blank
, представляющий пустое пространство
Pawn
, представляющий пешку (единственно возможные фигуры в Прорыве)
Доска будет обработана, сначала отрисовав доску, затем итеративно просматривая каждый Cell
, получая его содержимое и вызывая render()
для каждого из них.
Единственный возможный способ достижения этого - сделать указатель GameObject
в Cell
(board[y][x].getContents()->render()
, где getContents()
возвращает GameObject*
)
Это лучший способ сделать это? Это правильное использование указателей?