【发布时间】:2014-05-13 22:25:29
【问题描述】:
我正在为我的课程制作一款战舰游戏,但在我正在使用的一个类中,我遇到了一些关于 get 函数的问题。我的游戏的基本思想是创建一个 2D 10X10 数组,称为网格,用空指针填充来表示棋盘。我创建了 2 个类,Board 和 Ship。网格数组是 Ship 类型的,我使用一种算法随机地用 Ships 填充数组。我使用 Board 类来访问网格数组和 hits 数组(我用它来跟踪命中)。
但是我无法弄清楚 getShips 函数如何返回网格数组。 hits 数组只是布尔值,所以这很容易,但我对 C++ 的熟练程度不足以使 getShips 函数正确返回网格数组,它是 Ship 指针类型。我将不胜感激。
class Board
{
private:
Ship *grid[10][10];
bool hits[10][10];
public:
// get functions
Ship *getShips()
{
return grid;
}
bool getHits()
{
return hits;
}
};
我还想知道是否可以通过调用getShips 函数在其他函数中操作数组。比如:
for (int x=0; x<10; x++)
{
for (int y=0; y<10; y++)
{
board.getShips()[x][y]=nullptr;
}
}
【问题讨论】:
-
船舶不应该占用几个方格吗?您的代码中的某些内容不正确。如果你能提供更多关于它应该如何工作的细节,我很乐意给你一个答案。
-
是的,我省略了放置船的代码,但基本上我为每艘船都有一个具有不同长度值的子类和一个用 Ship 指针填充数组中多个空格的函数,具体取决于在船舶长度上。放置算法已经过测试并且可以正常工作,但是要包含 Hits 数组和 Grid 数组,我必须重写并将它们都包含在 Board 类中,这就是这个问题出现的地方。
-
如果有人想继续,或者想看看这部分代码适合整个程序的什么地方,整个代码可以在 pastebin 上找到:pastebin.com/sRS8k75y
标签: c++ arrays function class pointers