Я делаю версию «Ориентированные змейки и лестницы». Итак, у меня есть класс Game, в котором есть метод startGame () и метод play (). Вот заголовок класса.
#ifndef GAME_H_INCLUDED
#define GAME_H_INCLUDED
#include <iostream>
#include "Tiles.cpp"
class Game{
private:
int tiles, snakes, ladders, penalty, reward, players, turns, currentTurn;
char mode;
public:
Game();
Game(int, int, int, int, int, int, int, char);
void play(Tiles*, unsigned int);
void startGame();
};
#endif
Итак, сначала я создаю массив указателей и добавляю класс с именем Tiles (у которого есть 2 унаследованных класса: Snakes и Ladders) и заполняю его объектами унаследованных классы.
void Game::startGame(){
int tiles, n1, n2, n3;
Tiles * board[tiles];
for (int i=0;i<n;i++){
board[i] = new Normal(i+1);
}
for (int i2=0;i2<n2;i2++){
do {
nTileS = rand() % tiles;
}while (board [nTileS] -> getType() != 'N');
board[nTileS] = new Snake(nTileS+1);
}
for (int i3=0;i3<n3;i3++){
do {
nTileL = rand() % tiles;
}while (board [nTileL] -> getType() != 'N');
board[nTileL] = new Ladder(nTileL+1);
}
Создав массив, я вызываю функцию play (), которая содержит все c логики игры, но мне нужен созданный мной массив в качестве параметра. play(board[tiles], tiles);
void Game::play(Tiles* board, unsigned int nBoard){
cout<< "test" << endl;
for (int i=0; i<nBoard; i++){
board[i].showTile();//method that prints the info of the object, just for testing
}
Но в результате код дает мне только test
, так что на самом деле метод работает, но, видимо, он не распознает объекты моего массива указателей. Я просто хочу знать, как использовать этот массив указателей в этом случае. Кстати спасибо