棋谱纠正方法及设备转让专利

申请号 : CN202210279373.1

文献号 : CN114372176B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金一舟冯永超胡征慧刘庆杰王蕴红

申请人 : 北京航空航天大学杭州创新研究院

摘要 :

本申请涉及一种棋谱纠正方法及设备,方法包括:获取初始待纠正棋谱,基于chess库引擎,依次判断初始待纠正棋谱中的棋步是否合法。在当前棋步不合法时,基于chess库引擎,对初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合,此时完成一次棋谱的纠正循环,并将次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正。在对全部棋步纠正完成后,获取最后一次循环时得到的最终纠正棋谱集合,在最终纠正棋谱集合中,确定初始待纠正棋谱对应的正确棋谱。本申请中,基于chess库引擎对棋步是否合法进行判断和纠正,可能会产生多个纠正后的最终棋谱,所以本申请中需要在最终纠正棋谱集合中确定初始待纠正棋谱对应的正确棋谱。

权利要求 :

1.一种棋谱纠正方法,其特征在于,包括:

获取初始待纠正棋谱;

基于chess库引擎,依次判断所述初始待纠正棋谱中的棋步是否合法;

在当前棋步不合法时,基于所述chess库引擎,对所述初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合;所述次代待纠正棋谱集合包括多个纠正后的棋谱;

将所述次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正;

在对全部棋步纠正完成后,获取最后一次循环时得到的最终纠正棋谱集合;

计算所述最终纠正棋谱集合中的各棋谱与所述初始待纠正棋谱的相似度;

将所述最终纠正棋谱集合中相似度最高的棋谱确定为所述待纠正棋谱对应的正确棋谱。

2.根据权利要求1所述的方法,其特征在于,所述基于chess库引擎,依次判断所述初始待纠正棋谱中的棋步是否合法,包括:调用所述chess库引擎的棋谱合法函数,获取符合当前棋步条件下的合法走法集合;

判断当前棋步是否属于所述合法走法集合;

若当前棋步属于所述合法走法集合,则判断所述当前棋步合法;若当前棋步不属于所述合法走法集合,则判断所述当前棋步不合法。

3.根据权利要求2所述的方法,其特征在于,所述对所述初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合,包括:对棋步错误类型进行分类;

基于全部棋步错误类型,对所述不合法棋步进行纠正,得到各棋步错误类型下的纠正棋谱集合;

将各棋步错误类型下的纠正棋谱集合进行并集,得到所述次代待纠正棋谱集合。

4.根据权利要求3所述的方法,其特征在于,所述棋步错误类型至少包括:棋步错误、棋步缺失和棋步多余。

5.根据权利要求4所述的方法,其特征在于,所述基于全部棋步错误类型,对所述不合法棋步进行纠正,得到各棋步错误类型下的纠正后的棋谱集合,包括:按照棋步错误类型对所述不合法棋步进行纠正,包括:获取所述不合法棋步对应的所述合法走法集合中的全部合法棋步,将全部所述合法棋步与所述不合法棋步依次进行替换,得到每次替换后的纠正棋谱,建立棋步错误类型下的纠正棋谱集合;

按照棋步缺失类型对所述不合法棋步进行纠正,包括:获取所述不合法棋步对应的所述合法走法集合中的全部合法棋步,将全部所述合法棋步依次替换到所述不合法棋步的棋步缺失处,得到每次替换后的纠正棋谱,建立棋步缺失类型下的纠正棋谱集合;

按照棋步多余类型对所述不合法棋步进行纠正,包括:将所述不合法棋步进行删除,得到删除不合法棋步后的纠正棋谱,建立棋步多余类型下的纠正棋谱集合。

6.根据权利要求1所述的方法,其特征在于,所述计算所述最终纠正棋谱集合中的各棋谱与所述初始待纠正棋谱的相似度,包括:将所述最终纠正棋谱集合中的各棋谱和所述初始待纠正棋谱转换为字符串列表;

基于字符串相似度比较函数计算所述最终纠正棋谱集合中的各棋谱与所述初始待纠正棋谱的相似度。

7.根据权利要求1所述的方法,其特征在于,还包括:若循环过程中出现的不合法棋步数量超过预设步数阈值,则停止纠正,并反馈错误信息。

8.一种棋谱纠正设备,其特征在于,包括:

