作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一些基于文本的足球经理游戏,至少试一试。经过长时间的思考和一些尝试,我仍然不确定类(class)的结构。我的第一个想法是创建这样的东西:
class Player
{
private:
Team team:
};
class Team
{
vector<Player> playerlist;
};
你认为以这种方式直接评估还是使用这样的指针是聪明的:
class Player
{
private:
Team* team:
};
class Team
{
vector<Player*> playerlist:
};
然后我不知道我应该使用 vector 还是列表,考虑到传输会改变长度,而 vector 会改变存储在其中的玩家地址。所以指向这个 vector 的指针可能是个问题。
所以我对此很不确定,主要是因为我对 C++ 的经验很差。您认为最好的设置方式是什么?
最佳答案
尝试将您的类(class)分解为逻辑分组。我通常发现一个很好的开始方式是写一段关于你的游戏是关于什么的简短段落。拆分出所有名词——这些通常是类或属性。拆分出所有动词 - 这些通常是方法。
一个玩家是否包含一个团队?或者一个团队是否包含一名球员?如果你想让玩家了解球队,你可以这样做。
class Player
{
public:
Player() : m_myTeam(NULL) {}
void SetTeam(Team* team);
private:
Team* m_myTeam;
};
class Team
{
public:
void AddPlayer(Player* player);
private:
std::vector<Player*> m_players;
};
我在这里要考虑的另一件事是,球队不会创造球员。球员应该由某种工厂创造,因为球员可以随心所欲地从球队来来去去,只要他们的契约(Contract)允许! :D
关于c++ - 经理博弈类的一般结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22393756/
我正在尝试对下面的图形问题进行分类或寻找其解决方案的提示。 有一个(邻接)矩阵可以包含 3 种类型的元素:单位、点和简单地形。 地形没有具体含义。 单位有一个位置(x,y 由矩阵定义)和他们可以获得的
我是一名优秀的程序员,十分优秀!