多人游戏方法、设备和存储介质与流程

文档序号:16787523发布日期:2019-02-01 19:28阅读:385来源:国知局
多人游戏方法、设备和存储介质与流程

本申请涉及区块链游戏技术领域,具体涉及一种多人游戏方法、设备和存储介质。



背景技术:

当前的多人在线游戏通常由一个中心化的服务端来判定玩家的输赢、生成游戏的结果,以竞猜类的游戏为例,服务端可以联合某一玩家进行作弊,甚至自行伪造一个虚拟的玩家骗取游戏的奖励,现有的方案对于上述服务端缺乏保障游戏公平公正的约束。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种利用区块链保障多人游戏公平公正的多人游戏方法、设备和存储介质。

第一方面,本发明提供一种适用于区块链节点的多人游戏方法,包括:

接收若干用户端分别发送的游戏参与确认信息,直至满足预定的游戏开局条件,触发第一合约进入游戏开局状态;其中,游戏参与确认信息包括记录到第一区块链上的加密的内容信息;

在预定时间内接收各用户端分别发送的记录到第一区块链上的解密验证信息,并根据各解密验证信息对各加密的内容信息进行解密验证;

根据通过验证的各内容信息和预定的游戏规则生成游戏结果并输出。

第二方面,本发明提供一种适用于用户端的多人游戏方法,包括:

生成包括加密的内容信息的游戏参与确认信息,将加密的内容信息记录到第一区块链上,并将游戏参与确认信息发送至第一区块链网络的节点;

生成解密验证信息并记录到第一区块链上;

在各用户端分别发送的游戏参与确认信息满足预定的游戏开局条件、触发第一合约进入游戏开局状态后,在预定时间内向第一合约发送解密验证信息,以供第一合约根据各用户端分别发送的解密验证信息对相应的内容信息进行解密验证,并根据通过验证的各内容信息和预定的游戏规则生成游戏结果并输出。

第三方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的多人游戏方法。

第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的多人游戏方法。

本发明诸多实施例提供的多人游戏方法、设备和存储介质通过在多人游戏中由各用户端在游戏开局前将加密的内容信息记录到区块链上并发送至合约、将解密验证信息同样记录到区块链上并在开局后发送至合约,使合约只能在多人游戏开局后解密验证获得无法篡改的内容信息,从而既无法联合某一玩家作弊,也无法伪造一个虚拟玩家骗取游戏奖励,保障了多人游戏的公平公正;

本发明一些实施例提供的多人游戏方法、设备和存储介质进一步通过冻结保证积分,约束玩家公开自己加密的内容信息,从而进一步保障了多人游戏的公平性;

本发明一些实施例提供的多人游戏方法、设备和存储介质进一步通过在解密验证前将分组结果写到区块链上,保障了分组的公平性和不可篡改性,从而保障了多人游戏的公平性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例中多人游戏的场景示意图。

图2为本发明一实施例提供的一种多人游戏方法的流程图。

图3为图2所示方法的一种优选实施方式的流程图。

图4为图2所示方法的一种优选实施方式的流程图。

图5为本发明一实施例提供的另一种多人游戏方法的流程图。

图6为图5所示方法的一种优选实施方式中步骤s21的流程图。

图7为图5所示方法的一种优选实施方式的流程图。

图8为本发明一实施例提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1为本发明一实施例中多人游戏的场景示意图。如图1所示,以石头剪刀布的猜拳游戏为例,对本发明所提供的多人游戏方案的应用场景作示例性阐述:

在游戏开局前的第一阶段,每个玩家的用户端在向第一区块链的第一合约接单后,分别将出拳内容加密后写到第一区块链上,并通知第一合约,第一合约根据预定的开局条件触发游戏开局:

