2016-11-25 42 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

谢谢。从这里非常复杂。该程序现在检测玩家是否已登录使用统计命令,但如果我在向量中有多个玩家名称,仍然无法检测哪个玩家输入了统计命令。不明白游戏如何知道使用容器时哪个玩家 –