gpt4 book ai didi

algorithm - 在在线国际象棋游戏中,如何将延迟对时间控制的影响降到最低?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:49 34 4
gpt4 key购买 nike

我打算编写一个小型网络应用程序,其中两个玩家可以玩具有 Blitz 时间控制的国际象棋游戏。以下是移动过程如何进行的简短描述:

  1. 玩家 A 考虑采取什么行动
  2. 玩家 A 向我的服务器发送移动
  3. 我的服务器处理请求
  4. 我的服务器向推送服务器发送响应
  5. 推送服务器处理请求
  6. 推送服务器向玩家B发送响应
  7. 玩家 B 考虑采取什么行动

第 1 步将在玩家 A 的分配时间内运行,而第 7 步将在玩家 B 的分配时间内运行。对于其他步骤我能做些什么?有没有什么方法可以测量其他步骤花费了多少时间,并可能将结果添加到两个玩家的时钟中?

最佳答案

如果不信任客户,就无法做到这一点。

基本问题是低延迟的客户端可以假装高延迟以获得奖励时间。具有 100 毫秒往返延迟的客户端可能会假装具有 3 秒的 RTT,并使用这种欺骗将 6.9 秒的移动变成 4 秒的移动。协议(protocol)没有实际的方法来检测假装具有高延迟的客户端,除非客户端犯了一个错误(例如,当他们用 1 秒来移动时要求 3 秒延迟豁免)。

另一方面,如果您确实信任客户,您可以通过定期 ping 他们的机器并从他们的移动时间中扣除该时间来估计他们的 RTT。如果您真的信任客户,让他们用移动数据测量和报告耗时。

有很多方法可以管理这种信任/延迟惩罚权衡。您可以假设最小 RTT(50 毫秒?)并从所有内容中扣除。你可以把奖励时间放在时钟上。您可以让游戏面向用户的选项是“安全”还是“宽容”。

关于algorithm - 在在线国际象棋游戏中,如何将延迟对时间控制的影响降到最低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10965051/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com