一种基于树状拓扑的纸牌游戏的牌面生成装置制造方法及图纸

技术编号:34475772 阅读:16 留言:0更新日期:2022-08-10 08:50
一种基于树状拓扑的纸牌游戏的牌面生成装置,包括参数初始化模块、拓扑结构生成模块、牌面点数生成模块和展示模块。所述参数初始化模块用于设置牌面的基本参数。拓扑结构生成模块根据参数初始化模块中设置的牌桌区纸牌数量参数,随机生成符合数量要求的拓扑结构。所述牌面点数生成模块,根据拓扑结构生成模块保存的拓扑结构E与参数初始化模块中设置的参数,为每个节点赋予符合数量要求和通关率要求的点数。所述展示模块根据牌面点数生成模块输出的牌面,将其展示为符合堆叠顺序的形式,加载到游戏界面上。本装置不仅可以得到形式丰富多样的牌面结构,还能够降低海量模型加载导致的游戏装置卡顿的问题。的游戏装置卡顿的问题。的游戏装置卡顿的问题。

【技术实现步骤摘要】
一种基于树状拓扑的纸牌游戏的牌面生成装置


[0001]本专利技术属于计算机设计领域,涉及一种单人纸牌游戏的牌面生成装置,具体涉及一种基于树状拓扑的纸牌游戏的牌面生成装置。

技术介绍

[0002]TriPeaks是一款经典的单人纸牌游戏,使用点数为A、2、3...J、Q、K的纸牌组成牌面,牌面包括两个部分,牌桌区与底牌区,如图1所示,牌桌区的纸牌分层堆叠,形成金字塔或倒金字塔等形成,其中叠放在最上层的纸牌为翻开状态,即数字面朝上,其余纸牌的数字面朝下。底牌区的纸牌按照随机顺序横向堆叠,同样,叠放在最上层的纸牌数字面朝上,其余纸牌均为数字面朝下。
[0003]根据底牌区翻开纸牌的点数,选择牌桌区翻开的纸牌中,点数相邻的纸牌进行回收,牌桌区被回收的纸牌成为底牌区翻开的纸牌,而底牌区原本被翻开的那张纸牌做丢弃处理。如果牌桌区不存在任何可以被回收的纸牌,则将底牌区被翻开的纸牌丢弃,并将原本堆叠在其下方的纸牌翻开。当牌桌区中数字朝下的纸牌上方没有堆叠纸牌时,将该纸牌翻开,作为可以被回收的纸牌。依次类推,直至牌桌区的所有纸牌被回收,游戏成功。如果底牌区的纸牌全部被丢弃,但是牌桌区还存在没有被回收的纸牌,则游戏失败。
[0004]现有TriPeaks纸牌游戏的牌面形式中,牌桌区的纸牌一般堆叠为金字塔形或倒金字塔形,区别仅在于堆叠的层数不同,形式比较单一,可玩性比较低,同时也不利于游戏的难度设置。如果依靠人工的方式来设计不同的牌面结构,虽然可以保证形式的丰富性,但是工作量太大,此外在游戏运行过程中也对游戏装置的性能有较高要求。

技术实现思路

[0005]针对现有技术的不足,本专利技术提出了一种基于树状拓扑的纸牌游戏的牌面生成装置,通过随机生成的树状拓扑作为牌桌区纸牌的堆叠结构,丰富牌桌区牌面形式的同时,避免模型加载导致的卡顿问题。
[0006]一种基于树状拓扑的纸牌游戏的牌面生成装置,包括参数初始化模块、拓扑结构生成模块、牌面点数生成模块和展示模块。
[0007]所述参数初始化模块用于设置牌面的基本参数,包括牌桌区纸牌数量最小值MIN_N和最大值MAX_N,牌桌区纸牌分组数量G与初始翻开纸牌数量最大值MAX_I,底牌区纸牌数量Count,通关率最小值MIN_R与最大值MAX_R。其中,MIN_N<MAX_N、G<MAX_I、Count≥1、MIN_R<MAX_R。
[0008]所述拓扑结构生成模块根据参数初始化模块中设置的牌桌区纸牌数量参数,随机生成符合数量要求的拓扑结构,具体包括以下步骤:
[0009]s1.1、随机生成n个节点作为一代节点,n≥2。然后从一代节点开始向上方和下方生成n