例如,玩家甲的用户端接单参与游戏后,选择出石头,用户端生成加密的出拳内容h11=hash(石头+r1),以及h12=hash(r1),将包括h11和h12的加密出拳内容写到第一区块链上,并向第一合约发送包括加密出拳内容的游戏参与确认信息;玩家乙的用户端接单参与游戏后,选择出剪刀,用户端生成加密的出拳内容h21=hash(剪刀+r2),以及h22=hash(r2),将包括h21和h22的加密出拳内容写到第一区块链上,并向第一合约发送包括加密出拳内容的游戏参与确认信息;……;玩家癸的用户端接单参与游戏后,选择出布,用户端生成加密的出拳内容h101=hash(布+r10),以及h102=hash(r10),将包括h101和h102的加密出拳内容写到第一区块链上,并向第一合约发送包括加密出拳内容的游戏参与确认信息;

第一合约在监测到满足预定的开局条件时,例如,等待未满5分钟即已有10个玩家接单并发送了游戏参与确认信息,达到预定的10人满员,或,虽然未满员但已等待5分钟或若干数量的区块高度,且确认参与的玩家超过1人,则触发游戏开局。

在游戏开局后的第二阶段,第一合约在预定的时间,例如20分钟内,接收各玩家的用户端分别发送的记录到第一区块链上的解密验证信息,进行解密验证并生成游戏结果:

例如,玩家甲的用户端将解密验证信息r1记录到第一区块链上,并在开局20分钟内发送给第一合约,第一合约通过r1对h11和h12进行验证,成功证明玩家甲的出拳内容为石头;

玩家乙在20分钟内未发送解密验证信息,则第一合约视玩家乙为弃权;

玩家丙在20分钟内向第一合约发送了r3′,导致第一合约验证失败,并且未在20分钟内向第一合约发送正确的解密验证信息r3,则第一合约同样视玩家丙为弃权;……;

玩家癸的用户端将解密验证信息r10记录到第一区块链上,并在开局20分钟内发送给第一合约,第一合约通过r10对h101和h102进行验证,成功证明玩家癸的出拳内容为布;

在完成全部的解密验证后,第一合约对所有通过验证的出拳内容按预定的游戏规则生成游戏结果:

例如,对通过验证的8个玩家的出拳内容进行两两判定输赢,每局胜方积3分、平局积1分、败方积0分,最后统计各玩家的积分排名;

又例如,按游戏开局前预定的分组进行淘汰制的胜负判定,决出最终胜利的玩家;

再例如,以类似于世界杯赛制的小组赛两两判定输赢、晋级后进行淘汰赛的混合赛制决出最终胜利的玩家,等等。

上述示例性阐述以石头剪刀布的猜拳游戏为例对本发明的多人游戏方案进行了示例性的阐述;在更多实施例中,还可以将游戏种类配置为其它常见的不同猜拳类游戏(例如划拳、行酒令等)、竞猜类游戏(例如足篮等体育比赛竞猜、电子竞技竞猜等)、解密类游戏、知识问答类游戏等等;可以将加密算法配置为本领域常用的其它不同的加密算法,并配置相对应的解密验证信息;可以将开局条件配置为任意的不同人数、不同时长,或其它本领域常用的开局条件;以及,根据具体的游戏种类将游戏规则配置为本领域常用的不同游戏规则,均可实现相同的技术效果。

以下将结合图2-7详细介绍本发明提供的各项多人游戏方案。

图2为本发明一实施例提供的一种多人游戏方法的流程图。

如图2所示,在本实施例中,本发明提供一种适用于区块链网络节点的多人游戏方法,包括:

s12:接收若干用户端分别发送的游戏参与确认信息,直至满足预定的游戏开局条件,触发第一合约进入游戏开局状态;其中,游戏参与确认信息包括记录到第一区块链上的加密的内容信息;

s14:在预定时间内接收各用户端分别发送的记录到第一区块链上的解密验证信息,并根据各解密验证信息对各加密的内容信息进行解密验证;

s16:根据通过验证的各内容信息和预定的游戏规则生成游戏结果并输出。

