我有一個非常簡單的棋盤遊戲我已經建立在C++中。目前,玩家被分配取決於玩家在遊戲數量選手編號(1,2,3 ... N)。相當標準。球員和他們的數據保存在一個文件中,其中包括他們的名字和他們的號碼。然後我通過用轉向文件讀取一個目錄來處理轉向。轉牌由球員提交併且只包含他們的球員名字和他們的任務/轉身。將來,我打算讓玩家號碼改變,以便混合遊戲的順序。提高棋盤遊戲依次處理
(如果你是一個遊戲玩家板,認爲凱呂斯或阿格里科拉)
玩家在應用程序開始讀入。然後我給出一個命令並進行處理。基本上,我只是簡單地閱讀轉牌的目錄,一個一個,然後把這個轉換成一個球員的名字。就目前而言,依次沒有訂單處理。播放器3可播放2.
走之前我想這是不是一個偉大的設計,所以我想出了以下解決方案:
- 因爲我比較了該轉向與哪個球員,插入變成
std::map<int, Turn>
,關鍵是玩家數量。 - 後,我收集所有的圈,搜索玩家N,從1開始,地圖中和處理輪到他。
- 我在這裏再次遍歷玩家列表,因爲我需要將玩家與玩家號碼進行匹配,以便處理回合。
- 這樣做,直到我處理的所有玩家。
有沒有更好的方式來做到這一點?這似乎是kludgey和大量的開銷。
謝謝!
注:輪到處理方法需要在一個Player class
(其表示播放器的統計信息文件)和一個struct
表示從轉文件中讀取轉彎。
由於玩家人數少,因此迭代簡單的數組類型可能已經足夠了。在這種情況下,複雜的結構往往比原始的結構慢。 –