经理游戏类的一般结构

时间:2014-03-14 00:19:34

标签: c++ class

我想创建一些基于文本的足球经理游戏,至少试一试。经过长时间的思考和一些尝试,我仍然不确定类的结构。我的第一个想法是创造这样的东西:

class Player
{
private:
    Team team:
};

class Team
{
    vector<Player> playerlist;
};

你觉得用这种方式直接评估或使用像这样的指针是聪明的吗?

class Player
{
private:
    Team* team:
};

class Team 
{
    vector<Player*> playerlist:
};

然后我不知道我是否应该使用向量或列表,考虑到传输将改变长度,向量将改变存储在其中的玩家的地址。所以指向这个向量的指针可能是一个问题。

所以我对此非常不确定,主要是由于我对C ++的不良体验。您认为设置它的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

尝试将课程分解为逻辑分组。我通常会发现一个好的方法就是写一篇关于游戏内容的简短段落。拆分所有名词 - 这些通常是类或属性。拆分所有动词 - 通常是方法。

玩家是否包含团队?或者一支球队是否包含球员?如果你想让玩家了解这个团队,你可以做这样的事情。

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;
};

我在这里考虑的另一件事是,球队不能创造球员。玩家应该由某种工厂创建,因为玩家可以随心所欲地来自团队,只要他们的合同允许! :d