处理器和存储器;

所述处理器与存储器通过通信总线相连接;

其中,所述处理器,用于调用并执行所述存储器中存储的程序;

所述存储器,用于存储程序,所述程序至少用于执行权利要求1‑7任一项所述的一种棋谱纠正方法。

说明书 :

棋谱纠正方法及设备

技术领域

[0001] 本申请涉及棋谱纠正技术领域,尤其涉及一种棋谱纠正方法及设备。

背景技术

[0002] 在国际象棋比赛过程中,棋手对弈过程中需要记录棋谱,以便于进行赛后分析。但在比赛紧张的氛围中,由于各种原因,棋手记录的棋谱往往并不完全正确(在这里将棋手记录的棋谱称为原始棋谱),因此常常需要工作人员对原始棋谱进行纠正,使修正后的棋谱符合行棋规则,但是通过人工对原始棋谱进行纠正较为费时费力,且浪费人力资源。

发明内容

[0003] 为至少在一定程度上克服相关技术中通过人工对原始棋谱进行纠正费时费力,浪费人力资源的问题,本申请提供一种棋谱纠正方法及设备。
[0004] 本申请的方案如下:
[0005] 根据本申请实施例的第一方面,提供一种棋谱纠正方法,包括:
[0006] 获取初始待纠正棋谱;
[0007] 基于chess库引擎,依次判断所述初始待纠正棋谱中的棋步是否合法;
[0008] 在当前棋步不合法时,基于所述chess库引擎,对所述初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合;所述次代待纠正棋谱集合包括多个纠正后的棋谱;
[0009] 将所述次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正;
[0010] 在对全部棋步纠正完成后,获取最后一次循环时得到的最终纠正棋谱集合;
[0011] 在所述最终纠正棋谱集合中,确定所述初始待纠正棋谱对应的正确棋谱。
[0012] 优选的,在本申请一种可实现的方式中,所述基于chess库引擎,依次判断所述初始待纠正棋谱中的棋步是否合法,包括:
[0013] 调用所述chess库引擎的棋谱合法函数,获取符合当前棋步条件下的合法走法集合;
[0014] 判断当前棋步是否属于所述合法走法集合;
[0015] 若当前棋步属于所述合法走法集合,则判断所述当前棋步合法;若当前棋步不属于所述合法走法集合,则判断所述当前棋步不合法。
[0016] 优选的,在本申请一种可实现的方式中,所述对所述初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合,包括:
[0017] 对棋步错误类型进行分类;
[0018] 基于全部棋步错误类型,对所述不合法棋步进行纠正,得到各棋步错误类型下的纠正棋谱集合;
[0019] 将各棋步错误类型下的纠正棋谱集合进行并集,得到所述次代待纠正棋谱集合。
[0020] 优选的,在本申请一种可实现的方式中,所述棋步错误类型至少包括:
[0021] 棋步错误、棋步缺失和棋步多余。
[0022] 优选的,在本申请一种可实现的方式中,所述基于全部棋步错误类型,对所述不合法棋步进行纠正,得到各棋步错误类型下的纠正后的棋谱集合,包括:
[0023] 按照棋步错误类型对所述不合法棋步进行纠正,包括:获取所述不合法棋步对应的所述合法走法集合中的全部合法棋步,将全部所述合法棋步与所述不合法棋步依次进行替换,得到每次替换后的纠正棋谱,建立棋步错误类型下的纠正棋谱集合;
[0024] 按照棋步缺失类型对所述不合法棋步进行纠正,包括:获取所述不合法棋步对应的所述合法走法集合中的全部合法棋步,将全部所述合法棋步依次替换到所述不合法棋步的棋步缺失处,得到每次替换后的纠正棋谱,建立棋步缺失类型下的纠正棋谱集合;
[0025] 按照棋步多余类型对所述不合法棋步进行纠正,包括:将所述不合法棋步进行删除,得到删除不合法棋步后的纠正棋谱,建立棋步多余类型下的纠正棋谱集合。
[0026] 优选的,在本申请一种可实现的方式中,所述在所述最终纠正棋谱集合中,确定所述初始待纠正棋谱对应的正确棋谱,包括:
[0027] 计算所述最终纠正棋谱集合中的各棋谱与所述初始待纠正棋谱的相似度;
[0028] 将所述最终纠正棋谱集合中相似度最高的棋谱确定为所述待纠正棋谱对应的正确棋谱。
[0029] 优选的,在本申请一种可实现的方式中,所述计算所述最终纠正棋谱集合中的各棋谱与所述初始待纠正棋谱的相似度,包括:
[0030] 将所述最终纠正棋谱集合中的各棋谱和所述初始待纠正棋谱转换为字符串列表;
[0031] 基于字符串相似度比较函数计算所述最终纠正棋谱集合中的各棋谱与所述初始待纠正棋谱的相似度。
[0032] 优选的,在本申请一种可实现的方式中,还包括:
[0033] 若循环过程中出现的不合法棋步数量超过预设步数阈值,则停止纠正,并反馈错误信息。
[0034] 根据本申请实施例的第二方面,提供一种棋谱纠正设备,包括:
[0035] 处理器和存储器;
[0036] 所述处理器与存储器通过通信总线相连接;
[0037] 其中,所述处理器,用于调用并执行所述存储器中存储的程序;
[0038] 所述存储器,用于存储程序,所述程序至少用于执行以上任一项所述的一种棋谱纠正方法。
[0039] 本申请提供的技术方案可以包括以下有益效果:本申请中的棋谱纠正方法,包括:获取初始待纠正棋谱,基于chess库引擎,依次判断初始待纠正棋谱中的棋步是否合法。在当前棋步不合法时,基于chess库引擎,对初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合,此时完成一次棋谱的纠正循环,并将次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正。在对全部棋步纠正完成后,获取最后一次循环时得到的最终纠正棋谱集合,在最终纠正棋谱集合中,确定初始待纠正棋谱对应的正确棋谱。本申请中,基于chess库引擎对棋步是否合法进行判断和纠正,由于不合法棋步可能有多种可替换的合法棋步,本申请中可能会产生多个纠正后的最终棋谱,所以本申请中需要在最终纠正棋谱集合中确定初始待纠正棋谱对应的正确棋谱。
[0040] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

