我需要一些非常大的帮助来解决这个问题
这是我的Board
和Player
课程:
class Board {
public:
Board(const string &filename);
//bool putShip(const Ship &s);
void moveShips();
//bool attack(const Bomb &b);
void display()const;
void show()const;
void initializeGrid();
private:
int numLines, numColumns;
//vector <Ship> ships;
vector <vector<int> > board;
};
class Player{
public:
Player(string playerName, string boardFileName);
void showBoard() const;
//Bomb getBomb() const;
//void attackBoard(const Bomb &b);
private:
string name;
Board board;
};
这不是我做的,这些是我需要在最终的c ++项目中实现的类。
我正在努力制作电路板(开发功能void Player::viewBoard()
)
txt文件将是这样的
Board 10x10
我已经开发了一个可以同时读取10&#s并将其保存在numLines
和numColumns
中的函数:
Board::Board(const string &filename){
string tmp;
ifstream config;
config.open(filename.c_str());
if (config.is_open()) {
config >> tmp >> numLines >> tmp >> numColumns;
}
}
但现在呢?如何使用主板上指定的尺寸为播放器播放器制作电路板?
有任何帮助吗?我非常感谢任何有帮助的人,这可以节省我的学期。谢谢大家和最诚挚的问候。
答案 0 :(得分:0)
好的类定义说该板是一个向量载体的向量
您需要生成numcolumns整数的numlines向量并将它们存储在板中。 (阅读std :: vector)
我假设每个int代表该单元格的内容。你必须决定每个价值的含义 - 或者类设计师是否已经决定了这一点。由于我们无法看到其他方法,我们不知道
答案 1 :(得分:0)
“为播放器制作电路板”实质上意味着您创建了Board类的实例,该实例是Player类的私有成员。您已经在Player类中声明了对象,因此您只需要实例化它。您可以创建指向该类的指针,然后取消引用该指针。例如:
Foo *f = new Foo(/*params*/);
foo = *f;
假设“foo”已被声明为私人成员。
答案 2 :(得分:0)
首先,使用'resize'(http://www.cplusplus.com/reference/vector/vector/resize/)方法,使用您从文件中获得的维度初始化'board'变量。