一种基于球面的围棋对弈系统及其对弈和落子方法

文档序号:9910530阅读:556来源:国知局
一种基于球面的围棋对弈系统及其对弈和落子方法
【技术领域】
[0001]本发明涉及基于球面的围棋对弈软件技术领域,尤其涉及一种基于球面的围棋对弈系统及其对弈和落子方法。
【背景技术】
[0002]随着我国物质生活水平的不断提高,人们休闲娱乐的需求也不断增长,各种网络游戏、手机游戏发展迅猛。棋类游戏是益智类游戏,能够锻炼思维能力,深受广大群众喜爱。棋类游戏包括双人游戏和多人游戏,前者偏于对抗,后者偏于娱乐。几千年来,围棋对弈一直在平面上进行,因有边有角,边上的交叉点三气,角上的交叉点二气,至使边角在对弈中有特殊性,在边角处形成了许多大型的变化繁多的定式,造成了围棋的复杂性。

【发明内容】

[0003]针对以上问题,本发明提出一种基于球面的围棋对弈系统及其对弈和落子方法,能在球面上下棋的方式,减少大型定式、提高围棋趣味性,将平面棋盘拓展到球面上来,在球面上大致均匀的分布384个交叉点,每个交叉点均有四口气,整个棋盘首尾相连,无边无角,成为一个大致对称的棋盘,在这样的棋盘上对弈,无需考虑边角,一些难记的边角定式、边角死活都成为过去,所有棋子都落在中腹,但球面围棋并未因取消边角而损失下棋的乐趣。
[0004]本发明的技术方案如下:
[0005]上述的基于球面的围棋对弈系统,其不在平面上进行,而是在球面上进行,其包括逻辑单元和界面单元;所述逻辑单元包括棋子位置模块、棋谱模块、棋子模块、形势判断模块和逻辑接口模块;所述界面单元包括WebGL图形库、交互模块、通信模块和绘制图形模块;所述棋子位置模块用于保存所有球面上的384个棋子位置的编号及其空间坐标,同时保存这些编号之间的关系;所述棋谱模块用于保存棋子的落子顺序及标识棋子是否是死子;所述棋子模块用于记录棋子数据信息;所述形势判断模块用于读取棋谱中的所有活子,判断球面上哪些位置大概属于哪一方,以此来计算对局双方谁占的地方多,同时用于最后计算目数;所述逻辑接口模块用于统一管理所述棋子位置模块、棋谱模块和形势判断模块并向所述界面单元提供交互,同时用于向所述界面单元提供其它所有棋盘上的信息;所述WebGL图形库用于提供图形操作;所述交互模块用于捕捉鼠标事件,同时用于接收界面上所有按钮的事件;所述通信模块用于在对局者双方以及观众之间建立通信,将对局者落子信息传递到另一方以及其它观众那里;所述绘制图形模块用于统一管理所述WebGL图形库、交互模块、通信模块并与所述逻辑单元交互。
[0006]所述基于球面的围棋对弈系统,其中:所述棋子位置模块保存的编号之间的关系,具体是指某一个位置的四个相邻的其它位置编号,以此来判断某一个位置周围是否有其它棋子,是什么颜色的棋子,用于判断棋子的死活;所述棋谱模块标识的棋子如果是死子,则所述界面单元上不显示;所述棋子模块是棋谱类下的一个子类,其记录的棋子信息包括棋子的坐标、棋子所提的死子和棋子的讲解;在界面每落一子,都通过所述逻辑接口模块传向所述逻辑单元,所述逻辑单元返回提子内容。
[0007]所述基于球面的围棋对弈系统,其中:所述交互模块捕捉的鼠标事件包括单击、双击、按下后移动和滚轮的滚动,所述交互模块接收所述界面单元上的按钮事件包括申请点目和认输。
[0008]—种基于球面的围棋对弈系统的对弈方法,其中,所述对弈方法的具体流程为:一个用户邀请另一用户对弈时,选中对弈类型为“球面”,另一用户同意即创建球面围棋对局室;对局室创建后,只有对局者双方都进入房间,对局才开始,此时初始化对局者双方的球面逻辑模块,即所有384个交叉点上都无棋子,记录每个交叉点的4个相邻交叉点;用户可以随意旋转球面查看,等待先手方落子,之后轮流落子,直到一方认输或一方时间用完或一方请求点目;一方认输或时间用完后,对局结束,棋谱自动保存;点目时,如果双方同意结果则对局结束,保存棋谱,如果有一方不同意结果则继续落子。
[0009]一种基于球面的围棋对弈系统的落子方法,具体包括以下步骤:
[0010](I)落子,即用户按下鼠标移动可旋转球面,此时不落子;当用户点击球面某一交叉点时,先判断是否轮该用户落子;
[0011](2)检查是否能合并到“±夬”中,即所述“±夬”是一堆紧挨在一起的棋子的集合,用户落子后,检查该棋子是否紧挨着自己的某些另外的棋子;
[0012](3)检查是否能合并到“链”中,即所述“链”是两个或两个以上无法分开的“±夬”的集合,新落的棋子并入“±夬”或新成立“±夬”后,检查该“±夬”与其它已知“±夬”是否能组成“链”;
[0013](4)检查是否有提子,ΒΓ链”建完后,检查所有对方的“链”,是否存在气数为O的“链”;
[0014](5)检查是否产生打劫点,即如果落子有提子并且提子数是I的,检查该提子周围四气中是否有三气是对方棋子;
[0015](6)返回所有死子,即落子结束后,返回所有死子,在界面上去掉死子。
[0016]所述基于球面的围棋对弈系统的落子方法,其中:所述步骤(I)在判断是否轮该用户落子时,如果轮到该用户落子,再判用户点击的位置能否落子,如果能落子,在此位置做一标识,高亮给用户看到,当用户再次在此位置点击时,落子;如果用户另点其它位置,则高亮其它位置。
[0017]所述基于球面的围棋对弈系统的落子方法,其中:所述步骤(2)检查该棋子是否紧挨着自己的某些另外的棋子时,如果是,则将此子并入旁边棋子所在的“±夬”中,如果周围无自己的棋子,则该棋子自身组成一个新“±夬”,并入新“±夬”后,计算此新“±夬”的气数、子数,保存待用。
[0018]所述基于球面的围棋对弈系统的落子方法,其中:所述步骤(3)检查该“±夬”与其它已知“±夬”是否能组成“链”时,如果不能与别的“±夬”组成“链”,则此“±夬”自成一新“链”,然后检查此新“链”的气数和子数以及相邻其它“链”的气数,保存待用。
[0019]所述基于球面的围棋对弈系统的落子方法,其中:所述步骤(4)检查所有对方的“链”是否存在气数为O的“链”时,如果存在,将这些棋子记录于刚落的棋子的“提子数组”中,以便用户悔棋时复活这些棋子;提子后,从“链”集合中删除死“链”,从“块”集合中删除死“块”。
[0020]所述基于球面的围棋对弈系统的落子方法,其中:所述步骤(5)检查该提子周围四气中是否有三气是对方棋子时,如果是,这里是个打劫点,标识这个位置,下一手不允许对方用户在这里落子,如果不存在打劫点,即落到了其它位置,则修改打劫标识,所有地方均可落子。
[0021]有益效果:
[0022]本发明基于球面的围棋对弈系统及其对弈和落子方法构思简单、合理,操作使用便捷,落子、提子反应速度快且误差小,错误率低,能给人们带来良好游戏体验;能在球面上下棋的方式,减少大型定式、提高围棋趣味性,将平面棋盘拓展到球面上来,在球面上大致均勾的分布384个交叉点,每个交叉点均有四口气,整个棋盘首尾相连,成为一个大致对称的棋盘,在这样的棋盘上对弈,无需考虑边角,一些难记的边角定式、边角死活都成为过去,所有棋子都落在中腹,但球面围棋并未因取消边角而损失下棋的乐趣;在球面上下围棋,无边边角,减少了边角上的大型复杂定式,任何一点都是天元,任何一点都又与其它点关联,相互依赖、相互影响,是对19路平面围棋的扩展和延伸。
[0023]本发明的球面围棋在使用上的特点:
[0024](I)、全盘384个交叉点,每个交叉点四气;
[0025](2)、黑贴I目,黑占位大于等于193目获胜,白占大于等于191点目胜;
[0026](3)、由于需要符合欧拉多面体公式,不能做到完全由四边形覆盖球面,因此产生8个三角形,致使8个顶点在征子时稍有特殊,将此8点标记为星位;
[0027](4)、让子棋时,让子位置在上述8个星位处,最多能让8子;
[0028](5)、其它规则与常规围棋一致。
【附图说明】
[0029]图1为本发明基于球面的围棋对弈系统中球面围棋球面上384个交叉点展开成平面的位置示意图;
[0030]图2为本发明基于球面的围棋对弈系统的结构示意图;
[0031]图3为本发明基于球面的围棋对弈系统的对弈方法的流程图;
[0032]图4为本发明基于球面的围棋对弈系统的落子方法的流程图。
【具体实施方式】
[0033]如图2所示,本发明基于球面的围棋对弈系统,包括逻辑单元I和界面单元2。
[0034]该逻辑单元I包括棋子位置模块11、棋谱模块12、棋子模块13、形势判断模块14和逻辑接口模块15。
[0035]该棋子位置模块11用于保存所有球面上的384个棋子位置的编号及其空间坐标,同时保存这些编号之间的关系,即某一个位置的四个相邻的其它位置编号,以此来判断某一个位置周围是否有其它棋子,是什么颜色的棋子,用于判断棋子的死活等。
[0036]该棋谱模块12用于保存棋子的落子顺序,如第一手是黑棋还是白棋,落到了384个交叉点里的哪个点上;该棋谱模块12同时用于标识棋子是否是死子,如果是死子,则界面上不显示。
[0037]该棋子模块13是棋谱类下的一个子类,用于记录棋子的坐标、此子所提的死子、此子的讲解等。
[0038]该形势判断模块14用于读取棋谱中的所有活子,判断球面上哪些位置大概属于哪一方,以此来计算对局双方谁占的地方多,同时用于最后计算目数。
[0039]该逻辑接口模块15用于统一管理棋子位置模块11、棋谱模块12和形势判断模块14并向界面单元2提供交互;界面每落一子,都通过此逻辑接口模块15传向逻辑单元I,逻辑单元I返回提子内容;该逻辑接口模块15同时用于向界面提供其它所有棋盘上的信息,如哪里能落子、哪里不能落子、下一手应该是白棋还是黑棋等。
[0040]该界面单元2包括WebGL图形库21、交互模块22、通信模块23和绘制图形模块24。[0041 ]该WebGL图形库21是一个基础的三维图形库,用于提供图形操作,如定义坐标系统,在空间什么位置绘制什么图形等。
[0042]该交互模块22用于捕捉鼠标事件,如
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1