具体地,在步骤s12中,在一种实施方式中,如上述石头剪刀布的游戏方案所述,可以由用户端在向第一合约接单后,将加密的内容信息写到第一区块链上,再向第一合约发送游戏参与确认信息;

在另一种实施方式中,还可以由用户端直接将游戏参与确认信息发送至第一合约,再由第一合约将游戏参与确认信息中的加密的内容信息打包写到第一区块链上。

其中,内容信息的加密方式可以配置为任意的非对称加密算法,并在加密时配置随机数,以避免其它玩家或第三方通过遍历所有可能的内容信息选项对写在第一区块链上的加密内容信息进行解密。

在步骤s14中,在一种实施方式中,如上述石头剪刀布的游戏方案所述,可以由用户端自行将解密验证信息写到第一区块链上,再发送至第一合约;

在另一种实施方式中,还可以由用户端直接将解密验证信息发送至第一合约,再由第一合约打包写到第一区块链上。

其中,当内容信息的可选项数量较少时,例如在石头剪刀布中只有石头、剪刀、布该三种可选项时,解密验证信息可以只包括第一随机数,第一合约可以通过遍历内容信息的各可选项来进行解密验证;而当内容信息的可选项数量较多时,则解密验证信息还应该包括内容信息,以避免第一合约进行大量的遍历计算。

上述实施例通过在多人游戏中由各用户端在游戏开局前将加密的内容信息记录到区块链上并发送至合约、将解密验证信息同样记录到区块链上并在开局后发送至合约,使合约只能在多人游戏开局后解密验证获得无法篡改的内容信息,从而既无法联合某一玩家作弊,也无法伪造一个虚拟玩家骗取游戏奖励,保障了多人游戏的公平公正。

在一优选实施例中,步骤s12还包括:根据游戏参与确认信息在对应的用户账户中冻结保证积分;

步骤s14还包括:在验证成功后,解冻保证积分;以及,在预定时间内未验证成功,则罚没保证积分。

具体地,由于步骤s12中玩家所提供的内容信息是通过加密的,若在步骤s14中,玩家因某些原因不提供解密验证信息,则会导致其他玩家的游戏结果受到影响,例如原本的赢家可能会变成输家。因此,通过罚没保证积分的手段,一方面可以约束玩家公开自己加密的内容信息,进一步可选地,另一方面还可以通过所罚没的积分对其他玩家进行补偿。

上述实施例进一步通过冻结保证积分,约束玩家公开自己加密的内容信息,从而进一步保障了多人游戏的公平性。

在一优选实施例中,步骤s12还包括:根据游戏参与确认信息在对应的用户账户中扣除奖励积分。

具体地,奖励积分可以全部用于奖励获胜的玩家;也可以部分用于奖励获胜的玩家、部分用于维护游戏的运营;还可以部分用于支付手续费或矿工费,等等。

在一优选实施例中,游戏规则包括以下的任意一项:

对通过验证的各所述出拳内容两两判定胜负,并统计各用户的总成绩;

在进行所述解密验证前进行随机的杯赛制分组,并将分组结果记录至第一区块链上,根据所述分组对通过验证的各所述出拳内容进行胜负判定;

根据混合赛制对通过验证的各所述出拳内容判定胜负。

图3为图2所示方法的一种优选实施方式的流程图。如图3所示,在一优选实施例中,在步骤s14之前还包括:

s13:进行随机分组,并将分组结果记录至第一区块链上。

具体地,为了避免分组时进行作弊,应当在解密验证前进行分组,并通过将分组结果写到区块链上,确保了分组的不可篡改性。

上述实施例进一步通过在解密验证前将分组结果写到区块链上,保障了分组的公平性和不可篡改性,从而保障了多人游戏的公平性。

图4为图2所示方法的一种优选实施方式的流程图。如图4所示,在一优选实施例中,步骤s16包括:

s161:根据通过验证的各所述内容信息和预定的游戏规则生成单轮游戏结果;

s163:判断单轮游戏结果是否最终游戏结果:

否,则返回步骤s12,进入下一轮游戏;

是,则执行步骤s165:输出游戏结果。

其中,在本实施例中,游戏结果的输出具体配置为将游戏结果写到第一区块链上;在更多实施例中,还可以通过本领域常用的其它方式输出游戏结果。

具体地,以游戏种类配置为黑白配为例,玩家可以选择的内容信息为黑或白:

在每一轮中,若出黑的玩家和出白的玩家数量均不少于3个,则淘汰数量多的一方,进入下一轮游戏;

若其中一方数量少于3个,则剩余的2个或1个玩家为胜利方,游戏结束;

若连续10轮未能淘汰玩家,则所有玩家均为胜利方,游戏结束。

在更多实施例中,还可以将游戏种类配置为其它的任意游戏,例如石头剪刀布每一轮重新出拳,等等。

进一步优选地,该多人游戏还可以允许玩家在中间轮数通过缴纳积分加入,返回步骤s12时还包括:接收若干用户端分别发送的加入请求信息,根据加入请求信息在对应的用户账户中扣除相应的积分。

具体地,同样以上述黑白配的多人游戏为例,例如第一轮中有100位玩家参与,其中5位玩家未及时提供解密验证信息,64位玩家出黑、31位玩家出白,则第一轮淘汰了69位玩家,剩余31位玩家晋级第二轮;

此时,在第二轮的步骤s12阶段,第一轮晋级的31位玩家可以选择是否继续参与第二轮游戏,而局外玩家也可以通过缴纳规则预定数量的积分直接加入第二轮游戏:例如,有6位晋级的玩家选择不再继续参与第二轮游戏,而有5位局外玩家选择了缴纳积分加入第二轮游戏,则第二轮的最终开局人数为30;

更进一步地,还可以允许淘汰的玩家通过缴纳规则指定数量的积分复活,继续参加第二轮游戏。

其中,游戏轮数越高,则中途加入或复活所需缴纳的积分越多。

进一步优选地,当每个玩家所缴纳的奖励积分全部或部分累积在奖池中时,主动离场的玩家可以获得全部或部分的当前奖池人均积分,局外加入或局内复活的玩家应该缴纳高于当前奖池人均积分的积分。

例如,参与第一轮游戏的10个玩家每人缴纳1个奖励积分,全部累积在奖池中,当第一轮游戏结束时,淘汰5位,剩余5位,奖池累积积分为10个,当前奖池人均积分为2个;其中一位玩家决定不再继续参与第二轮游戏,则该玩家可以获得2*80%=1.6个积分,另有1位局外玩家选择直接加入,需要缴纳2*120%=2.4个积分,还有1位淘汰的玩家选择缴纳积分复活,同样需要缴纳2*120%=2.4个积分,奖池累积积分变为13.2个,第二轮游戏的玩家数量为6位。

上述80%的第一比例和120%的第二比例仅为示例,在更多实施例中,还可以根据实际需求将离场获得的当前奖池人均积分的第一比例配置为不大于100%的任意比例、将中途加入或复活所需缴纳的当前奖池人均积分的第二比例配置为不低于100%的任意比例,可实现相同的技术效果。

在一优选实施例中,内容信息包括多轮游戏的每一轮内容信息。具体地,该实施例的多轮多人游戏方法与图4所示的多轮多人游戏方法的区别在于:

图4所示的方法中,玩家在每一轮单独指定本轮的内容信息,在下一轮的游戏开局前阶段决定是否参与下一轮游戏;例如,玩家在第一轮开局前指定第一轮出“布”,在第二轮决定参与后指定出“石头”,在第三轮决定不再继续参与游戏;

