雀魂吧 关注:193,917贴子:4,301,261

[太长不看]一种彻底堵住配牌质疑的方法

只看楼主收藏回复

老实说,现如今一番街的公开牌山生成代码完全就是为了恶心猫粮,包括天凤的公开也毫无意义。谁能确定你一番街实际上使用的就是这套代码呢?又如何保证种子是随机的?官方完全可以自动化设计大量配牌和早巡进张有偏向的开局。所以目前不管是猫粮还是一番街,仅能保证对局中不篡改牌山而已。
当然,这个帖子的目的不是跟那些又菜又倒霉的人共情,而是从算法的角度探讨如何确保牌山生成的绝对公平:
1. 制作一个牌山生成的网页:
就是一个简单的前端页面,输入明文种子,即可依据现有公开的随机算法生成对应的一套牌山。
2. 多方参与生成私密随机种子:
每个参与方(即四个玩家和官方)在开局时,各自选择提交一个随机数,所有随机数通过组合运算(例如XOR)生成最终的随机种子。每一方的选择都会彻底改变结果,这是你的自由意志决定的,所以随机得不能再随机了。
> 注:不必每局都要求玩家选择随机数,可以在匹配成功后仅对每位玩家询问一次,不会影响玩家体验。开局利用这个父种子通过另一个公开的随机算法生成一百套子种子(牌山),就足够使用了。
3. 公开随机种子的哈希值:
游戏开始前,将生成的随机种子的哈希值公开,确保种子在游戏进行中保密,牌山无法被玩家预测。公布哈希值可以让所有参与者提前知道有一个既定的种子存在,但不会暴露具体内容。
4. 生成发牌顺序:
服务器使用私密随机种子和牌山生成算法计算出牌山。
5. 游戏结束后验证:
游戏结束时,各方揭示各自选择的随机数和牌山生成种子。每个玩家都可以通过组合生成算法验证种子的随机性,并使用得到的种子和公开的生成算法验证发牌顺序的一致性。
总结:
相比现有仅在对局中提供牌山的SHA-256的方法,上述方法通过多方参与生成随机种子、公开种子的哈希值以及在游戏结束后揭示所有参与方的随机数,确保了随机种子的真实性和不可预测性,进而保证了牌山的随机性,从而彻底堵住了配牌质疑。


IP属地:黑龙江1楼2024-08-26 23:18回复
    太过复杂,我还是更喜欢每场切n张牌(n为每位玩家各自选择数字之和),只要保证系统无法针对玩家指定初始牌,质疑牌山也就无意义了,因为一开始给出的牌山排序不会变,其sha256码也不可能逆向解密


    IP属地:广东来自Android客户端2楼2024-08-27 01:19
    回复
      没啥意义,因为恶调,也就是运气不好是客观存在的,所以该骂还是骂


      IP属地:黑龙江来自Android客户端3楼2024-08-27 02:55
      回复
        没必要,雀魂一番街偷换牌山有什么意义?


        IP属地:安徽来自Android客户端4楼2024-08-27 04:35
        回复


          IP属地:内蒙古来自Android客户端5楼2024-08-27 07:18
          回复
            没必要质不质疑,雀魂控牌人所共知,要搞你直接拔线就好


            IP属地:中国香港6楼2024-08-27 07:26
            回复
              质疑的人根本看不懂这些没有本质区别
              就算牌山没问题,他们还能找匹配机制的问题:怎么天天给我排到一堆放铳率这么低胡牌率这么高的高手


              IP属地:上海来自Android客户端7楼2024-08-27 08:36
              回复
                “只要我输了就是游戏有问题,其他你说什么我都不听。”


                IP属地:江苏来自Android客户端8楼2024-08-27 08:58
                回复
                  对呀正常人应该都能理解人家不可能在游戏进行中去改牌山,这样做技术上应该也挺麻烦吧?人家想搞猫腻直接设计有偏向或者ai打过的牌普,根据ai的结果分配位置就行了就像其他游戏的不洗牌模式


                  IP属地:湖北来自Android客户端9楼2024-08-27 09:05
                  收起回复
                    你自己都说了谁能确定一定使用的就是这套代码,就这一句话你怎么改都是没意义的
                    我有一计,不如把麻将牌弄成透明的,这样就没法改牌山了


                    IP属地:吉林来自Android客户端10楼2024-08-27 12:26
                    收起回复
                      好好好,我之前也想过这个问题,想出来的方法几乎就跟你说的一样,而且我想了一下,这个方法实现起来应该没有什么困难的地方


                      IP属地:英国来自iPhone客户端11楼2024-08-27 14:37
                      回复
                        楼主这个构想数年前就有人在b站专栏提出了,但是没有运营商理会。玩家不能证明雀魂操纵牌山,雀魂尚未证明自己没操纵牌山,留下了太多抱怨和谩骂的余地。


                        IP属地:上海来自Android客户端12楼2024-08-27 14:53
                        回复
                          因为太长了,在这里回复一下10楼的疑问。
                          不是啊,楼主的方法可以解决这个问题啊。之所以现在的方法不行是因为生成牌山的种子完全由程序决定,所以哪怕最后公布出来让你去验证,你没法确定给你分配的这个种子一定是根据公开的代码随机生成的。但牌山生成的种子在楼主的方法中有一部分是自己决定的,这就确定了如果最后验证对的上,那就肯定是根据公开的代码生成的种子


                          IP属地:英国来自iPhone客户端13楼2024-08-27 14:56
                          回复
                            主要是它倒霉起来连着的,不吃完不结束,有种霉爆了的感觉


                            IP属地:江西来自Android客户端14楼2024-08-27 15:10
                            回复
                              质疑配牌的人都未必讲理,他们可能只是恶调了不爽而已怎么搞都会有人质疑的


                              IP属地:北京来自Android客户端15楼2024-08-28 08:03
                              回复