|
看到关于扑克室的讨论。我也来说说服务器处理的东西。虽然没多大意义。。
首先我们假设服务器端程序是公平公正的。
洗牌过程
策略一: 跟现场一样先定好所有牌的顺序,随机生成52张牌的全部顺序。比如数组C[0]..C[51],然后依次发给每个玩家。
策略二: 不洗牌,比如把牌按顺序放在一个数组C[0]..C[51],然后要给某个玩家发牌时生成随机数(0..51)并且判断这张牌没发出去的话,发给此用户。
似乎没有三了。
同理的公共牌根据洗牌策略1或者2发牌。
那么我们要讨论的问题来了。其实无论哪种策略,从程序的角度来讲,洗牌发牌过程一定需要使用到随机数生成,任意时间点产生的随机数都是不一样的(当然我们的范围只有52个),那么是不是可以认为每一次执行一个操作所使用的时间都会影响到下一张牌(策略二)或者下一手牌(策略一)的出现。
假设以上内容都是成立的,那么有意义么?似乎是没有意义的,因为我们无法得知哪个时间点产生的随机数对我们是有利的,哪个是有害的。而且即使万一你知道了那么由于网络延迟、主机负载等原因你也无法一点能点到那个时间点。
那么我到底想说什么呢?
1.我知道这里也挺多搞计算机的高手,如果是你设计一个network的服务器端你会如何设计呢?
2.因果报应啊。那么你所有遇到的BB都和你自己有关的。因为你上一手牌或者上一张牌的某个动作(call,r,f,b)所使用的时间导致了,当前这张牌的出现。那么是否可以在你特别倒霉的时候多等上几毫秒再行动呢?或者会影响下一手你不是那么倒霉呢?哈哈。说笑的。 |
|