1、n或n+1个节点作为上层二代节点和下层二代节点,以此类推,生成多代节点,即每一代节点的数量与其上一代节点的数量的关系为相等、多一个或少一个。当然以上是把同
一代的节点视为一组的情况,同一代的节点数如果大于等于2,那么就有概率会将其拆分成若干组,分组后每组各自生成自己的二代节点,区别是这些二代节点的数量只能是上一代节点数量少1或者相等。
[0010]s1.2、在每次生成完下一代节点的之后,会连接每一代节点与其下一代节点,两代之间节点的连接线不能交叉,建立拓扑结构。如果下一代节点的数量更多,则每个节点与下一代中相邻位置的两个节点同时连接;如果下一代的节点数量更少,那么每两个节点与下一代中相邻位置的一个相连接;如果两代的节点数量相同,则每个节点均可以与下一代中相同位置的节点连接,或者除了最左边或最右边的节点只连接与下一代中相同位置的节点,其余的节点连接其在二代节点中的对应位置以及相邻的一个节点。当所有节点均与其他节点连接后,得到拓扑结构A。
[0011]s1.3、判断s1.2得到的拓扑结构A是否满足左右对称关系。当拓扑结构A满足左右对称关系时,判断拓扑结构A中的总节点数是否超过牌桌区纸牌数量最大值MAX_N,若超过则返回s1.1,若不超过则将其作为拓扑结构B,并进入s1.4。当拓扑结构A不满足左右对称关系时,判断拓扑结构A中的总节点数是否超过牌桌区纸牌数量最大值的一半MAX_N/2,若超过则返回s1.1,若不超过则通过镜面复制的方法,使其满足左右对称关系后作为拓扑结构B,并进入s1.4。
[0012]s1.4、使用牌桌区纸牌数量最大值MAX_N除以s1.3得到的拓扑结构B的总节点数,将计算结果b向下取整后,判断b

1是否大于0,当b

1>0时,将拓扑结构B随机复制0~b

1次,得到拓扑结构C,并进入s1.5;当b

