简介: 我正在创建一些游戏,我想为它创建一个自动化测试。
游戏场景: 有r个房间,p个游戏玩家,gm游戏大师,t是总测试时长。每个房间都有自己的游戏大师,例如,如果有 5 个房间 - 将有 5 个大师。玩家随机选择房间进行游戏,房间大小是无限的,所以房间里同时有多少玩家并不重要。玩家从玩家池中取出。例如,我们有玩家池 = 100,我们希望只看到 30 名玩家同时玩。
问题:
将玩家带入随机房间的机制已经完成,但我想为每个玩家设置随机播放时间。这是我的大脑关闭的地方。好像我想将测试总时间设置为 30 分钟,我希望所有玩家都在那个时候完成游戏。因此,每当玩家从池中被带出并开始玩时,我都会设置游戏时间,如下所示:player1.play(10);
所以我在考虑某种算法,它可以为每个玩家设置随机时间,但它应该记住总测试时间并且不应该超过它。我的意思是玩家一个接一个来,测试应该在设定的时间内完成,玩家池也应该用尽(他们从池中取出并且永远不会返回)。
到目前为止我的想法:将测试总时间设置为持续时间,每次调用“播放”方法时,我们都会查看测试持续时间 - 还剩下多少时间?所以玩家游戏时间不会超过这个值。但是有一个问题,其他玩家也应该有时间玩。可能这意味着,我应该在测试开始之前在桌子之间分配玩家,并设置他们的总时间来测试持续时间并将其分配给每张桌子的玩家。但是由于他们可以在同一张桌子上并行播放,这很难实现。
抱歉发了这么长的帖子,只是想尽可能地描述它。有什么想法吗?