[0041] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0042] 图1是本申请一个实施例提供的一种棋谱纠正方法的流程示意图;
[0043] 图2是本申请另一个实施例提供的一种棋谱纠正方法的流程示意图;
[0044] 图3是本申请又一个实施例提供的一种棋谱纠正方法的流程示意图;
[0045] 图4是本申请又个实施例提供的一种棋谱纠正设备的结构示意图。
[0046] 附图标记:处理器‑21;存储器‑22。

具体实施方式

[0047] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0048] 一种棋谱纠正方法,参照图1,包括:
[0049] S11:获取初始待纠正棋谱;
[0050] 初始待纠正棋谱即棋手记录的原始棋谱,本实施例中可以通过图像识别技术从棋手记录的手写版原始棋谱中识别出电子版的原始棋谱。也可以直接获取棋手记录的电子版棋谱。
[0051] S12:基于chess库引擎,依次判断初始待纠正棋谱中的棋步是否合法;
[0052] chess库引擎是一种现有技术,可以用来判断当前棋步条件下的合法棋步集合。
[0053] 本实施例中,基于chess库引擎,依次判断初始待纠正棋谱中的棋步是否合法,参照图2,具体包括:
[0054] S121:调用chess库引擎的棋谱合法函数,获取符合当前棋步条件下的合法走法集合;
[0055] S122:判断当前棋步是否属于合法走法集合;
[0056] S123:若当前棋步属于合法走法集合,则判断当前棋步合法;若当前棋步不属于合法走法集合,则判断当前棋步不合法;
[0057] 本实施例中的棋谱合法函数可以但不限于为GetLS函数。
[0058] 国际象棋是一种双人对弈游戏,在国际象棋棋盘上每一方拥有16个棋子,其中包括8个兵,1个王,一个后,2个马,2个象,2个车。在棋谱记录中,分别采用不同英文字母代表不同种类的棋子,分别是王为“K”,后为“Q”,象为“B”,马为“N”,兵为“P”。整个棋盘是采用纵横交错的线组成,棋子处于纵横交错的线所围成的方格中,国际象棋棋盘分为64(8*8)个方格,棋盘的横格记为a‑h,纵格记为1‑8,因此对于棋盘中每一个方格的位置,均可以采用字母数字有序对的方式来唯一记录,如c6。将棋子代号与棋盘坐标结合,就可以表示棋手的走子过程,如“Bc6”表示象走在c6的位置。与此同时,“x”表示吃子,“Bxc6”表示象走到c6的位置,同时吃掉原来在c6的棋子。
[0059] 与此同时,在实际的记谱过程中,往往棋手采用更为简单上的记谱,如兵“P”常常在棋谱中进行省略,“x”表示吃子,但是在实际的记谱经常省略,同时在记谱过程中可能会引入对该步的评价或者棋盘当前的状态,如“+”表示将军,“++”表示双将,“#”表示将死。同时由于国际象棋中的特殊规则,会出现易位,“O‑O”,“O‑O‑O”等短长易位的写法,兵升变“c8=Q”等特殊写法。
[0060] 本实施例中,调用chess库引擎中的棋谱合法函数,获取符合当前棋步条件下的合法走法集合,进而判断当前棋步是否属于合法走法集合,比如当前符合当前棋步条件下的合法走法集合包括Bc6、Bc5、Bc4,若当前棋步为Bc5,属于合法走法集合,则判断当前棋步合法;若当前棋步为Bc3,不属于合法走法集合,则判断当前棋步不合法。
[0061] S13:在当前棋步不合法时,基于chess库引擎,对初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合;次代待纠正棋谱集合包括多个纠正后的棋谱;
[0062] 参照图3,对初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合,具体包括:
[0063] S131:对棋步错误类型进行分类;
[0064] S132:基于全部棋步错误类型,对不合法棋步进行纠正,得到各棋步错误类型下的纠正棋谱集合;
[0065] 具体的,棋步错误类型至少包括:
[0066] 棋步错误、棋步缺失和棋步多余;
[0067] 基于全部棋步错误类型,对不合法棋步进行纠正,得到各棋步错误类型下的纠正后的棋谱集合,包括:
[0068] 按照棋步错误类型对不合法棋步进行纠正,包括:获取不合法棋步对应的合法走法集合中的全部合法棋步,将全部合法棋步与不合法棋步依次进行替换,得到每次替换后的纠正棋谱,建立棋步错误类型下的纠正棋谱集合;
[0069] 按照棋步缺失类型对不合法棋步进行纠正,包括:获取不合法棋步对应的合法走法集合中的全部合法棋步,将全部合法棋步依次替换到不合法棋步的棋步缺失处,得到每次替换后的纠正棋谱,建立棋步缺失类型下的纠正棋谱集合;
[0070] 按照棋步多余类型对不合法棋步进行纠正,包括:将不合法棋步进行删除,得到删除不合法棋步后的纠正棋谱,建立棋步多余类型下的纠正棋谱集合。
[0071] 单次棋步错误的错误类型有三种,棋步错误、棋步缺失、棋步多余。比如,棋手在第4步记谱错误,此时在这一处的记谱错误可能是棋步错误,如第一步本应该是“Bc6”,但是此时记录成了“Bc5”导致错误。该处错误也可能是棋步缺失,比如假定正确棋谱第4步为“Nc3”,第五步为“Bc5”,但是棋手在记谱中漏掉第4步,而将第5步“Bc5”记做第4步。该处错误也可能是由于棋步多余导致,比如正确棋谱第4步为“Nc3”,但是此时却记谱为“Bc5”“Nc3”,凭空多出一步“Bc5”导致棋谱错误。
[0072] 所以,本实施例中,对于不合法棋步,均通过以上三种纠正方式进行纠正,对于每一个不合法棋步,均产生三种纠正类型下的纠正棋谱集合,且每一种纠正类型下可能均有多种合法棋步,如记录的不合法棋步为“Bc5”,在按照棋步错误进行纠正时,可能的合法棋步包括“Bc4”和“Bc6”,那么“Bc4”和“Bc6”均加入不合法棋步“Bc5”在棋步错误类型下的纠正棋谱集合。
[0073] S133:将各棋步错误类型下的纠正棋谱集合进行并集,得到次代待纠正棋谱集合。
[0074] 本实施例中,将各棋步错误类型下的纠正棋谱集合进行并集,得到次代待纠正棋谱集合,次代待纠正棋谱集合中的棋谱即为对初代待纠正棋谱的第一步不合法棋步进行纠正后得到的棋谱。
[0075] S14:将次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正;
[0076] 本实施例中,在得到次代待纠正棋谱集合后,将次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正。即,判断次代待纠正棋谱集合中棋谱的棋步是否合法。
[0077] 如初代待纠正棋谱的不合法棋步为第20步,基于chess库引擎,对初始待纠正棋谱中的第20步棋步进行纠正,各棋步错误类型下的纠正棋谱集合中共有10个纠正后的棋谱。在进行下一次循环时,可以从这10个纠正后的棋谱的第1步开始重新判断(减少程序代码复杂度),也可以直接从这10个纠正后的棋谱的第21步开始判断(增加程序代码复杂度以提升纠正时的效率),以此类推。
[0078] S15:在对全部棋步纠正完成后,获取最后一次循环时得到的最终纠正棋谱集合;
[0079] 在棋谱中的全部棋步遍历完成,且未出现不合法棋步时,代表最后一次循环完成。此时最终纠正棋谱集合中的棋谱均为正确棋谱。
[0080] S16:在最终纠正棋谱集合中,确定初始待纠正棋谱对应的正确棋谱。
[0081] 具体包括:
[0082] 计算最终纠正棋谱集合中的各棋谱与初始待纠正棋谱的相似度;
[0083] 将最终纠正棋谱集合中相似度最高的棋谱确定为待纠正棋谱对应的正确棋谱。
[0084] 进一步的,计算最终纠正棋谱集合中的各棋谱与初始待纠正棋谱的相似度,包括:
[0085] 将最终纠正棋谱集合中的各棋谱和初始待纠正棋谱转换为字符串列表;
[0086] 基于字符串相似度比较函数计算最终纠正棋谱集合中的各棋谱与初始待纠正棋谱的相似度。
[0087] 无论是初始待纠正棋谱还是最终纠正棋谱集合中的各正确棋谱,从程序的角度来看,都是一个字符串列表,将初始待纠正棋谱和最终纠正棋谱集合中的各正确棋谱转换为字符串列表,将该字符串列表中的元素按顺序拼接为一个长的字符串,通过python的difflib库中的字符串相似度比较函数就可以得到原始棋谱与修正后的棋谱的相似值,该值介于0到1,越接近于1,两者越相似。
[0088] 对最终纠正棋谱集合中的各正确棋谱,都与待纠正棋谱按以上方法计算相似值,取整个最终纠正棋谱集合中相似值最高的正确棋谱为最终的待纠正棋谱对应的正确棋谱。
[0089] 本实施例中的棋谱纠正方法包括:获取初始待纠正棋谱,基于chess库引擎,依次判断初始待纠正棋谱中的棋步是否合法。在当前棋步不合法时,基于chess库引擎,对初始待纠正棋谱中不合法棋步进行纠正,得到次代待纠正棋谱集合,此时完成一次棋谱的纠正循环,并将次代待纠正棋谱集合中的棋谱作为下次循环的待纠正棋谱进行纠正。在对全部棋步纠正完成后,获取最后一次循环时得到的最终纠正棋谱集合,在最终纠正棋谱集合中,确定初始待纠正棋谱对应的正确棋谱。本实施例中,基于chess库引擎对棋步是否合法进行判断和纠正,可能会产生多个纠正后的最终棋谱,所以本实施例中需要在最终纠正棋谱集合中确定初始待纠正棋谱对应的正确棋谱。
[0090] 一些实施例中的棋谱纠正方法,还包括:
[0091] 若循环过程中出现的不合法棋步数量超过预设步数阈值,则停止纠正,并反馈错误信息。
[0092] 本实施例中,在循环过程中出现的不合法棋步数量超过预设步数阈值时,判定该初始待纠正棋谱可能在记录时受到其他因素干扰,导致不合法棋步过多无法进行纠正,此时直接终止程序并反馈该待纠正棋谱的错误信息。
[0093] 一种棋谱纠正设备,参照图4,包括:
[0094] 处理器21和存储器22;
[0095] 处理器21与存储器22通过通信总线相连接;
[0096] 其中,处理器21,用于调用并执行存储器22中存储的程序;
[0097] 存储器22,用于存储程序,程序至少用于执行以上任一实施例中的一种棋谱纠正方法。
[0098] 可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
[0099] 需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
[0100] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0101] 应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0102] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0103] 此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0104] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0105] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0106] 尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。