1≤0时,直接将拓扑结构B作为拓扑结构C,并进入s1.5。
[0013]s1.5、判断s1.4得到的拓扑结构C的总节点数是否大于牌桌区纸牌数量最小值MIN_N,若小于则进入s1.6;若大于则判断拓扑结构C的总节点数与牌桌区纸牌数量最大值MAX_N的差值是否大于6,若大于则进入s1.6,若小于则将拓扑结构C作为拓扑结构E,并直接进入s1.7。
[0014]s1.6、限制总节点数小于拓扑结构C的总节点数与牌桌区纸牌数量最大值MAX_N的差值,根据s1.1~s1.4的方法,生成拓扑结构D。然后将拓扑结构D与拓扑结构C合并,得到新的拓扑结构E。定义拓扑结构中独立树状拓扑的个数为该拓扑结构的组数,为了保证拓扑结构E的左右对称关系,当拓扑结构C的组数为奇数时,只有组数为偶数的拓扑结构D才能与其合并组成拓扑结构E,否则需要重新生成拓扑结构D。然后通过s1.5的方法对拓扑结构E进行处理。
[0015]s1.7、判断拓扑结构E的组数是否与参数初始化模块中设置的牌桌区纸牌分组数量G相等,若相等则保存该拓扑结构E。若不相等则返回s1.1,重新生成新的拓扑结构。
[0016]所述牌面点数生成模块,根据拓扑结构生成模块保存的拓扑结构E与参数初始化模块中设置的参数,为每个节点赋予符合数量要求和通关率要求的点数。具体包括以下步骤:
[0017]s2.1、根据底牌区纸牌数量Count生成一组节点,然后为该组节点与拓扑结构E中的每一个节点的位置随机放置一张纸牌,纸牌的点数范围为A、2、3...J、Q、K。
[0018]s2.2、随机选取拓扑结构E中某行的若干连续节点作为初始翻开节点,则初始翻开节点上的纸牌为初始翻开纸牌。初始翻开节点的数量在牌桌区纸牌分组数量G与初始翻开
纸牌数量最大值MAX_I之间,且所有初始翻开节点所在的位置应该满足左右对称性。
[0019]s2.3、将s2.2中选取的初始翻开节点设置为第0层节点,将拓扑结构E中与第0层节点之间具有连接线的节点设置为第1层节点,与第1层节点具有连接线的设置为第2层节点,以此类推,直至拓扑结构E中所有的节点都被赋予了层级。然后将第e层节点的纸牌设置为覆盖在与其具有连接关系的第e+1层节点的纸牌上方,得到牌桌区纸牌堆叠顺序。
[0020]s2.4、将s2.1和s2.3得到的牌桌区和底牌区纸牌堆叠顺序与纸本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于树状拓扑的纸牌游戏的牌面生成装置,其特征在于:包括参数初始化模块、拓扑结构生成模块、牌面点数生成模块和展示模块;所述参数初始化模块用于设置牌面的基本参数,包括牌桌区纸牌数量最小值MIN_N和最大值MAX_N,牌桌区纸牌分组数量G与初始翻开纸牌数量最大值MAX_I,底牌区纸牌数量Count,通关率最小值MIN_R与最大值MAX_R;其中,MIN_N<MAX_N、G<MAX_I、Count≥1、MIN_R<MAX_R;所述拓扑结构生成模块根据参数初始化模块中设置的牌桌区纸牌数量参数,随机生成符合数量要求的拓扑结构,具体包括以下步骤:s1.1、随机生成n个节点作为一代节点,n≥2;然后在一代节点的上方和下方生成n

1、n或n+1个节点作为上层二代节点和下层二代节点,以此类推,生成多代节点,即每一代节点的数量与其上一代节点的数量的关系为相等、多一个或少一个;在下一代节点生成前,如果当前一代的节点数大于等于2时,随机将其拆分成若干组或不拆分,分组后每组各自生成下一代节点,拆分后生成的下一代节点的数量与上一代节点的数量相等或少一个;s1.2、在每次生成完下一代节点的之后,将相邻两代的节点进行连接,两代之间节点的连接线不能交叉,建立拓扑结构;如果下一代节点的数量更多,则每个节点与下一代中相邻位置的两个节点同时连接;如果下一代的节点数量更少,那么每两个节点与下一代中相邻位置的一个相连接;如果两代的节点数量相同,则每个节点均可以与下一代中相同位置的节点连接,或者除了最左边或最右边的节点只连接与下一代中相同位置的节点,其余的节点连接其在二代节点中的对应位置以及相邻的一个节点;当所有节点均与其他节点连接后,得到拓扑结构A;s1.3、判断s1.2得到的拓扑结构A是否满足左右对称关系;当拓扑结构A满足左右对称关系时,判断拓扑结构A中的总节点数是否超过牌桌区纸牌数量最大值MAX_N,若超过则返回s1.1,若不超过则将其作为拓扑结构B,并进入s1.4;当拓扑结构A不满足左右对称关系时,判断拓扑结构A中的总节点数是否超过牌桌区纸牌数量最大值的一半MAX_N/2,若超过则返回s1.1,若不超过则通过镜面复制的方法,使其满足左右对称关系后作为拓扑结构B,并进入s1.4;s1.4、使用牌桌区纸牌数量最大值MAX_N除以s1.3得到的拓扑结构B的总节点数,将计算结果b向下取整后,判断b

1是否大于0,当b

1>0时,将拓扑结构B随机复制0~b

1次,得到拓扑结构C,并进入s1.5;当b

1≤0时...

【专利技术属性】
技术研发人员:高奕杰
申请(专利权)人:杭州师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1