2011-03-17 63 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