Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于web的silverlight纸牌游戏的服务器实现_C#_Silverlight - Fatal编程技术网

C# 基于web的silverlight纸牌游戏的服务器实现

C# 基于web的silverlight纸牌游戏的服务器实现,c#,silverlight,C#,Silverlight,我必须使用silverlight开发一个浏览器内的纸牌游戏。这场比赛只需要四名选手。现在我在网上看到的是,我必须在服务器上实现游戏逻辑,并通过向服务器发送webservice请求来处理游戏事件。 我的问题是,我们如何实现一个服务器,它可以处理游戏[loop]的多个实例。我不知道服务器将如何处理4人一组的单独游戏实例。 我希望所有人都能连接到服务器,然后在选择其他3名玩家后能够运行游戏实例。为了进一步澄清,随附了一份“吸漆图”。那么我如何才能做到这一点呢 嗯,有很多东西需要考虑:持久性、并发性、安

我必须使用silverlight开发一个浏览器内的纸牌游戏。这场比赛只需要四名选手。现在我在网上看到的是,我必须在服务器上实现游戏逻辑,并通过向服务器发送webservice请求来处理游戏事件。 我的问题是,我们如何实现一个服务器,它可以处理游戏[loop]的多个实例。我不知道服务器将如何处理4人一组的单独游戏实例。
我希望所有人都能连接到服务器,然后在选择其他3名玩家后能够运行游戏实例。为了进一步澄清,随附了一份“吸漆图”。那么我如何才能做到这一点呢

嗯,有很多东西需要考虑:持久性、并发性、安全性、并行游戏会话的可能性、玩家同步逻辑等等


但一般来说,服务器应该以某种方式跟踪所有游戏会话,并为它们分配唯一标识符。它还应该为所有活动客户端分配标识符。然后,每个客户端使用自己的标识符和会话标识符来请求其他玩家的移动或发布自己的移动。所有移动都必须有时间戳,以便客户可以获得更新。

您的问题太广泛了。请针对您的实际问题更具体一些。如果您接受这实际上是基于回合的,而不是实时的,那么您只需将其视为数据库问题。使用表格跟踪游戏、玩家、回合、手牌、牌、分数等的实例。然后每个Silverlight客户端只需定期更新以保持每个屏幕的刷新。然后您只需跟踪游戏状态,例如游戏表中的各种状态字段。您的服务器逻辑只是变成了一个状态引擎。@HiTech我考虑过您的想法,但重复探测服务器[DB]的更改是否有效?如果其中一个玩家不正常地断开连接,阈值是多少?在你真正看到某些东西太慢之前,不要挂断效率。您通常会在服务器的内存中缓存最近/频繁的数据。重新断开连接:您的状态引擎只需要考虑缺少响应。毕竟,这些都只是数据: