一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种人机对弈方法、装置、设备及存储介质与流程

2021-10-19 21:52:00 来源:中国专利 TAG:例数 对弈 人机 装置 实施


1.本公开实施例涉及数据处理领域,尤其涉及一种人机对弈方法、装置、设备及存储介质。


背景技术:

2.随着人工智能的发展,人机对弈的使用越来越广泛。但是,在目前的人机对弈相关产品中,通常是预设一些不同等级的ai(人工智能)棋力模型,由用户根据自己的人为判断和选择,在每局开始前手动进行设置,这种方式依赖于用户自身的主观判断能力,通常会由于自身能力难以判断等原因导致等级选择错误,在对弈过程中难以较快让用户体会到棋逢对手的感觉,从而影响用户的对弈兴趣。


技术实现要素:

3.本公开实施例提供一种人机对弈方法、装置、设备及存储介质。
4.第一方面,提供一种人机对弈方法,包括:
5.在对弈过程中,记录第一方和第二方的落子位置,得到历史落子记录;
6.响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置和所述历史落子记录,生成所述第二方对应的第二落子策略;所述第二落子策略包括多个第二待选位置和每一所述第二待选位置对应的第二方胜率;
7.基于所述历史落子记录和所述当前落子位置,确定所述第一方在所述当前回合的棋力量化值;所述棋力量化值用于表征所述第一方的棋力水平;
8.在所述多个第二待选位置中确定目标落子位置;所述目标落子位置对应的第二方胜率与所述棋力量化值匹配。
9.在一些实施例中,所述基于所述历史落子记录和所述当前落子位置,确定所述第一方的棋力量化值,包括:
10.将所述历史落子记录和所述当前落子位置输入至预设的棋力评测模型,得到所述第一方的棋力评分;所述棋力评分用于表征所述第一方在对弈开始至所述当前回合的整体棋力水平;
11.基于所述第一方的棋力评分,确定所述第一方的棋力量化值。
12.在一些实施例中,所述在所述多个第二待选位置中确定目标落子位置,包括:
13.基于每一所述第二待选位置对应的第二方胜率,对所述多个第二待选位置进行排序,确定每一所述第二待选位置的排序位置;
14.根据预设的第一映射表,获取所述第一方的棋力评分对应的目标排序位置;所述第一映射表包括棋力评分与排序位置的映射关系;
15.将所述目标排序位置对应的第二待选位置确定为所述目标落子位置。
16.在一些实施例中,所述在所述多个第二待选位置中确定目标落子位置,包括:
17.根据预设的第二映射表,获取所述第一方的棋力评分对应的目标胜率区间;
18.基于所述目标胜率区间,将位于所述目标胜率区间中的第二待选位置确定为所述目标落子位置。
19.在本公开实施例中,由于基于第一方在当前回合的当前落子位置,确定第一方在当前回合中的实时棋力评分,并基于该实时棋力评分在第二落子策略中得到与该第一方实时胜率存在映射关系的目标落子位置,可以在当前对弈过程的第一方与第二方之间实现“棋逢对手”的效果。
20.在一些实施例中,在所述响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的第一当前落子和所述历史落子记录,生成所述第二方对应的第二落子策略之前,所述方法还包括:基于所述历史落子记录,预测所述第一方对应的第一落子策略;所述第一落子策略包括多个第一待选位置和每一所述第一待选位置对应的第一方胜率;
21.所述基于所述历史落子记录和所述当前落子位置,确定所述第一方的棋力量化值,包括:基于每一所述第一待选位置对应的第一方胜率,确定所述当前落子位置对应的第一方胜率;将所述当前落子位置对应的第一方胜率确定为所述棋力量化值。
22.在一些实施例中,所述在所述多个第二待选位置中确定目标落子位置,包括:
23.基于所述当前落子位置对应的第一方胜率,在所述多个第二待选位置中确定目标落子位置;所述目标落子位置的第二方胜率与所述第一方胜率存在映射关系。
24.在本公开实施例中,由于在第二方落子之后对第一方在当前回合的落子策略进行预测,得到第一方对应的包括多个第一待选位置和每一所述第一待选位置对应的第一方胜率的第一落子策略。进而可以在当前回合中,第一方落子之后可以快速确定第一方的棋力量化值,进而提升了第二方在当前回合中的落子速度。同时,由于基于第一方在当前回合的当前落子位置,确定第一方在当前回合中的实时胜率,并基于该实时胜率在第二落子策略中得到与该第一方实时胜率存在映射关系的目标落子位置,可以在当前对弈过程的第一方与第二方之间实现“棋逢对手”的效果。
25.在一些实施例中,所述历史落子记录包括落子时间;所述方法还包括:
26.基于所述历史落子记录,获取所述第一方的平均落子时长;所述第一方的平均落子时长用于表征所述第一方在所述第二方落子后的落子速度;
27.在所述第一方的平均落子时长满足预设条件的情况下,基于所述历史落子记录,预测所述第一方在所述当前回合的第三落子策略;所述第三落子策略包括多个第三待选位置;所述第三待选位置与所述第一方在历史回合的棋力量化值相关;
28.针对每一所述第三待选位置,基于所述第三待选位置和所述历史落子记录,生成所述第二方对应的第四落子策略;所述第四落子策略包括多个第四待选位置和每一所述第四待选位置对应的第二方胜率;
29.响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置在每一所述第三待选位置对应的第四落子策略中获取所述第二落子策略。
30.通过上述公开实施例,由于基于历史落子记录,确定了第一方的平均落子时长,并在该平均落子时长满足预设条件的情况下,在第二方在上一回合完成落子之后,利用第一方思考的时间,不仅预测了第一方在当前回合的第三落子策略,还基于该第三落子策略生成多个第二方的多个第四落子策略。由此,在第一方完成当前回合的落子事件时,可以直接从多个第四落子策略中确定第一方的当前落子位置对应的第二落子策略,提升了第二方在
当前回合针对第一方在当前回合的落子事件的响应速度,进而提升了真实用户的使用体验。
31.在一些实施例中,所述基于所述历史落子记录,获取所述第一方的平均落子时长,包括:
32.基于所述历史落子记录中所述第一方的至少一个落子时间和所述第二方的至少一个落子时间,确定至少一个第一时间间隔;所述第一时间间隔为所述第二方落子的落子时间,与相邻的所述第一方落子的落子时间之间的时间间隔;
33.基于所述至少一个第一时间间隔,生成所述第一方的平均落子时长。
34.在一些实施例中,所述方法还包括:
35.获取所述第一方在历史回合的棋力量化值;
36.基于所述第一方在所述历史回合的棋力量化值和所述第一方在所述当前回合的棋力量化值,生成提示信息;所述提示信息用于表征所述第一方在不同回合的棋力变化情况。
37.通过上述公开实施例,由于通过比对第一方在历史回合和当前回合中的棋力量化值,生成用于表征所述第一方在不同回合的棋力变化情况的提示信息。可以使真实用户在每一次落子之后,接收到当前落子事件对应的实时反馈,在棋力量化值增加的情况下,用户可以通过第一提示信息感知当前回合对应的落子是相对较优的;在棋力量化值降低的情况下,用户可以通过第二提示信息感知当前回合对应的落子是相对较差的;由此,不仅可以提升人机对弈方法中对于用户的反馈及时性,还可以使得用户可以感知每一步落子的实时效果,提升了真实用户的学习效率。
38.第二方面,提供一种人机对弈装置,包括:
39.记录模块,用于在对弈过程中,记录第一方和第二方的落子位置,得到历史落子记录;
40.生成模块,用于响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置和所述历史落子记录,生成所述第二方对应的第二落子策略;所述第二落子策略包括多个第二待选位置和每一所述第二待选位置对应的第二方胜率;
41.确定模块,用于基于所述历史落子记录和所述当前落子位置,确定所述第一方在所述当前回合的棋力量化值;所述棋力量化值用于表征所述第一方的棋力水平;
42.落子模块,用于在所述多个第二待选位置中确定目标落子位置;所述目标落子位置对应的第二方胜率与所述棋力量化值匹配。
43.第三方面,提供一种人机对弈设备,包括:存储器和处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中的步骤。
44.第四方面,提供一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述方法中的步骤。
45.在本公开实施例中,由于在人机对弈的过程中基于第一方在当前回合的当前落子位置,得到了第一方在当前回合的棋力量化值,并基于第一方在当前回合的棋力量化值,选择第二方胜率与该棋力量化值匹配的第二待选位置作为第二方的目标落子位置,可以实现在整个人机对弈过程中,基于不同回合中真实用户的发挥情况,动态调整虚拟用户的落子
策略,让虚拟用户的棋力水平与真实用户的棋力水平进行动态匹配,可以使得真实用户在对弈过程中感受到“棋逢对手”的感觉,提升了用户对弈兴趣。
附图说明
46.图1为本公开实施例提供的一种人机对弈系统结构示意图;
47.图2为本公开实施例提供的一种人机对弈方法的流程示意图;
48.图3为本公开实施例提供的一种人机对弈方法的流程示意图;
49.图4为本公开实施例提供的一种人机对弈方法的流程示意图;
50.图5为本公开实施例提供的一种人机对弈方法的流程示意图;
51.图6为本公开实施例提供的一种人机对弈方法的流程示意图;
52.图7为本公开实施例提供的一种人机对弈方法的流程示意图;
53.图8为本公开实施例提供的一种人机对弈装置的组成结构示意图;
54.图9为本公开实施例提供的一种人机对弈设备的硬件实体示意图。
具体实施方式
55.下面将通过实施例并结合附图具体地对本公开的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
56.需要说明的是:在本公开实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述目标的顺序或先后次序。另外,本公开实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
57.图1为本公开实施例提供的一种人机对弈方法的流程示意图,如图1所示,该方法应用于消息代理系统,该方法包括:
58.s101、在对弈过程中,记录第一方和第二方的落子位置,得到历史落子记录。
59.在一些实施例中,本公开实施例提供的人机对弈方法可以用于各种棋类对局,该棋类可以包括围棋、中国象棋、国际象棋、军旗、五子棋、跳棋、飞行棋中的至少一种。
60.在一些实施例中,该第一方为真实用户方,该第二方为机器方,即虚拟用户方。在一局对弈过程中,包括至少一个第一方和至少一个第二方,第一方和第二方的数量可以基于棋类的不同而改变。例如,针对围棋、中国象棋、国际象棋、和五子棋等棋类,在一局对弈过程中仅可以包括一个第一方和一个第二方,即允许一个真实用户方和一个虚拟用户方参与对弈;而针对军旗、跳棋和飞行棋等棋类,在一局对弈过程中可以仅包括一个第一方和一个第二方,也可以包括一个第一方和多个第二方,还可以包括多个第一方和多个第二方,还可以包括多个第一方和一个第二方。本公开实施例对此不作限定。
61.在一些实施例中,历史落子记录可以包括该第一方和第二方之前的所有落子信息。每一落子信息可以包括以下至少之一:落子用户、落子时间、落子位置等。在棋类包括不同类别的棋子的情况下,即中国象棋、国际象棋和军旗中的一种时,该落子信息还包括落子类型。
62.需要说明的是,在所述人机对弈方法应用于围棋的情况下,由于存在“过一手”即“停一手”,对应的落子信息可以仅包括落子用户和落子时间,落子位置等信息可以设置为
空值。其中。围棋允许一方选择不落子,让另一方继续落子,这就是“过一手(pass)”。
63.s102、响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置和所述历史落子记录,生成所述第二方对应的第二落子策略;所述第二落子策略包括多个第二待选位置和每一所述第二待选位置对应的第二方胜率。
64.在一些实施例中,上述当前回合是包括第一方的进行落子,然后第二方进行落子的回合。在当前回合中,通过接收第一方的落子动作,生成第一方在当前回合的落子事件,同时,该落子事件可以携带落子信息。之后,按照对弈规则,需要第二方进行落子,为了针对当前回合的第一方的落子事件,因此在生成第二方对应的第二落子策略的过程中,至少考虑当前落子位置,以提升第二方落子在当前回合中的针对性;同时,在考虑当前落子位置之外,还需要考虑历史落子记录,以提升第二方落子的在全局对弈过程中的针对性。
65.在一些实施例中,在基于所述落子事件对应的当前落子位置和历史落子记录生成第二方对应的落子策略的过程中,可以基于历史落子记录中的全部落子信息和当前落子位置生成第二方对应的落子策略;还可以基于历史落子记录中的部分落子信息个当前落子位置生成第二方对应的落子策略。
66.在一些实施例中,该第二方对应的第二落子策略可以包括多个第二待选位置和每一所述第二待选位置对应的第二方胜率。其中,生成的多个第二待选位置可以包括第二方在当前回合中所有可以落子的位置信息,例如,针对围棋对弈而言,棋盘中所有空的落子点均可以为第二方的落子点,因此,多个第二待选位置可以是上述所有空的落子点;生成的多个第二待选位置可以包括第二方胜率超过最小胜率阈值的落子点。
67.s103、基于所述历史落子记录和所述当前落子位置,确定所述第一方在所述当前回合的棋力量化值;所述棋力量化值用于表征所述第一方的棋力水平;
68.在一些实施例中,由于所述第一方在所述当前回合的棋力量化值是基于所述当前落子位置确定的,因此,该棋力量化值可以用于表征第一方在当前回合对应的棋力水平。也就是说,在不同的回合,步骤s103可以基于不同的历史落子记录和不同的当前落子位置确定第一方在不同回合的棋力水平。
69.其中,可以通过预设的棋力评测模型确定对弈方的棋力水平,在使用该棋力评测模型确定第一方的棋力水平的过程中,可以根据实际需要,将按照时序排列的多个落子信息输入至该棋力评测模型,得到多个落子信息中每一个对弈方在最新回合的棋力水平。例如,以围棋为例,得到的多个落子信息包括a1、b1、a2、b2、

、an、bn、an 1。在将该多个落子信息输入至该棋力评测模型之后,可以得到a方在第n 1个回合的棋力量化值,和b方在第n个回合的棋力量化值。
70.s104、在所述多个第二待选位置中确定目标落子位置;所述目标落子位置对应的第二方胜率与所述棋力量化值匹配。
71.在一些实施例中,可以基于预设的第二方胜率与第一方的棋力量化值的映射关系,直接根据第一方在当前回合中的棋力量化值在每一第二待选位置中确定第二方胜率与该棋力量化值存在映射关系的第二待选位置,并将其作为目标落子位置。在确定该目标落子位置之后,可以基于该目标落子位置完成当前回合的第二方的落子事件。此时,当前回合的人机对弈过程结束,进入下一回合的人机对弈过程。在下一回合的人机对弈过程中,下一回合的历史落子记录包括了当前回合的第一方和第二方的落子位置。
72.在本公开实施例中,由于在人机对弈的过程中基于第一方在当前回合的当前落子位置,得到了第一方在当前回合的棋力量化值,并基于第一方在当前回合的棋力量化值,选择第二方胜率与该棋力量化值匹配的第二待选位置作为第二方的目标落子位置,可以实现在整个人机对弈过程中,基于不同回合中真实用户的发挥情况,动态调整虚拟用户的落子策略,让虚拟用户的棋力水平与真实用户的棋力水平进行动态匹配,可以使得真实用户在对弈过程中感受到“棋逢对手”的感觉,提升了用户对弈兴趣。
73.参见图2,图2是本公开实施例提供的人机对弈方法的一个可选的流程示意图,基于图1,图1中的s103可以更新为s201至s202,s104可以更新为步骤s203,将结合图2示出的步骤进行说明。
74.s201、将所述历史落子记录和所述当前落子位置输入至预设的棋力评测模型,得到所述第一方的棋力评分;所述棋力评分用于表征所述第一方在对弈开始至所述当前回合的整体棋力水平。
75.s202、基于所述第一方的棋力评分,确定所述第一方的棋力量化值。
76.s203、在所述多个第二待选位置中确定目标落子位置;所述目标落子位置对应的第二方胜率与所述棋力量化值匹配。
77.在一些实施例中,可以通过步骤s2031实现上述在所述多个第二待选位置中确定目标落子位置:
78.s2031、基于每一所述第二待选位置对应的第二方胜率,对所述多个第二待选位置进行排序,确定每一所述第二待选位置的排序位置;根据预设的第一映射表,获取所述第一方的棋力评分对应的目标排序位置;所述第一映射表包括棋力评分与排序位置的映射关系;将所述目标排序位置对应的第二待选位置确定为所述目标落子位置。
79.在一些实施例中,该第一映射表可以包括多个棋力评分区间和每一棋力评分区间对应的排序位置。例如,该第一映射表可以包括棋力评分区间f1:[0,20)、棋力评分区间f2:[20,40)、棋力评分区间f3:[40,60)、棋力评分区间f4:[60,80)、棋力评分区间f5:[80,100]。其中,棋力评分区间f1对应的排序位置为第5位、棋力评分区间f2对应的排序位置为第4位、棋力评分区间f3对应的排序位置为第3位、棋力评分区间f4对应的排序位置为第2位、棋力评分区间f5对应的排序位置为第1位。
[0080]
其中,若得到的第二落子策略包括:第二待选位置a1对应的第二方胜率为50%、第二待选位置a2对应的第二方胜率为80%、第二待选位置a3对应的第二方胜率为70%、第二待选位置a4对应的第二方胜率为60%、第二待选位置a5对应的第二方胜率为90%、第二待选位置a6对应的第二方胜率为95%,共6个第二待选位置。则需要先基于每一第二待选位置对应的第二方胜率对6个第二待选位置进行排序,得到第二待选位置a1,对应的排序位置为6、第二待选位置a2对应的排序位置为3、第二待选位置a3对应的排序位置为4、第二待选位置a4对应的排序位置为5、第二待选位置a5对应的排序位置为2、第二待选位置a6对应的排序位置为1,基于上述对于第一映射表的举例,在第一方的棋力评分为65的情况下,可以确定对应的棋力评分区间为f4,进而基于该第一映射表可以得到对应的目标排序位置为第2位,即将排序位置为2的第二待选位置a5作为该目标落子位置。
[0081]
在一些实施例中,可以通过步骤s2032实现上述在所述多个第二待选位置中确定目标落子位置:
[0082]
s2032、根据预设的第二映射表,获取所述第一方的棋力评分对应的目标胜率区间;基于所述目标胜率区间,将位于所述目标胜率区间中的第二待选位置确定为所述目标落子位置。
[0083]
在一些实施例中,该第二映射表可以包括多个棋力评分区间和每一棋力评分区间对应的胜率区间。例如,该第一映射表可以包括棋力评分区间f1:[0,20)对应的胜率区间也是[0,20)、棋力评分区间f2:[20,40)对应的胜率区间也是[20,40)、棋力评分区间f3:[40,60)对应的胜率区间也是[40,60)、棋力评分区间f4:[60,80)对应的胜率区间也是[40,60)、棋力评分区间f5:[80,100]对应的胜率区间也是[40,60)。
[0084]
其中,若得到的第二落子策略包括:第二待选位置a1对应的第二方胜率为50%、第二待选位置a2对应的第二方胜率为80%、第二待选位置a3对应的第二方胜率为70%、第二待选位置a4对应的第二方胜率为60%、第二待选位置a5对应的第二方胜率为90%、第二待选位置a6对应的第二方胜率为95%,共6个第二待选位置。基于上述对于第二映射表的举例,在第一方的棋力评分为65的情况下,可以确定对应的目标胜率区间也是[40,60),进而将第二待选位置a1作为该目标落子位置。
[0085]
在本公开实施例中,由于基于第一方在当前回合的当前落子位置,确定第一方在当前回合中的实时棋力评分,并基于该实时棋力评分在第二落子策略中得到与该第一方实时胜率存在映射关系的目标落子位置,可以在当前对弈过程的第一方与第二方之间实现“棋逢对手”的效果。
[0086]
参见图3,图3是本公开实施例提供的人机对弈方法的一个可选的流程示意图,基于图1,图1中的方法还包括s301,s103可以更新为s302,s104可以更新为s303,将结合图3示出的步骤进行说明。
[0087]
s301、基于所述历史落子记录,预测所述第一方对应的第一落子策略;所述第一落子策略包括多个第一待选位置和每一所述第一待选位置对应的第一方胜率。
[0088]
在一些实施例中,在所述第一方在当前回合的落子事件之前,即在上一回合中所述第二方的落子事件之后,可以基于该历史落子记录对第一方在所述当前回合的落子位置进行预测。即响应于所述第二方在上一回合的落子事件,基于所述历史落子记录,预测第一方对应的第一落子策略。
[0089]
需要说明的是,s303中基于历史落子记录,生成第一方对应的第一落子策略的方法可以与s102中基于当前落子位置和所述历史落子记录,生成所述第二方对应的第二落子策略的方法相同或不同。
[0090]
在一些实施例中,在s301预测完成之后,可以得到第一方对应的每一待选位置对应的第一方胜率。
[0091]
s302、基于每一所述第一待选位置对应的第一方胜率,确定所述当前落子位置对应的第一方胜率;将所述当前落子位置对应的第一方胜率确定为所述棋力量化值。
[0092]
在一些实施例中,响应于第一方在当前回合的落子事件,已经得到的用户在当前回合的当前落子位置。基于该当前落子位置在s301得到的每一待选位置中查找对应的目标待选位置,将该目标待选位置对应的第一方胜率作为该棋力量化值。
[0093]
在一些实施例中,在s301的预测过程中,还未输出所有待选位置和对应的第一方胜率,此时,已经接收到第一方在当前回合的落子事件,获取s301已经得到的至少一个待选
位置,和每一待选位置对应的第一方胜率,基于该当前回合的落子事件的当前落子位置在得到的至少一个待选位置中查找匹配的目标待选位置,若可以找到匹配的目标待选位置,停止s301的预测过程,将已经得到的目标待选位置对应的第一方胜率作为上述棋力量化值;若没有找到匹配的目标待选位置,则继续执行s301的预测过程,直至得到与该当前落子位置匹配的目标待选位置。
[0094]
s303、基于所述当前落子位置对应的第一方胜率,在所述多个第二待选位置中确定目标落子位置;所述目标落子位置的第二方胜率与所述第一方胜率存在映射关系。
[0095]
在一些实施例中,在得到第二方对应的多个待选位置,和每一待选位置对应的第二方胜率之后,可以基于上述棋力量化值,即当前落子位置对应的第一方胜率,在多个第二待选位置中确定第二方胜率与该第一方胜率存在映射关系的目标落子位置。
[0096]
其中,可以通过以下实现方式中的至少之一实现上述在多个第二待选位置中确定第二方胜率与该第一方胜率存在映射关系的目标落子位置:
[0097]
(1)在多个第二待选位置中确定第二方胜率与所述第一方胜率相同的第二待选位置,作为该目标落子位置;通过此实现方式可以实现在当前回合中,第二方的落子的发挥情况和第一方的落子的发挥情况完全相同,进而实现真正的“棋逢对手”的效果。
[0098]
(2)在多个第二待选位置中确定第二方胜率与所述第一方胜率之间的距离最小的第二待选位置,作为该目标落子位置;通过此实现方式可以实现在当前回合中,第二方的落子的发挥情况和第一方的落子的发挥情况接近,进而在一定程度上实现“棋逢对手”的效果。
[0099]
(3)获取预设的映射函数关系,基于所述映射函数,对所述第一方胜率进行转换,得到转换后的第一方胜率;在说多个第二待选位置中确定第二方胜率与所述第一方胜率相同或之间的距离最小的第二待选位置,作为该目标落子位置。
[0100]
其中,该预设的映射函数关系可以由基础第一方胜率和偏移参数确定,其中,该基础第一方胜率可以由用户设置,默认值为50%,在该基础第一方胜率超过默认值的情况下,表征用户希望第一方的难度较高,在该基础第一方胜率小于默认值的情况下,表征用户希望第一方的难度较低;该偏移参数用于对该第一方胜率与该基础第一方胜率之间的差值进行缩放,进而确定转换后的第一方胜率,其中,该映射函数关系可以表示为下式:
[0101]
p
转换后
=p
基础
k(p
转换前

p
基础
)
[0102]
其中,p
转换后
表示转换后的第一方胜率,p
转换前
表示所述当前落子位置对应的第一方胜率,p
基础
表示基础第一方胜率,k为偏移参数。通过此实现方式可以实现在当前回合中,实现第二方的落子的胜率可以在维持在“势均力敌”的基础上,基于当前落子位置对应的第一方胜率的高低在基础第一方胜率的周围波动。
[0103]
在本公开实施例中,由于在第二方落子之后对第一方在当前回合的落子策略进行预测,得到第一方对应的包括多个第一待选位置和每一所述第一待选位置对应的第一方胜率的第一落子策略。进而可以在当前回合中,第一方落子之后可以快速确定第一方的棋力量化值,进而提升了第二方在当前回合中的落子速度。同时,由于基于第一方在当前回合的当前落子位置,确定第一方在当前回合中的实时胜率,并基于该实时胜率在第二落子策略中得到与该第一方实时胜率存在映射关系的目标落子位置,可以在当前对弈过程的第一方与第二方之间实现“棋逢对手”的效果。
[0104]
参见图4,图4是本公开实施例提供的人机对弈方法的一个可选的流程示意图,基于上述任一实施例,以基于图1为例,图1中的s102可以更新为s401至s404,将结合图4示出的步骤进行说明。
[0105]
s401、基于所述历史落子记录,获取所述第一方的平均落子时长;所述第一方的平均落子时长用于表征所述第一方在所述第二方落子后的落子速度。
[0106]
在一些实施例中,可以通过步骤s4011至s4012实现上述基于所述历史落子记录,获取所述第一方的平均落子时长:
[0107]
s4011、基于所述历史落子记录中所述第一方的至少一个落子时间和所述第二方的至少一个落子时间,确定至少一个第一时间间隔;所述第一时间间隔为所述第二方落子的落子时间,与相邻的所述第一方落子的落子时间之间的时间间隔。
[0108]
s4012、基于所述至少一个第一时间间隔,生成所述第一方的平均落子时长。
[0109]
s402、在所述第一方的平均落子时长满足预设条件的情况下,基于所述历史落子记录,预测所述第一方在所述当前回合的第三落子策略;所述第三落子策略包括多个第三待选位置;所述第三待选位置与所述第一方在历史回合的棋力量化值相关。
[0110]
在一些实施例中,可以通过以下方式确定第一方的平均落子时间书是否满足预设条件:
[0111]
(1)获取预设的落子时间阈值,在所述第一方的平均落子时间大于或等于所述落子时间阈值的情况下,确定所述第一方的平均落子时间满足所述预设条件;在所述第一方的平均落子时间小于所述落子时间阈值的情况下,确定所述第一方的平均落子时间不满足所述预设条件;
[0112]
(2)基于所述历史落子记录,获取所述第二方的平均落子时长;所述第二方的平均落子时长用于表征所述第二方在所述第一方落子后的落子速度;在所述第一方的平均落子时间大于或等于所述第二方的平均落子时长的情况下,确定所述第一方的平均落子时间满足所述预设条件;在所述第一方的平均落子时间小于所述第二方的平均落子时长的情况下,确定所述第一方的平均落子时间不满足所述预设条件。
[0113]
在一些实施例中,在接收到第一方在当前回合的当前落子位置之前,可以先基于历史落子记录,对该第一方在当前回合的落子位置进行预测,得到第一方在所述当前回合的第三落子策略。其中,该第三落子策略包括多个第三待选位置和每一所述第三待选位置对应的第一方胜率,基于所述第一方在历史落子记录中的每一历史回合的棋力量化值(包括第一方胜率),可以确定与第一方的历史水平相关的至少一个第三待选位置。需要说明的是,在第三落子策略中,可以包括所有可以落子的第三待选位置,也可以仅包括上述与第一方的历史水平相关的部分第三待选位置。
[0114]
s403、针对每一所述第三待选位置,基于所述第三待选位置和所述历史落子记录,生成所述第二方对应的第四落子策略;所述第四落子策略包括多个第四待选位置和每一所述第四待选位置对应的第二方胜率。
[0115]
在一些实施例中,针对第三落子策略中的每一个第三待选位置,基于与s102相同的落子策略生成方法,得到每一所述第三待选位置对应的所述第二方对应的第四落子策略;所述第四落子策略包括多个第四待选位置和每一所述第四待选位置对应的第二方胜率。
[0116]
s404、响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置在每一所述第三待选位置对应的第四落子策略中获取所述第二落子策略。
[0117]
通过上述公开实施例,由于基于历史落子记录,确定了第一方的平均落子时长,并在该平均落子时长满足预设条件的情况下,在第二方在上一回合完成落子之后,利用第一方思考的时间,不仅预测了第一方在当前回合的第三落子策略,还基于该第三落子策略生成多个第二方的多个第四落子策略。由此,在第一方完成当前回合的落子事件时,可以直接从多个第四落子策略中确定第一方的当前落子位置对应的第二落子策略,提升了第二方在当前回合针对第一方在当前回合的落子事件的响应速度,进而提升了真实用户的使用体验。
[0118]
参见图5,图5是本公开实施例提供的人机对弈方法的一个可选的流程示意图,基于上述任一实施例,以基于图1为例,图1中的方法还可以包括s501至s502,将结合图5示出的步骤进行说明。
[0119]
s501、获取所述第一方在历史回合的棋力量化值。
[0120]
s502、基于所述第一方在所述历史回合的棋力量化值和所述第一方在所述当前回合的棋力量化值,生成提示信息;所述提示信息用于表征所述第一方在不同回合的棋力变化情况。
[0121]
在一些实施例中,该历史回合可以仅包括上一回合,上一回合为该当前回合相邻的历史回合,在s501中,先获取该第一方在该上一回合的棋力量化值,结合之前得到的第一方在当前回合的棋力量化值,可以生成对应的提示信息,该提示信息用于表征该第一方在当前回合相对于上一回合的棋力变化情况。
[0122]
其中,在该第一方在当前回合的棋力量化值大于上一回合的棋力量化值的情况下,可以生成第一提示信息,该第一提示信息可以用于表征第一方的棋力提高了。例如,该第一提示信息可以为“好棋”、“下的不错”或“真厉害”等表征真实用户棋力提高的提示信息。在该第一方在当前回合的棋力量化值小于上一回合的棋力量化值的情况下,可以生成第二提示信息,该第二提示信息可以用于表征第一方的棋力降低了。例如,该第一提示信息可以为“恶棋”、“失误了”或“为什么下这里”等表征真实用户棋力降低的提示信息。
[0123]
在一些实施例中,该历史回合可以仅包括当前回合之前的多个历史回合,在s501中,先获取该第一方在每一历史回合的棋力量化值,结合之前得到的第一方在当前回合的棋力量化值,按照回合数生成对应的提示信息,该提示信息用于表征该第一方的棋力量化值随着回合数的变化对应的变化曲线。
[0124]
通过上述公开实施例,由于通过比对第一方在历史回合和当前回合中的棋力量化值,生成用于表征所述第一方在不同回合的棋力变化情况的提示信息。可以使真实用户在每一次落子之后,接收到当前落子事件对应的实时反馈,在棋力量化值增加的情况下,用户可以通过第一提示信息感知当前回合对应的落子是相对较优的;在棋力量化值降低的情况下,用户可以通过第二提示信息感知当前回合对应的落子是相对较差的;由此,不仅可以提升人机对弈方法中对于用户的反馈及时性,还可以使得用户可以感知每一步落子的实时效果,提升了真实用户的学习效率。
[0125]
下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
[0126]
随着人工智能的发展,人机对弈的使用越来越广泛。但是,在目前的人机对弈相关
产品中,通常是预设一些不同等级的ai(人工智能)棋力模型,由用户根据自己的人为判断和选择,在每局开始前手动进行设置,这种方式依赖于用户自身的主观判断能力,通常会由于自身能力难以判断,导致选择错误。从而在对弈过程中,要么设置得过于简单,用户对弈没有成就感;要么设置得过于困难,让用户丧失信心;或者有些方案会根据对弈结束后的胜负,再调整棋力模型的等级,这种方案通常需要用户花费较长时间对弈多局,才能够得到比较符合用户棋力的模型。难以较快让用户体会到棋逢对手的感觉,从而影响用户的对弈兴趣。
[0127]
基于上述问题,本公开实施例提供了两个具体的人机对弈方法,可以参阅图6和图7提供的流程示意图。
[0128]
在一些实施例中,通过使用棋力评测模型,在对弈过程中,根据用户当前局的已有落子,实时的判断用户的棋力,并根据用户当前的棋力,选择对应ai下棋落子策略,从而达到ai下棋策略引擎与用户的棋力相匹配的效果。请参阅图6,图6是本公开实施例提供的人机对弈方法的一个可选的流程示意图,将结合图6示出的步骤进行说明。
[0129]
s601、在本局人机对弈过程中,记录每一回合中用户和ai的落子位置,得到历史落子记录。
[0130]
其中,该历史落子记录包括本局人机对弈过程中用户的所有落子位置和ai的所有落子位置。
[0131]
s602、在用户每一步落子后,基于用户的当前落子和历史落子记录,通过棋力评测模型确定用户的棋力量化值。
[0132]
其中,该棋力量化值用于表征用户的棋力水平。
[0133]
s603、基于用户的棋力量化值和下棋策略模型,确定用户的当前落子对应的ai的当前落子。
[0134]
其中,可以通过s6031至s6032实现上述基于用户的棋力水平和下棋策略模型,确定用户的当前落子对应的ai的当前落子:
[0135]
s6031、基于用户的当前落子和历史落子记录,通过ai下棋策略模型得到多个待选落子位置和不同待选落子位置对应的胜率。
[0136]
s6032、根据用户的棋力量化值,在多个待选落子位置中确定目标落子位置;所述目标落子位置对应的胜率与所述用户的棋力量化值存在映射关系。
[0137]
在一些实施例中,按照胜率从高到低的顺序,对多个不同待选落子位置进行排序。同时,获取预设的多个阈值条件,每一阈值条件与胜率排序存在映射关系。例如,存在3个阈值条件,其中第一阈值条件与第一胜率存在映射关系,第二阈值条件与第二胜率存在映射关系,第三阈值条件与第三胜率存在映射关系。之后,在多个阈值条件中确定用户的棋力量化值满足的目标阈值条件,将与目标阈值条件存在映射关系的目标胜率对应的待选落子位置确定为该目标落子位置。
[0138]
基于上述实施例,通过步骤s601至步骤s602,可以在对弈的过程中动态的识别用户下棋水平,并动态的将ai下棋策略引擎切换到了与用户下棋水平相匹配的等级;并且,通过上述步骤s603进一步细化了下棋过程中的策略,动态的调整了ai下棋引擎对战时的胜率策略,可以切换ai下棋策略模型到与用户棋力相匹配的等级上,进一步匹配用户在对弈过程中的发挥情况,从而更好的匹配用户的下棋水平。
[0139]
在一些实施例中,在对弈过程中,用ai策略模型模拟用户落子,判断用户不同落子位置的胜率,并根据用户实际的落子位置,选择ai方落子是对应胜率的落子位置进行落子,达到在对弈过程中,双方胜率比较一致的情况,从而达到ai对用户棋力的自适应。请参阅图7,图7是本公开实施例提供的人机对弈方法的一个可选的流程示意图,将结合图7示出的步骤进行说明。
[0140]
s701、在本局人机对弈过程中,记录每一回合中用户和ai的落子位置,得到历史落子记录。
[0141]
其中,该历史落子记录包括本局人机对弈过程中用户的所有落子位置和ai的所有落子位置。
[0142]
s702、在用户落子之前,基于历史落子记录,通过ai下棋策略模型计算用户方的不同落子位置的胜率。
[0143]
s703、在用户落子后,得到用户方当前落子位置对应的胜率。
[0144]
s704、基于用户的当前落子位置和历史落子记录,通过ai下棋策略模型得到多个待选落子位置和不同待选落子位置对应的胜率。
[0145]
s705、基于所述用户方当前落子位置对应的胜率,在多个待选落子位置中确定目标落子位置;所述目标落子位置对应的胜率与用户方当前落子位置对应的胜率存在映射关系。
[0146]
图8为本公开实施例提供的一种人机对弈装置的组成结构示意图,如图8所示,人机对弈装置800包括:
[0147]
记录模块801,用于在对弈过程中,记录第一方和第二方的落子位置,得到历史落子记录;
[0148]
生成模块802,用于响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置和所述历史落子记录,生成所述第二方对应的第二落子策略;所述第二落子策略包括多个第二待选位置和每一所述第二待选位置对应的第二方胜率;
[0149]
确定模块803,用于基于所述历史落子记录和所述当前落子位置,确定所述第一方在所述当前回合的棋力量化值;所述棋力量化值用于表征所述第一方的棋力水平;
[0150]
落子模块804,用于在所述多个第二待选位置中确定目标落子位置;所述目标落子位置对应的第二方胜率与所述棋力量化值匹配。
[0151]
在一些实施例中,所述确定模块803,还用于:
[0152]
将所述历史落子记录和所述当前落子位置输入至预设的棋力评测模型,得到所述第一方的棋力评分;所述棋力评分用于表征所述第一方在对弈开始至所述当前回合的整体棋力水平;
[0153]
基于所述第一方的棋力评分,确定所述第一方的棋力量化值。
[0154]
在一些实施例中,所述落子模块804,还用于:
[0155]
基于每一所述第二待选位置对应的第二方胜率,对所述多个第二待选位置进行排序,确定每一所述第二待选位置的排序位置;
[0156]
根据预设的第一映射表,获取所述第一方的棋力评分对应的目标排序位置;所述第一映射表包括棋力评分与排序位置的映射关系;
[0157]
将所述目标排序位置对应的第二待选位置确定为所述目标落子位置。
[0158]
在一些实施例中,所述落子模块804,还用于:
[0159]
根据预设的第二映射表,获取所述第一方的棋力评分对应的目标胜率区间;
[0160]
基于所述目标胜率区间,将位于所述目标胜率区间中的第二待选位置确定为所述目标落子位置。
[0161]
在一些实施例中,在所述响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的第一当前落子和所述历史落子记录,生成所述第二方对应的第二落子策略之前,所述生成模块802,还用于:基于所述历史落子记录,预测所述第一方对应的第一落子策略;所述第一落子策略包括多个第一待选位置和每一所述第一待选位置对应的第一方胜率;
[0162]
所述确定模块803,还用于:基于每一所述第一待选位置对应的第一方胜率,确定所述当前落子位置对应的第一方胜率;将所述当前落子位置对应的第一方胜率确定为所述棋力量化值。
[0163]
在一些实施例中,所述落子模块804,还用于:
[0164]
基于所述当前落子位置对应的第一方胜率,在所述多个第二待选位置中确定目标落子位置;所述目标落子位置的第二方胜率与所述第一方胜率存在映射关系。
[0165]
在一些实施例中,所述生成模块802,还用于:
[0166]
基于所述历史落子记录,获取所述第一方的平均落子时长;所述第一方的平均落子时长用于表征所述第一方在所述第二方落子后的落子速度;
[0167]
在所述第一方的平均落子时长满足预设条件的情况下,基于所述历史落子记录,预测所述第一方在所述当前回合的第三落子策略;所述第三落子策略包括多个第三待选位置;所述第三待选位置与所述第一方在历史回合的棋力量化值相关;
[0168]
针对每一所述第三待选位置,基于所述第三待选位置和所述历史落子记录,生成所述第二方对应的第四落子策略;所述第四落子策略包括多个第四待选位置和每一所述第四待选位置对应的第二方胜率;
[0169]
响应于所述第一方在当前回合的落子事件,基于所述落子事件对应的当前落子位置在每一所述第三待选位置对应的第四落子策略中获取所述第二落子策略。
[0170]
在一些实施例中,所述生成模块802,还用于:
[0171]
基于所述历史落子记录中所述第一方的至少一个落子时间和所述第二方的至少一个落子时间,确定至少一个第一时间间隔;所述第一时间间隔为所述第二方落子的落子时间,与相邻的所述第一方落子的落子时间之间的时间间隔;
[0172]
基于所述至少一个第一时间间隔,生成所述第一方的平均落子时长。
[0173]
在一些实施例中,所述生成模块802,还用于:
[0174]
获取所述第一方在历史回合的棋力量化值;
[0175]
基于所述第一方在所述历史回合的棋力量化值和所述第一方在所述当前回合的棋力量化值,生成提示信息;所述提示信息用于表征所述第一方在不同回合的棋力变化情况。
[0176]
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
[0177]
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的人机对弈方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本公开各个实施例方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何目标的硬件和软件结合。
[0178]
图9为本公开实施例提供的一种人机对弈设备的硬件实体示意图,如图9所示,该人机对弈设备900的硬件实体包括:处理器901和存储器902,其中,存储器902存储有可在处理器901上运行的计算机程序,处理器901执行程序时实现上述任一实施例的方法中的步骤。在一些实施方式中,游戏桌上收赔游戏币的设备900可以是上述任一实施例中所说明的检测设备。
[0179]
存储器902存储有可在处理器上运行的计算机程序,存储器902配置为存储由处理器901可执行的指令和应用,还可以缓存待处理器901以及人机对弈设备900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
[0180]
处理器901执行程序时实现上述任一项的人机对弈方法的步骤。处理器901通常控制人机对弈设备900的总体操作。
[0181]
本公开实施例提供一种计算机存储介质,计算机存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上任一实施例的人机对弈方法的步骤。
[0182]
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开存储介质和设备实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
[0183]
上述处理器可以为目标用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。
[0184]
上述计算机存储介质/存储器可以是只读存储器(read only memory,rom)、可编程只读存储器(programmable read

only memory,prom)、可擦除可编程只读存储器(erasable programmable read

only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read

only memory,eeprom)、磁性随机存取存储器(ferromagnetic random access memory,fram)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(compact disc read

only memory,cd

rom)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
[0185]
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“本公开实施例”或

前述实施例”或“一些实施例”意味着与实施例有关的目标特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“本公开实施例”或“前述实施例”或“一些实施例”未必一定指相同的实施例。此外,这些目标的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0186]
在未做特殊说明的情况下,检测设备执行本公开实施例中的任一步骤,可以是检测设备的处理器执行该步骤。除非特殊说明,本公开实施例并不限定检测设备执行下述步骤的先后顺序。另外,不同实施例中对数据进行处理所采用的方式可以是相同的方法或不同的方法。还需说明的是,本公开实施例中的任一步骤是检测设备可以独立执行的,即检测设备执行上述实施例中的任一步骤时,可以不依赖于其它步骤的执行。
[0187]
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0188]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0189]
另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0190]
本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0191]
本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0192]
本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0193]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
[0194]
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、检测设备、或者网络设备等)执行本公开各个实施例所述方法的全部或部
分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0195]
在本公开实施例中,不同实施例中相同步骤和相同内容的说明,可以互相参照。在本公开实施例中,术语“并”不对步骤的先后顺序造成影响。
[0196]
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