2011-03-17 61 views
1

我正在制作一个C++程序,将模拟一个幻想足球草案..我已经使用链表来创建一个队名列表,为每个参与者草案。现在,我想知道我应该采用哪种方式来增加一支球队的球员给各自队伍的选秀权。我有足球运动员阅读文件,可以弄清楚如何让他们选择哪一个,但不知道如何将他们存储在各自的团队中。C++幻想足球草案计划 - 将球员加入球队

任何帮助,提前感谢 感谢

+0

随机提示:您可能想看看雅虎幻想体育系统的公开API。它提供了一个工作草案系统的一个很好的例子,你可以轻而易举地做到比他们的对象级结构更糟糕。 – BRFennPocock 2011-12-19 16:18:00

回答

1

那么,你应该有一个Team类;团队类应该有一个容器来保存玩家名称(另一个链接列表,比方说)。你现在的名单应该是队伍而不​​是弦乐队。

最终,玩家名称列表可能会升级为Player对象列表 - 但您希望定义另一个类别。

我知道这是含糊的,但它有帮助吗?

+0

是的,我相信我有点理解你在说什么,但是在他们插入队名之后,我会如何将它们存储到另一个课程中? – Mike 2011-03-17 01:02:11

+0

当你让Bob选择球员时,你会希望Bob的“Team”对象可用;称它为bobsTeam。当鲍勃选择每个玩家时,你可以调用bobsTeam.addPlayer(name); addPlayer()的实现将内部调用玩家名称的向量上的push_back()来添加新玩家。 – 2011-03-17 01:07:08

+0

我明白整个添加玩家的东西,所以我假设你说要将每个可拖动的玩家存储在一系列矢量中?我会如何去重新打电话给Bob的团队,然后再说出Joe的团队,因为直到用户输入这些名字时,我才会知道正在使用的名字。我希望这是有道理的。 – Mike 2011-03-17 01:13:23

0

看来你只是需要理解基本的C++容器好一点。

一种方法可能是将玩家从联盟中所有玩家的列表或阵列中移除,并将其添加到幻想玩家的列表或玩家阵列中。

class Player; // ... 

class FantasyPlayer 
{ 
public: 
    std::vector<Player> picks; // array of my picks 
}; 

std::vector<Player>   all_players;  // all available picks 
std::vector<FantastyPlayer> fantasy_players; // all pickers 

int iPicked = ...; // index of picked player in all_players 
int iPicker = ...; // index of fantasy player currently picking 

// add picked player to this fantasy player's pick list 
fantasy_players[iPicker].picks.push_back(all_players[iPicked]); 

// remove picked player from available players list 
all_players.erase(iPicked); 

另一个也许更容易的方式来处理它可能是直接从玩家自己引用“采集者”。

class FantasyPlayer; // ... 

class Player 
{ 
public: 
    Player() : owner(0) { /* empty */ } 
    FantastyPlayer* owner; // pointer to fantasy player who picked me 
}; 

std::vector<Player>   all_players;  // all available picks 
std::vector<FantastyPlayer> fantasy_players; // all pickers 


int iPicked = ...; // index of picked player in all_players 
int iPicker = ...; // index of fantasy player currently picking 

// create link between a player and its picker 
all_players[iPicked].owner = &(fantasy_players[iPicker]); 

这段代码是故意短暂和不完整的,但也许它会让你开始朝着正确的方向发展。祝你好运!

+1

这有助于一堆,非常感谢! – Mike 2011-03-23 18:38:38