2016-11-25 43 views
0

好吧,所以我在類中有一個玩家名稱向量以及從文件讀取的正常運行的註冊和登錄系統。 (例如:Allura.txt或Bob.txt)。 用戶名和密碼被保存分隔由一個「;」,這是我與getline函數的分隔符使用:從向量C++調用玩家統計信息

getline(ReadFile, filename, ';'); 
getline(ReadFile, filepass, ';'); 

現在我被困。每當玩家輸入「統計數據」時,我都會創建一個命令。 什麼是C++知道哪個玩家正在輸入統計數據的最佳解決方案,並且在不提示玩家定義他們的名字以便每次搜索向量時從該向量打印該玩家的統計數據?我可以使用臨時變量,但如果有多個玩家輸入統計數據,則該變量將被覆蓋到下一個玩家。如果需要,我會更清楚地解釋;我好幾天一直對此感到困惑。

+0

主營: http://pastebin.com/61WkGFuM Character.h類文件: http://pastebin.com/v0Aa4hrz Character.cpp源文件: http://pastebin.com/y7HWZ9cY –

回答

0

您可能希望您的用戶界面成爲某種有限狀態機(FSM)。您現在有兩種狀態:已註銷並已登錄。

當用戶成功運行「登錄」命令時,UI會記錄哪個用戶已登錄,並進入「stats」命令可用的狀態。然後,「統計信息」可以使用存儲的用戶名來顯示用戶的統計信息。

這裏有一個很好的指南FSM設計:http://gameprogrammingpatterns.com/state.html

+0

謝謝。從這裏非常複雜。該程序現在檢測玩家是否已登錄使用統計命令,但如果我在向量中有多個玩家名稱,仍然無法檢測哪個玩家輸入了統計命令。不明白遊戲如何知道使用容器時哪個玩家 –