一种公平性的桌面游戏数字化系统及验证方法与流程
本发明涉及计算机技术领域,更具体的说是涉及一种公平性的桌面游戏数字化系统及验证方法。
背景技术:
休闲娱乐在人们的日行生活中占据了越来越多的位置,利用数字化技术为人们提供更高效、更高质量的娱乐设施和工具来促进人们的生活质量是一个有意义的事情。
尽管当下有许多基于智能设备和自动机械实现的桌面游戏系统,但人们没有办法对其公平性进行验证,从而会不可避免的产生利用这些系统进行作弊的行为,如:自动麻将机、自动发牌机等。
因此,如何提供一种公平性的桌面游戏数字化系统及验证方法是本领域技术人员亟需解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种公平性的桌面游戏数字化系统及验证方法,本发明通过数字加密技术对发牌过程实现随机并可让每个游戏的参与者对随机性进行验证、用数字加密技术对游戏过程的通讯过程进行加密保证通讯的机密性等来保障游戏过程的公平性,避免作弊行为的发生。
为了达到上述目的,本发明采用如下技术方案:
主机随机生成第一随机控制数值,并接收玩家终端发送的至少一个第二随机控制数值;
将所述第一随机控制数值、所述第二随机控制数值分别进行hash运算,得到与之对应的hash值;
所述主机根据预设的第一函数得到随机牌序,其中所述第一函数为所述第一随机控制数值、第二随机控制数值与随机牌序的映射关系;
对随机牌序进行hash运算,得到对应的hash值;
游戏开局前,将第一随机控制数值、第二随机控制数值和随机牌序的hash值公示;
游戏终局,所述玩家终端可验证所述hash值、以及随机牌序与当前随机牌序是否一致。
通过上述技术方案,本发明的技术效果在于:主机与玩家终端交互过程传输的信息为加密信息,保证通讯的机密性,并且玩家能够根据终端显示的数据对游戏过程中的发牌随机性进行验证。
优选的,在上述的一种公平性的桌面游戏数字化验证方法中,所述第二随机控制数值为所述玩家终端随机生成值、玩家选择值、或所述玩家终端随机生成值和所述玩家选择值通过计算获得值中的一种。
通过上述技术方案,本发明的技术效果在于:第二随机控制数值的确定提高了随机性和便利性。
进一步,hash函数主要可以解决以下两个问题:在某一特定的时间内,无法查找经hash操作后生成特定hash值的原值;公开原值后,可以容易验证公开的hash是否由原值所生成。这样就解决了事前对原值公示而不泄漏原值,事后可验证的问题。
优选的,在上述的一种公平性的桌面游戏数字化验证方法中,所述主机与所述玩家终端之间的通信经过加密。
优选的,在上述的一种公平性的桌面游戏数字化验证方法中,验证所述hash值具体步骤包括:验证其他所述玩家终端的所述第二随机控制数值对应的hash值是否是所述第二随机控制数值得到。
优选的,在上述的一种公平性的桌面游戏数字化验证方法中,验证随机牌序与当前随机牌序是否一致具体步骤:
将所述随机牌序通过hash运算,与所述当前随机牌序hash值进行比较。
优选的,在上述的一种公平性的桌面游戏数字化验证方法中,验证随机牌序与当前随机牌序是否一致具体步骤:
验证所述第二随机控制数值对应的hash值后,利用所述第一随机控制数值和所述第二随机控制数值通过所述第一函数进行计算得到随机牌序,比较随机牌序和当前随机牌序。
一种公平性的桌面游戏数字化系统,包括:主机和至少一个玩家终端;所述玩家终端与所述主机通过有线或无线方式进行数据交互。
优选的,在上述的一种公平性的桌面游戏数字化系统中,所述主机包括:
控制模块,用于协调和管理所述主句内部各个模块的协作;
主机随机生成模块,用于生成第一随机控制数值;
主机计算模块,用于根据所述主机随机模块生成的第一随机控制数值和由每一个所述玩家终端发来的第二随机控制数值,计算生成随机牌序;并计算随机牌序的hash值;
主机通讯模块,负责向所述玩家终端传输数据并接收各个玩家终端传来的数据,并对传输过程的数据进行加密;
公共显示模块,显示当前随机牌序的hash值、第一随机控制数值的hash值以及第二随机控制数值的hash值。
优选的,在上述的一种公平性的桌面游戏数字化系统中,所述玩家终端包括:
独立输入模块,玩家输入玩家选择值;
终端随机生成模块,用于生成玩家终端生成值;
终端计算模块,用于根据终端随机生成模块生成的玩家终端生成值和所述玩家输入的玩家选择值的得到第一随机控制数值;并计算第一随机控制数值的hash值;
终端通讯模块,负责向所述主机传输数据并接收所述主机传来的数据,并对传输过程的数据进行加密;
独立显示模块,显示接收所述主机通讯模块发送的子序列。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种公平性的桌面游戏数字化系统及验证方法,本发明通过数字加密技术对发牌过程实现随机并可让每个游戏的参与者对随机性进行验证、用数字加密技术对游戏过程的通讯过程进行加密保证通讯的机密性等来保障游戏过程的公平性,避免作弊行为的发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明的方法流程图;
图2为本发明的系统框架图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例公开了一种公平性的桌面游戏数字化验证方法,如图1所示,包括如下具体步骤:
以下以扑克牌为例:
s1:主机随机生成第一随机控制数值rn0,并接收玩家终端发送的至少一个第二随机控制数值rnp;
整副扑克牌的所有可能序列集合记为ω={ωi(i=1,2,...,m)},对于ωi∈ω,为54张扑克全排列中的一种序列。其代表一副随机洗匀的扑克。特别的,记
由主机随机生成模块生成第一随机控制数值rn0;
生成过程使用如下算法:
s101::记临时序列a=ω1,待生成随机序列记为b,r表示a中的元素个数,初始值为54;
s102:调用随机函数rand(),生成[1,r]之间的随机整数s;
s103:将a中排在位置s的元素(即对应花色的扑克牌)移入b中,作为b中序列的最后一个元素;
s104:将r-1,并返回上述第2步骤,直至r为0;
s105:让rn0=b,即得到第一随机控制数值rn0。
其中,第二随机控制数值rnp为每个玩家选择一个数值(或序列,以下统称数值);或者由玩家使用的玩家终端的终端随机生成模块生成一个数值;
或者,每一个游戏参与者选择一个数值rnp1,同时由其使用终端的随机生成模块生成一个随机数值rnp2,由rnp1和rnp2生成rnp(p=1,2,...,p),p游戏参与的总人数。具体步骤为:
在每一个游戏参与者所使用的终端显示模块输入任意数值rnp1(p=1,2,...,p)
每一个游戏参与者所使用的玩家终端的终端随机生成模块调用随机函数rand(),生成rnp2;
rnp=rnp1×rnp2(p=1,2,...,p)。
s2:将第一随机控制数值、第二随机控制数值进行hash运算,得到对应的hash值;
其中,当前随机牌序为系统从整副扑克牌的所有可能序列集合ω={ωi(i=1,2,...,m)}随机抽取的其中一个序列。
进行hash运算目的是在公共显示模块上经过hash运算后的hash值,hash(摘要)函数提供了这样一种计算过程:输入一个长度不固定的字符串,会返回一串固定长度的字符串,又称hash值(摘要值)。
也就是说,hash值具有加密属性,在游戏进行中显示在公共显示模块具有保密性。
s3:主机根据预设的第一函数得到随机牌序,其中第一函数为第一随机控制数值、第二随机控制数值与随机牌序的映射关系;
其中,第一函数l=f{rn0,rn1,rn2,...,rnp},该函数f及其值l具有以下性质:
第一函数f是事先约定好的,其规则由每一个牌局参与者事前所知悉。
记整副牌的所有可能组合序列集合为ω={ωi(i=1,2,...,m)},记集合l={li|i=1,2,...,m}为第一函数l=f{rn0,rn1,rn2,...,rnp}的所有可能取值,则ω=l。
由此,整副牌的任一可能组合都有唯一的l值与之对应;任一可能的l值都有唯一的整副牌的一种组合与之对应。
s4:游戏开局前,将第一随机控制数值、第二随机控制数值和随机牌序的hash值公示;
s5:游戏终局,玩家终端验证hash值、以及随机牌序与当前随机牌序是否一致。
进一步,第二随机控制数值为玩家终端生成值、玩家选择值、或终端玩家生成值和玩家选择值通过计算获得值中的一种。
以终端玩家生成值和玩家选择值通过计算获得值更能保证游戏的公平性,玩家选择值和终端玩家生成值经计算获得,其中加入了玩家自主选择和玩家终端的生成,大大提高了第二随机控制数值的随机性。
进一步,主机与玩家终端之间的通信经过加密。
进一步,验证hash值具体步骤包括:验证其他玩家终端的第二随机控制数值对应的hash值是否是第二随机控制数值得到。
其中,玩家能够保证自己对应的玩家终端生成的第二随机控制数值的随机性,还需验证其他玩家终端在公共显示终端上显示的hash值是否是根据预设的方法得来的。
进一步,验证随机牌序与当前随机牌序是否一致具体步骤:
将随机牌序通过hash运算,与当前随机牌序hash值进行比较。
具体地,游戏结束,玩家已知本局游戏的随机牌序(指的是每个玩家根据手中牌的点数以及顺序得到的牌序)进行hash运算与主机给出的当前随机牌序(发牌前主机得到的牌序)的hash值进行比对。
进一步,验证随机牌序与当前随机牌序是否一致具体步骤:
验证第二随机控制数值对应的hash值后,利用第一随机控制数值和第二随机控制数值通过第一函数进行计算得到随机牌序,比较随机牌序和当前随机牌序。
玩家可以根据每个玩家的第二随机控制数值和第一随机控制数值,代入第一函数中得到随机牌序,比对随机牌序与主机给出的当前随机牌序,其中这里比对可以是人工比对也可以是通过图像识别算法进行比对。
具体地,主机计算模块依据以下规则和方法,根据rn0和rnp,其中,p游戏参与的总人数,计算出最终的该局整副牌序。
记整副牌数量为t,此时t=54;
计算
根据lnp的值,将序列rn0截取为p个子序列dnp,其满足dnp的牌数为lnp,其序列中的牌为依序截取的牌,其在子序列中的排序与在rn0中相同;
将lnp从小到大排序,按从小到大记为p′,按照其排序结果将子序列dnp进行排序,记为dnp′;
按照以下算法计算出最终的该局整副牌序:
i依次从每一个子序列dnp′中一张牌,放入新的序列dn中;
ii当某一子序列没有牌时,直接抽取下一子序列的牌;
iii当全部子序列都被抽到后,即抽完一轮后,重复i步骤,直至所有子序列的牌被抽完;
iv序列dn即为最终的该局整副牌序。
一种公平性的桌面游戏数字化系统,如图2所示,包括:主机和至少一个玩家终端;玩家终端与主机通过有线或无线方式进行数据交互。
进一步,主机包括:
控制模块,用于协调和管理主句内部各个模块的协作;
主机随机生成模块,用于生成第一随机控制数值;
主机计算模块,用于根据主机随机模块生成的第一随机控制数值和由每一个玩家终端发来的第二随机控制数值,计算生成随机牌序;并计算随机牌序的hash值;
主机通讯模块,负责向玩家终端传输数据并接收各个玩家终端传来的数据,并对传输过程的数据进行加密;
公共显示模块,显示当前随机牌序的hash值、第一随机控制数值的hash值以及第二随机控制数值的hash值。
进一步,玩家终端包括:
独立输入模块,玩家输入玩家选择值;
终端随机生成模块,用于生成玩家终端生成值;
终端计算模块,用于根据终端随机生成模块生成的玩家终端生成值和玩家输入的玩家选择值的得到第一随机控制数值;并计算第一随机控制数值的hash值;
终端通讯模块,负责向主机传输数据并接收主机传来的数据,并对传输过程的数据进行加密;
独立显示模块,显示接收主机通讯模块发送的子序列。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除