而在本实施例中,玩家在第一轮即指定若干轮的内容信息,并默认为参与所指定内容信息的若干轮;例如,玩家在第一轮开局前指定第一轮出“布”、第二轮出“石头”、……第八轮出“剪刀”,并默认为在没有淘汰也没有主动退出时参与八轮游戏。

进一步优选地,步骤s16包括:

s166:根据当前轮次的内容信息和预定的游戏规则生成当前轮次的游戏结果,判断游戏是否结束:

否,则执行步骤s167:在预定的第一时长内接收记录到第一区块链上的内容变更请求信息;

s168:在预定的第二时长内接收记录到第一区块链上的变更解密验证信息;

s169:根据变更解密验证信息对内容变更请求信息进行解密验证,并在验证成功后更改对应的内容信息;

返回步骤s166。

具体地,同样以玩家在第一轮开局前指定了八轮剪刀石头布的内容信息为例,在本实施例中,当玩家在前一轮未淘汰时,可以在预定的第一时长内发送内容变更请求信息以变更所指定的后一轮或后几轮的内容信息,并在预定的第二时长内提供用于对加密变更内容进行解密验证的变更解密验证信息,从而完成对预指定的后一轮或后几轮的内容信息的变更。

图5为本发明一实施例提供的另一种多人游戏方法的流程图。图5所示的方法可以配合图2所示的方法执行。

如图5所示,在本实施例中,本发明还提供一种适用于用户端的多人游戏方法,包括:

s21:生成包括加密的内容信息的游戏参与确认信息,将加密的内容信息记录到第一区块链上,并将游戏参与确认信息发送至第一区块链网络的节点;

s23:生成解密验证信息并记录到第一区块链上;

s25:在各用户端分别发送的游戏参与确认信息满足预定的游戏开局条件、触发第一合约进入游戏开局状态后,在预定时间内向第一合约发送解密验证信息,以供第一合约根据各用户端分别发送的解密验证信息对相应的内容信息进行解密验证,并根据通过验证的各内容信息和预定的游戏规则生成游戏结果并输出。

具体地,图5所示方法的游戏原理可参照图1-2所示的方法,此处不再赘述。

图6为图5所示方法的一种优选实施方式中步骤s21的流程图。如图6所示,在一优选实施例中,步骤s21包括:

s211:生成内容信息和第一随机数;

s213:根据内容信息和第一随机数生成第一哈希值,根据第一随机数生成第二哈希值;

s215:将包括第一哈希值和第二哈希值的加密的内容信息记录到第一区块链上;

s217:生成包括加密的内容信息的游戏参与确认信息,并发送至第一区块链网络的节点。

其中,解密验证信息包括第一随机数。

图6所示的方法可配合图1-2所示方法的部分实施方式执行,原理可参照图1-2所示的方法,此处不再赘述。

优选地,解密验证信息还包括内容信息。

图7为图5所示方法的一种优选实施方式的流程图。图7所示的方法可配合图4所示的方法执行。

如图7所示,在一优选实施例中,上述方法还包括:

s26:判断单轮游戏结果是否最终游戏结果;以及,

s27:判断当前用户是否在本轮淘汰:

否,则返回步骤s21,进入下一轮游戏;

是,则游戏结束,获取游戏结果。

在一优选实施例中,内容信息包括多轮游戏的每一轮内容信息。

进一步优选地,上述方法还包括:在多人游戏结束当前轮次、游戏未结束且当前玩家尚未淘汰时,在预定的第一时长内向第一合约发送记录到第一区块链上的内容变更请求信息;

在预定的第二时长内向第一合约发送记录到第一区块链上的变更解密验证信息,以供第一合约根据变更解密验证信息对内容变更请求信息进行解密验证,并在验证成功后更改对应的内容信息。

图8为本发明一实施例提供的一种设备的结构示意图。

如图8所示,作为另一方面,本申请还提供了一种设备800,包括一个或多个中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有设备800操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本公开的实施例,上述任一实施例描述的多人游戏方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行多人游戏方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。

作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的多人游戏方法。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1