一个经理类游戏的一般结构

General structure of the classes of a manager game

本文关键字:游戏 结构 一个      更新时间:2023-10-16

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

class Player
{
private:
    Team team:
};
class Team
{
    vector<Player> playerlist;
};

你认为用这种方式直接评估是明智的,还是用这样的指针来代替?

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

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

所以我对它很不确定,主要是因为我对c++的经验很差。你认为最好的安排方式是什么?

尝试将您的类分解为逻辑分组。我通常发现一个好的开始方式是写一段关于你的游戏是关于什么的简短段落。把所有的名词分开——这些通常是类或属性。把所有的动词分开——这些通常是方法。

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

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