CN101380515B - 一种电子棋类棋盘与电脑系统进行交互的方法 - Google Patents
一种电子棋类棋盘与电脑系统进行交互的方法 Download PDFInfo
- Publication number
- CN101380515B CN101380515B CN2007100769165A CN200710076916A CN101380515B CN 101380515 B CN101380515 B CN 101380515B CN 2007100769165 A CN2007100769165 A CN 2007100769165A CN 200710076916 A CN200710076916 A CN 200710076916A CN 101380515 B CN101380515 B CN 101380515B
- Authority
- CN
- China
- Prior art keywords
- chess
- computer system
- chessboard
- electric
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种电子棋类棋盘与电脑系统进行交互的方法,电子棋类棋盘与电脑系统通过接口互连,电脑系统和电子棋类棋盘在该接口上实现本发明中定义的信息交换协议,完成行棋命令和数据的交互,首次提出一种电子棋类棋盘与电脑系统之间交换行棋信息的通用方法,使电子棋类棋盘与电脑系统之间采用统一的方法交换与行棋相关的命令和数据,可以使各种电脑系统与各种电子棋类棋盘互连互通,从而拓展电子棋类棋盘的应用,使得电脑系统与电子围棋棋盘之间的接口标准化。
Description
技术领域
本发明涉及计算机技术,特别是指一种电子棋类棋盘与电脑系统进行交互的方法。
背景技术
围棋对弈使用图1所示的围棋棋盘,棋盘上有361(19行×19列)个可以放置棋子的交叉点,也称作棋位,使用黑色棋子和白色棋子对弈,且对弈双方各使用一种颜色的棋子。通常,由黑方先行棋,双方轮流行棋,任何一次行棋只能落入一个棋子。当一方行棋后导致对方棋子只有一气,本次行棋叫做“打吃”,即下一次行棋便可以吃掉对方的棋子。当一方行棋后导致对方的棋子不再有气,本次行棋叫做“吃子”或者“提子”,此时必须将所有被吃的棋子从棋盘上取走。任何一方行棋时不得导致自己的棋子无气,否则本次行棋无效。可见,一次行棋包括:将行棋方的棋子落入在交叉点上,若本次行棋可以吃掉对方棋子,还应将被吃棋子从棋盘上取走。本发明中,将一次行棋叫做行棋步骤。
一局围棋对弈,双方需要行棋上百次。为保留整个对弈过程的信息,需要记录每一次行棋步骤和对弈胜负结果,从而形成棋谱,例如,重要的围棋比赛,需要记录比赛的对弈过程形成棋谱,以便比赛结束后讲解和分析比赛。另外,围棋学习者也可以研究棋谱,学习围棋高手的布局和攻杀技巧。
最初有两种记录棋谱的方法,分别是手工记录方法和摄像记录方法。
手工记录方法——每次棋手行棋之后,由记录者在记录纸上标记本次行棋。这种方法简单,但实时性比较差,很难实现网络实时观看比赛的对弈过程,而且手工记录容易出错。
摄像记录方法——通过摄像机拍摄对弈过程,将图像传给计算机进行图像处理,计算机判断行棋过程并进行记录。这种方法实时性好,但容易受比赛环境和棋手动作的影响,例如,棋手行棋时手会在棋盘上晃动,会导致计算机判断失误而出现错误记录。
为解决实时、准确记录对弈过程的问题,专利03103345.8和专利申请200710076128.6都提出了电子围棋棋盘解决方案,棋手使用电子围棋棋盘进行对弈,由电子围棋棋盘实时地检测棋子状态信息并上报电脑系统,由电脑系统记录每次行棋步骤和行棋时间,从而形成棋谱。
不同的电子围棋棋盘采用不同的技术实现相同或不同的功能,例如:专利03103345.8的电子围棋棋盘具有显示和告警功能,但是没有行棋位置指示功能,而专利申请200710076128.6的电子围棋棋盘不具有显示和告警功能,但具有行棋位置指示功能。专利03103345.8利用红外线反射的原理实现棋子状态的检测,而专利申请200710076128.6利用磁铁具有N/S级磁性和导电性实现棋子状态的检测。虽然这些电子围棋棋盘采用了不同的技术实现各自的功能,并采用不同的接口与电脑系统连接,但都必须与电脑系统交换与行棋相关的命令和数据。专利申请200710076128.6公开的电子围棋棋盘不仅可以用于比赛时记录棋谱,而且还可以用于人机对弈和网络对弈。人机对弈,是指电脑系统具有人工智能,并作为对弈的一方与棋手进行对弈。网络对弈,是指棋手使用电脑系统接入网络(例如Internet)与网络对端的棋手或者系统进行对弈。
专利03103345.8提及了电子围棋棋盘与电脑系统之间的信息交换,电脑系统向电子围棋棋盘发送指令,例如自检、通讯检查、比赛、练习、快棋、暂停指令,电子围棋棋盘根据收到的不同指令进行工作,并实时向电脑系统发回相关信息。但是该专利未指出每条指令携带的信息和指令之间的关系,也未指出电子围棋棋盘如何详细处理这些指令并应答电脑系统。可见,专利03103345.8所提到的是一些简单的指令下达,不能作为电脑系统与电子围棋棋盘之间通用的通讯方法实现信息交换。
如何实现电子围棋棋盘与电脑系统之间采用统一的方法交换与行棋相关的命令和数据,拓展电子围棋棋盘的应用,成为亟待解决的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种电子棋类棋盘与电脑系统进行交互的方法,使得电子棋类棋盘与电脑系统之间能够互连互通。
为达到上述目的,本发明的技术方案是这样实现的:
一种电子棋类棋盘与电脑系统进行交互的方法,电子棋类棋盘与电脑系统通过接口互连,该方法包括:
电脑系统向电子棋类棋盘发送配置请求消息,电子棋类棋盘根据收到的配置请求消息对电子棋类棋盘进行配置,向电脑系统返回配置响应消息;
电子棋类棋盘扫描棋盘上所有棋子的状态,电子棋类棋盘向电脑系统发送行棋指示消息;
电脑系统向电子棋类棋盘发送行棋命令消息,电子棋类棋盘根据收到的行棋命令消息指示棋手代替对方行棋。
所述行棋指示消息携带:棋子位置位图、颜色位图指示和棋子颜色位图。
本发明中,电子棋类棋盘与电脑系统通过接口互连,电脑系统和电子棋类棋盘在该接口上实现本发明中定义的信息交换协议,完成行棋命令和数据的交互,首次提出一种电子棋类棋盘与电脑系统之间交换行棋信息的通用方法,使电子棋类棋盘与电脑系统之间采用统一的方法交换与行棋相关的命令和数据,可以使各种电脑系统与各种电子棋类棋盘互连互通,从而拓展电子棋类棋盘的应用,使得电脑系统与电子围棋棋盘之间的接口标准化。
附图说明
图1为围棋棋盘示意图;
图2A为本发明结构示意图一;
图2B为本发明结构示意图二;
图3A为本发明逻辑结构示意图图一;
图3B为本发明逻辑结构示意图图二;
图3C为本发明逻辑结构示意图图三;
图4为本发明A接口协议栈结构示意图;
图5为本发明的坐标系统示意图;
图6为本发明系统配置流程图;
图7为本发明行棋指示流程图;
图8A为本发明PositionBitmap结构示意图;
图8B为本发明ColorBitmap结构示意图;
图9为本发明行棋命令流程图;
图10为本发明状态更新流程图;
图11为本发明告警指示流程图;
图12为本发明棋子状态检查流程图;
图13A为本发明本地棋手请求悔棋流程图;
图13B为本发明对方棋手请求悔棋流程图;
图14为本发明本地对弈模式流程图;
图15为本发明人机/网络对弈模式流程图;
图16为本发明棋谱演示模式流程图;
图17为本发明技巧练习模式流程图;
图18为本发明打吃和吃子行棋流程图;
图19为本发明中国象棋棋盘示意图;
图20为本发明国际象棋棋盘示意图。
具体实施方式
本发明中,电子棋类棋盘与电脑系统通过接口互连,电脑系统和电子棋类棋盘在该接口上实现本发明中定义的信息交换协议,完成行棋命令和数据的交互。
本发明中的电子棋类棋盘与电脑系统通过接口互连,电脑系统可以是个人电脑、掌上电脑、便携式电脑、网络服务器、游戏机,甚至是手机等具有处理能力的设备。电子棋类棋盘可以是电子围棋棋盘、电子象棋棋盘等各种棋类的棋盘。接口可以是标准的RS232串行接口、并行接口、红外线接口、USB接口或其他接口,图2A描述了采用这些接口时,电子棋类棋盘与电脑系统之间的连接关系。接口也可以是以太网接口或者无线通信网络接口,例如蓝牙无线接口或无线本地局域网(WLAN)接口,当采用这些接口时,电子围棋棋盘与电脑系统之间通过网络来互连,图2B描述了采用这些接口时电子棋类棋盘与电脑系统之间的连接关系。
本发明支持多种运行模式,分别是:
1.本地对弈模式
本地对弈模式的特点是,对弈双方在同一个棋类棋盘上进行相应棋类的对弈,电脑系统主要完成以下功能:
行棋检查,检查每次行棋是否有效,例如,行棋位置是否有效、被吃棋子是否正确;
棋谱记录,记录每次行棋的位置和时间并形成棋谱,便于对弈结束后用于演示和讲解对弈过程,也便于在对弈过程中处理悔棋;
对弈计时,计算每次行棋的时间并判断是否超时。
2.人机对弈模式
人机对弈模式的特点是,棋手通过棋类棋盘与电脑系统对弈。人机对弈模式下,电脑系统除了完成行棋检查、棋谱记录和对弈计时功能外,更重要的是执行人工智能,即电脑系统执行相应棋类对弈的人工智能软件,当由电脑系统行棋时计算行棋的位置。
3.网络对弈模式
网络对弈模式的特点是,电脑系统接入网络、如Internet,棋手通过与电脑系统互连的棋类棋盘与网络对端的棋手或系统对弈。与人机对弈模式相比,差别在于本地的电脑系统不执行人工智能,与本地对弈模式相比,差别在于对方棋手在网络的对端而不是本地。因此在网络对弈模式下,电脑系统需要传递对弈双方的行棋命令和数据。网络对弈模式下,网络对端的棋手可以使用棋类棋盘进行对弈,也可以直接使用电脑系统进行对弈。此处的本地是指电子围棋棋盘所在地。
4.棋谱演示模式
棋谱演示模式的特点是,电脑系统将记录的棋谱逐步在棋类棋盘上指示出来,由演示者代替电脑系统在棋类棋盘上行棋。该模式主要用于棋谱讲解、比赛讲解。演示模式下,每次都由电脑系统行棋,且由电脑系统通知棋类棋盘指示行棋位置,由演示者代替电脑系统行棋。
5.技巧练习模式
技巧练习模式的特点是,棋手按照电脑系统显示的棋子状态,或者按照棋类棋盘的指示,在棋类棋盘上布置好棋子,然后再进行人机对弈。这种模式主要用于练习相应棋类的对弈技巧,因为很多对弈技巧应用于特定的条件。
以上运行模式下,电脑系统通常实时显示对弈过程,并提供系统配置、告警提示、状态信息显示等功能。
下面以围棋棋盘与电脑系统互联为例,对本发明的具体实现进行详细描述。
本发明中,将电子围棋棋盘与电脑系统互连后组成的系统抽象成图3A所示的系统模型,该模型包括三个逻辑功能实体:客户端(Client)、代理(Agent)和服务端(Server)。客户端是指棋手能够进行行棋操作的逻辑功能实体,它就是电子围棋棋盘;代理是指可以代替服务端执行本地处理以提高执行效率的逻辑功能实体,例如代替服务端检查行棋的有效性;服务端是指具有行棋检查、棋谱记录、对弈计时、人工智能等功能的逻辑功能实体,它是对弈过程的控制中心。客户端与代理之间的逻辑接口为A接口,代理与服务端之间的逻辑接口为B接口。
在本地对弈模式、人机对弈模式、棋谱演示模式和技巧练习模式下,服务端和代理位于同一电脑系统,而客户端位于电子围棋棋盘,如图3B所示。在网络对弈模式下,服务端位于网络服务器,电脑系统通过网络与网络服务器互连,代理位于电脑系统,而客户端仍位于电子围棋棋盘,如图3C所示。本发明主要定义电子围棋棋盘与电脑系统之间A接口的行棋信息交换协议。
图4示出了A接口的协议栈,它包括物理/链路层协议、传输层协议和DN/QP协议。其中,物理/链路层协议和传输层协议与实际采用的接口类型相关,且属于现有公开技术,例如:若采用USB接口,则物理/链路层和传输层遵循USB接口通讯标准;若采用以太网接口,则物理/链路层遵循以太网接口通讯标准,传输层协议可采用TCP/IP协议。DN/QP协议实现电脑系统与电子围棋棋盘之间交换与行棋相关的命令和数据,本发明的主要内容就是定义DN/QP协议。B接口超出本发明的范围,因此不详细描述。
本发明采用图5所示的坐标系统,将坐标原点设置在棋盘的左下角。围棋棋盘有361个交叉点(19行×19列),按照图5所示的坐标,左下脚第一个交叉点的位置为(1,1),而右上角最后一个交叉点的位置为(19,19)。另外,也可以采用其他坐标系统,只要能够表示每个交叉点的坐标位置即可,但对弈双方必须使用相同的坐标系统。
A接口的基本功能和流程
系统配置
I.功能描述
系统配置是在对弈之前配置电脑系统和电子围棋棋盘的运行环境参数的过程。系统配置包括:
1)设置运行模式
本发明支持多种运行模式,由于不同运行模式下系统的处理过程存在差异,因此应根据使用场景设置运行模式,例如:如果双方进行面对面对弈,则设置本地对弈模式,该模式下不存在代替对方行棋的情况,电脑系统不向电子围棋棋盘发送行棋命令;如果棋手要跟电脑系统进行人机对弈,则设置人机对弈模式,该模式下棋手需要代替电脑系统行棋,由电脑系统行棋时,电脑系统向电子围棋棋盘发送行棋命令,电子围棋棋盘指示棋手代替电脑系统行棋;如果棋手要跟网络对端的棋手(或系统)进行对弈,则设置网络对弈模式,该模式下棋手需要代替对方行棋,网络对端的棋手行棋后,电脑系统将收到的行棋信息发送给电子围棋棋盘,电子围棋棋盘指示本地棋手代替对方棋手行棋;如果需要讲解棋谱,则设置棋谱演示模式,该模式下每次行棋都由讲解者代替电脑系统行棋,因此每次行棋时电脑系统都向电子围棋棋盘发送行棋命令;如果需要练习对杀技巧,则设置技巧练习模式,该模式下需要棋手选择练习棋谱并预先布置好黑、白双方的棋子,然后再进行人机对弈。
2)设置双方棋子颜色
对于人机对弈模式和网络对弈模式,在对弈之前必须确定双方使用的棋子颜色,并在电子围棋棋盘上指示棋手使用的棋子颜色,以免棋手在对弈过程中使用错误的棋子。人机对弈模式下,棋手使用的棋子颜色由棋手自己选择,但仍然需要设置;网络对弈模式下,棋子颜色根据双方棋手协商来确定,也需要设置;本地对弈模式、棋谱演示模式和技巧练习模式下,不需要设置棋手的棋子颜色,其中技巧练习模式下棋手使用的棋子颜色由选择的技巧练习棋谱指定。
3)设置是否允许悔棋
在本地对弈模式和网络对弈模式下,缺省为不允许悔棋;在人机对弈模式、棋谱演示模式和技巧练习模式下,缺省为允许悔棋。但棋手仍可根据双方协商的结果或自己需要决定是否允许悔棋。一旦设置不允许悔棋,电子围棋棋盘将忽略棋手的悔棋请求,且不向电脑系统发送悔棋请求,如果电脑系统收到悔棋请求,电脑系统将忽略悔棋请求。
4)设置行棋超时时间
行棋超时是指一次行棋的时间超过了设定的时间长度。棋手可根据双方协商的结果或自己需要决定是否设置行棋超时。缺省情况下,不限制行棋时间。若棋手设置行棋超时,应指出限制的时间长度。
II.系统配置流程描述
棋手通过电脑系统的人机界面设置运行模式、双方棋子颜色、是否允许悔棋、是否限制行棋时间,棋手确认设置后,电脑系统向电子围棋棋盘发送配置请求消息,如图6所示,该配置请求消息中携带以下参数:
Mode:运行模式,指出棋手设置的运行模式。其中,Mode=0,为本地对弈模式;Mode=1,为人机对弈模式;Mode=2,为网络对弈模式;Mode=3,为棋谱演示模式;Mode=4,为技巧练习模式;其余为保留值,可以用于未来扩展。
Color:棋子颜色,指出棋手所执棋子的颜色。Color=0,表示黑色;Color=255,表示白色;1~254为无效值。本地对弈模式和棋谱演示模式下,不需要设置棋子颜色。
RepentInd:悔棋允许指示,用于指示是否允许悔棋。RepentInd=0,表示不允许悔棋;RepentInd=1,表示允许悔棋;
Timeout:行棋超时时间,用于指示一次行棋的时间不能超过指定的时间长度。若一次行棋时间超过Timeout指定的时间长度,系统将产生告警提示,提醒棋手行棋超时。Timeout可以以秒为单位。如果Timeout=0,表示不限制行棋时间。
电子围棋棋盘收到配置请求消息后:
根据Mode参数设置对弈模式;
如果是人机对弈模式、网络对弈模式或技巧练习模式,则根据Color参数显示棋手使用的棋子颜色信息;对于其他运行模式,则忽略Color参数;
根据RepentInd参数设置是否允许悔棋,若RepentInd≠0或1,则根据运行模式设置是否允许悔棋:本地对弈模式或网络对弈模式下,缺省为不允许悔棋,人机对弈模式、棋谱演示模式或技巧练习模式下,缺省为允许悔棋;
如果电子围棋棋盘具有显示功能,则显示行棋超时限制时间Timeout,否则忽略该参数。
电子围棋棋盘完成系统配置后,向电脑系统应答配置响应消息,该配置响应消息中指出系统配置的结果,配置响应消息携带以下参数:
Result:配置结果,指出配置结果是成功还是失败。Result=0,表示成功;Result≠0,表示失败,此时Result的数值就是失败的错误码,错误码可用于故障定位。Result表示的错误码见表1所示。
错误码 | 描述 |
1 | 运行模式不支持。当电子围棋棋盘不支持设置的运行模式时,系统配置失败。例如, |
没有行棋位置指示功能的电子围棋棋盘,就只能运行在本地对弈模式下。 | |
2 | 消息参数错误。例如,以下情况为参数错误:1)Mode参数的值为保留值;2)对于人机对弈模式、网络对弈模式和技巧练习模式,Color参数值为无效值 |
3 | 设备故障。电子围棋棋盘上电后通常会自检,若自检时发现设备故障(例如,自检时扫描棋子状态,扫描结果指示棋盘上有棋子,但实际上棋盘上并无棋子),则返回设备故障。 |
4~255 | 保留。 |
表1
棋手也可以通过电子围棋棋盘的人机界面执行系统配置,执行的流程与图6基本相同,此时,配置请求消息由电子围棋棋盘发出,电脑系统应答配置响应。电脑系统和电子围棋棋盘如何实现人机界面,超出本发明范围。
IV.异常处理
如果电子围棋棋盘系统配置失败,则在配置响应消息中指出配置失败的错误码。
行棋指示
I.功能描述
行棋指示是指棋手每次在电子围棋棋盘上行棋结束后,电子围棋棋盘将棋盘上的棋子状态信息上报给电脑系统,棋子状态信息包括棋子的位置信息和颜色信息。如果电子围棋棋盘不能检测棋子颜色,则棋子状态信息只包括棋子的位置信息,电脑系统通过比较记录的棋子状态信息,判断本次行棋时落入棋子和被吃棋子的位置和颜色。电子围棋棋盘如何检测棋盘上的棋子状态,取决于电子围棋棋盘的具体实现,超出本发明的范围。
II.流程描述
无论是棋手自己行棋还是代替对方行棋,每次行棋结束后,电子围棋棋盘扫描棋盘上所有棋子的状态并向电脑系统发送行棋指示消息,行棋指示消息携带以下参数:
PositionBitmap:棋子位置位图,指出棋盘上所有棋子的位置信息。该参数为57字节的比特流,如果位图中某Bit取值为1,则表示该Bit对应位置的交叉点上有棋子。
ColorBitmapInd:颜色位图指示,指出消息中是否携带有有效的ColorBitmap参数。ColorBitmapInd=0,表示未携带;ColorBitmapInd=1,表示携带。如果电子围棋棋盘不能区分棋子颜色,则ColorBitmapInd=0,电脑系统将忽略消息中的ColorBitmap参数,棋子的颜色将由电脑系统通过行棋步骤来判断,例如,由黑方行棋时,则本次行棋所落入的棋子为黑色,而提走的棋子颜色为白色。
ColorBitmap:棋子颜色位图,指出棋盘上所有棋子的颜色信息。该参数长度为57字节的比特流,若位图中某Bit取值为0,则表示该Bit对应位置的交叉点上为黑色棋子,若取值为1则表示白色棋子。
电脑系统收到行棋指示消息后,首先判断本次行棋中落入棋子和被吃棋子的位置和颜色,如图7所示,判断的方法可以是:
步骤1:将行棋指示消息中的PositionBitmap与电脑系统记录的位置位图按比特位进行异或(XOR)计算,异或的结果也是一个比特位图,而这个位图中所有取值为1的Bit表示的就是本次行棋时棋子状态有变化的位置,即落入棋子和所有被吃棋子的位置。
步骤2:根据步骤1计算出的比特位图,再判断这些棋子状态有变化的位置处与PositionBitmap对应的Bit,若为1,则说明此位置落入了棋子,若为0,则说明此位置的棋子被取走。
步骤3:再通过ColorBitmap和电脑系统记录的颜色位图,便可以判断落入棋子的颜色和被吃棋子的颜色。
然后电脑系统检查本次行棋是否有效,例如,检查落入棋子的颜色是否正确、位置是否有效。若本次行棋步骤中有棋子被吃,则进一步检查被吃棋子的信息是否完整、正确,即不能取走错误的棋子,且所有被吃棋子都必须取走。电脑系统向电子围棋棋盘响应行棋确认消息,行棋确认消息中携带以下参数:
Result:行棋检查结果,指出电脑系统检查行棋指示消息中携带的棋子状态信息是否正确。Result=0表示检查正确,其他值表示错误码,例如下表定义的错误,如表2所示。
错误码 | 描述 |
1 | 行棋无效。使用错误颜色的棋子行棋,或者行棋后致使己方棋子无气,或者其他违反对弈规则的行棋,都视为行棋无效。 |
2 | 吃子无效。对于提子行棋步骤,若取走了行棋方的棋子、或被取走的棋子不是死子、或仍有一些被吃棋子未被取走,都视为吃子无效。 |
3~255 | 保留值,用于以后扩展使用。 |
表2
如果是本地棋手行棋(而不是代替对方行棋),以上处理结束后,电脑系统计算行棋时间并记录本次行棋步骤,如何计算行棋时间超出本发明范围。对于一次有效的行棋,电脑系统通常以图形的方式显示本次行棋中落入的棋子和取走的棋子。
下面详细说明参数PositionBitmap和ColorBitmap的使用。
如图8A和8B所示,57字节长度的PositionBitmap和ColorBitmap按顺序被分为19段,每段3个字节用于表示图5中的一行(即X坐标方向上的一行)交叉点,每段3个字节首尾串联后,其中的Bit0表示第1列,Bit1表示第2列,依此类推直至Bit18表示第19列,而Bit19~Bit23为无效比特。第y段的3个字节首尾串联之后表示Y坐标值为y的那一行交叉点,3个字节首尾串联,有效的Bit0~Bit18表示一行交叉点。例如,PositionBitmap的第4段3个字节首尾串联之后,其中的Bit3(用“4Bit3”表示)就对应交叉点(4,4),若4Bit3=1,表示交叉点(4,4)处有棋子,若4Bit3=0,则表示无棋子。如果PositionBitmap中的4Bit3=1,则ColorBitmap中的4Bit3则表示棋子的颜色,0表示黑色,1表示白色。如果PositionBitmap中有效Bit的值为0,则ColorBitmap中对应Bit无效,因为交叉点上没有棋子,也就无所谓棋子的颜色。
可见,与交叉点(x.y)对应的Bit应该是“yBit(x-1)”,即第y段的Bit(x-1),其中1≤x≤19、1≤y≤19。电子围棋棋盘将每次的扫描结果填充到两个位图参数,即可以完整地将所有棋子的状态信息上报给电脑系统。
本发明中,电子围棋棋盘扫描所有棋子的状态并将扫描结果上报电脑系统,由电脑系统执行计算,例如,计算一次行棋中落入棋子和被吃棋子的位置和颜色、计算行棋是否有效,这种方法可减少电子围棋棋盘的计算,降低电子围棋棋盘对内存的要求。但也可以采用另一种方法,即由电子围棋棋盘扫描棋子状态并计算落入棋子和被吃棋子的位置和颜色,只向电脑系统上报落入棋子和被提的信息,例如,在行棋指示消息中携带以下参数:
X0,落入棋子位于棋盘的X坐标;
Y0,落入棋子位于棋盘的Y坐标;
Color,落入棋子的颜色;
Number,被吃棋子的数量,Number≥0;
X1,第1个被吃棋子位于棋盘的X坐标;
Y1,第1个被吃棋子位于棋盘的Y坐标;
Xn,第n个被吃棋子位于棋盘的X坐标;
Yn,第n个被吃棋子位于棋盘的Y坐标
其中n=1,2...180。
由于被吃棋子的颜色肯定与落入棋子的颜色不同,因此消息不携带被吃棋子的颜色信息。
III.异常处理
如果电脑系统发现行棋指示消息中携带的棋子状态错误,例如,行棋无效或吃子无效,则电脑系统在行棋确认消息中指出错误码。
行棋命令
I.功能描述
行棋命令是指电脑系统向电子围棋棋盘发送行棋命令消息,在行棋命令消息中指出落入棋子的信息,由电子围棋棋盘指示棋手代替对方棋手行棋。其中,对方棋手可以是电脑系统或网络对端的棋手。行棋命令功能不用于本地对弈模式。
II.流程描述
对方棋手行棋后,电脑系统向电子围棋棋盘发送行棋命令消息,如图9所示,行棋命令消息携带以下参数:
PositionX:横坐标,对方棋手行棋时落入棋子的X坐标;
PositionY:纵坐标,对方棋手行棋时落入棋子的Y坐标;
Notice:通知提示,指出本次行棋是否为“打吃”或“提子”,Notice=1,表示“打吃”;Notice=2,表示“提子”;其他值无效,电子围棋棋盘将忽略无效的Notice。
电子围棋棋盘收到行棋命令消息后:
指示棋手代替对方行棋,行棋位置由PositionX和PositionY确定。
如果行棋命令消息中携带有有效的Notice,电子围棋棋盘根据Notice进行“打吃”或“提子”告警提示。
III.异常处理
若电子围棋棋盘不支持告警提示功能,电子围棋棋盘忽略消息中的CautionCode参数。
状态更新
I.功能描述
状态更新是指,每次开局、行棋步骤结束、悔棋之后,电脑系统指示电子围棋棋盘更新状态信息,例如:行棋方信息、行棋次数、行棋时间、行棋超时次数。开局是指电脑系统收到指示系统配置成功的配置响应消息之后;行棋步骤结束是指电脑系统发送完指示行棋正确的行棋确认消息之后;悔棋是指棋手按照悔棋要求正确恢复棋盘上所有棋子状态,电脑系统发送完指示棋子状态恢复正确的悔棋确认消息之后。参见系统配置、行棋指示和悔棋请求章节的描述。
II.流程描述
每次对局开始、行棋步骤结束、悔棋结束之后,电脑系统向电子围棋棋盘发送状态更新消息,指示电子围棋棋盘更新指定的状态信息,如图10所示,状态更新消息携带以下参数:
Color:行棋方颜色,指出下一行棋步骤由黑方还是白方行棋;
PositionBitmap:棋子位置位图,指出当前电脑系统记录的棋子的位置信息;
ColorBitmapInd:颜色位图指示,指出状态更新消息中是否携带有有效的ColorBitmp参数;
ColorBitmap:棋子颜色位图,指出当前电脑系统记录的棋子的颜色信息。该参数仅当ColorBitmapInd=1时有效;
Steps:行棋次数,指出刚结束的行棋步骤是第几步行棋;
Time:本次行棋步骤的行棋时间;
TimeBlack:黑方行棋时间,指出黑方行棋的累计时间或剩余时间;
TimeWhite:白方行棋时间,指出白方行棋的累计时间或剩余时间;
TimeoutBack:黑方超时次数,指出黑方行棋超时的累计次数;
TimeoutWhite:白方超时次数,指出白方行棋超时的累计次数。
电子围棋棋盘收到状态更新消息后,根据Color参数指示下一行棋步骤由哪方行棋,根据Step显示当前行棋次数,根据Time参数显示本次行棋时间、双方行棋累计时间或剩余时间,根据Timeout显示双方行棋超时的次数。如果电子围棋棋盘需要进行本地的行棋有效性计算,则需要保存PositionBitmap和ColorBitmap参数,否则忽略这两个参数。
III.异常处理
若电子围棋棋盘无显示功能,则忽略要显示的消息参数。
告警提示
I.功能描述
当发生异常或者特殊事件时,电脑系统不仅进行本地告警提示,还向电子围棋棋盘发送告警提示消息,如图11所示,指示电子围棋棋盘进行告警提示,例如行棋超时。任何时候,电子围棋棋盘都必须及时处理告警提示消息,但不应影响其他流程的处理。
II.流程描述
当发生异常或者特殊事件时,电脑系统向电子围棋棋盘发送告警提示消息,告警提示消息携带以下参数:
CautionCode:告警提示码,它唯一标识一种异常或特殊事件。CautionCode的定义见表3。
CautionCode | 描述 |
1 | 超时警告。行棋时间超过设定时长时,进行该告警提示。 |
2 | 悔棋禁止。在系统不允许悔棋的情况下,若电脑系统收到棋手的悔棋请求,进行该告警提示。 |
0,3~255 | 保留值,用于以后扩展使用。 |
表3
收到告警指示消息后,电子围棋棋盘根据参数CautionCode进行相应的告警提示,例如,显示告警提示信息、或者进行声音告警提示。
III.异常处理
若电子围棋棋盘不支持告警提示功能,则忽略告警提示消息。
A接口的增强功能和流程
棋子状态检查
I.功能描述
棋子状态检查是指棋手请求电脑系统检查电子围棋棋盘上的棋子状态是否与电脑系统记录的棋子状态相同。任何时候,棋手都可以通过电子围棋棋盘提供的人机界面请求电脑系统检查棋子状态,例如,通过功能按钮请求棋子状态检查。
II.流程描述
棋手通过电子围棋棋盘提供的人机界面(例如功能按键)请求检查棋子状态,电子围棋棋盘扫描棋子状态并向电脑系统发送检查请求消息,如图12所示,检查请求消息携带以下参数:
PositionBitmap:棋子位置位图;
ColorBitmapInd:颜色位图指示;
ColorBitmap:棋子颜色位图。
收到检查请求消息后,电脑系统检查检查请求消息中携带的棋子状态信息是否与电脑系统记录的棋子状态信息相同,然后向电子围棋棋盘发送检查响应消息,检查响应消息中携带以下参数:
Result:状态检查结果,指出电脑系统检查请求消息中携带的棋子状态信息是否正确;Result=0表示正确,其他值表示错误。
电子围棋棋盘收到检查响应消息后,如果检查响应消息中Result≠0,电子围棋棋盘进行错误告警,例如闪烁告警的指示灯。
III.异常处理
若棋子状态检查错误,棋手应更正棋盘上的棋子状态,每次更正后再次请求检查棋子状态,直到棋子状态检查结果正确。
悔棋请求
I.功能描述
悔棋请求是指对弈过程中一方棋手请求悔棋并双方恢复棋子状态的过程。棋谱演示模式下,演示者为方便讲解棋谱,可回退到某一特定的行棋步骤,回退过程也是悔棋过程。棋手(或演示者)通过电脑系统或电子围棋棋盘设置的人机界面(例如功能按钮)请求悔棋。网络对弈模式下,一方请求悔棋后应等到另一方确认接受悔棋,否则悔棋请求无效,例如,若另一方拒绝悔棋请求,则悔棋请求无效。悔棋请求的处理包括两个部分:本地棋手请求悔棋流程;对方棋手请求悔棋流程。
II.本地棋手请求悔棋流程的描述
棋手通过电子围棋棋盘设置的人机界面请求悔棋,电子围棋棋盘向电脑系统发送悔棋请求消息。
对于网络对弈模式,电脑系统收到悔棋请求消息后向对方棋手所在系统发送悔棋请求消息,对方棋手确认是否接受悔棋请求消息,如果接受悔棋请求消息,电脑系统会收到悔棋响应消息,消息指出接受悔棋请求,电脑系统向电子围棋棋盘发送悔棋命令消息,如图13A所示。对于其他运行模式,如果允许悔棋,电脑系统接受悔棋请求消息并向电子围棋棋盘发送悔棋命令消息。悔棋命令消息携带以下参数:。
RepentInd:悔棋指示,指出本次悔棋是否有效。1,表示有效;0,表示无效。
收到悔棋命令消息后,电子围棋棋盘指示棋手恢复棋子状态,棋手完成棋子状态恢复后,电子围棋棋盘向电脑系统发送悔棋执行消息,悔棋执行消息携带以下参数:
PositionBitmap:棋子位置位图;
ColorBitmapInd:颜色位图指示;
ColorBitmap:棋子颜色位图。
收到悔棋执行消息后,电脑系统检查消息中携带的棋子状态信息与电脑系统记录的棋子状态信息是否相同,如果相同,则表明棋子状态恢复正确,电脑系统向电子围棋棋盘发送悔棋确认消息,悔棋确认消息中携带以下参数:
Result:棋子状态恢复结果,指出电脑系统检查悔棋执行消息中携带的棋子信息是否正确。Result=0表示正确,其他值表示错误。
另外,如果棋手需要悔棋若干步,则需要多次请求悔棋,或者连续请求悔棋,例如连续按3次电子围棋棋盘上的悔棋请求按钮,则请求悔棋3步。
III.对方棋手请求悔棋流程的描述
网络对弈模式下若对方棋手请求悔棋,电脑系统将收到由对方棋手所在系统发送的悔棋请求消息,电脑系统向电子围棋棋盘发送悔棋请求消息,如图13B所示。
收到悔棋请求消息后,电子围棋棋盘提示对方棋手正在请求悔棋,棋手通过电子围棋棋盘设置的人机界面(例如功能按钮)接受悔棋请求,电子围棋棋盘向电脑系统发送悔棋响应消息,消息指出接受悔棋请求,悔棋响应消息携带以下参数:
AcceptInd:接受指示,指出是否接受对方棋手的悔棋请求。1,表示接受;0,表示拒绝
电脑系统向电子围棋棋盘发送悔棋命令消息,相应步骤与图13A中所示相同。
以上任何一种悔棋流程结束后,电脑向电子围棋发送状态更新消息。
IV.异常处理
如果电脑系统检查悔棋执行消息中携带的棋子状态信息与记录的棋子状态信息不相同,悔棋确认消息的Result参数指出棋子状态恢复错误,电子围棋棋盘应指示棋手或演示者重新恢复棋子状态,电脑系统继续等待直到收到正确的悔棋执行消息。
在不允许悔棋状态下,若电脑系统收到悔棋请求消息,电脑系统产生告警提示并向电子围棋棋盘发送告警提示消息,悔棋请求被忽略。
前面主要详细描述了A接口的基本流程,下面从实际对弈的角度,描述以上基本流程的具体使用。
本地对弈模式
当对弈双方使用同一个电子围棋棋盘对弈时,采用本地对弈模式。本地对弈模式下,每次都是本地的棋手行棋,电脑系统主要检查行棋是否正确并记录行棋过程。
流程描述,如图14所示:
步骤A1:棋手通过电脑系统提供的人机界面设置系统配置参数,选择本地对弈模式。电脑系统向电子围棋棋盘发送配置请求消息,配置请求消息携带有系统配置参数。
步骤A2:电子围棋棋盘根据配置请求消息中的参数完成系统配置,然后向电脑系统应答配置响应消息,配置响应消息中指出系统配置成功。
步骤A3:电脑系统收到配置响应消息且配置响应消息指出系统配置成功,因此向电子围棋棋盘发送状态更新消息,指出当前由黑方行棋。至此,本地对弈开始。
步骤A4:电子围棋棋盘根据状态更新消息的Color参数指示当前由黑方行棋。黑方行棋结束后,电子围棋棋盘向电脑系统发送行棋指示消息,行棋指示消息中携带棋子状态信息。
步骤A5:收到行棋指示消息后,电脑系统计算本次行棋步骤中落入棋子的信息,并进一步判断行棋有效,电脑系统计算行棋时间并记录本次行棋信息,然后向电子围棋棋盘应答行棋确认消息,行棋确认消息中指出本次行棋有效。
步骤A6:电脑系统向电子围棋棋盘发送状态更新消息,状态更新消息指出下一步由白方行棋,同时指出黑方行棋的行棋时间等信息。至此,黑方行棋结束。
步骤A7:电子围棋棋盘根据状态更新消息的Color参数指示当前由白方行棋。白方行棋结束后,电子围棋棋盘向电脑系统发送行棋指示消息,消息中携带棋子状态信息。
步骤A8与步骤A5相同。
步骤A9:电脑系统向电子围棋棋盘发送状态更新消息,状态更新消息指出下一步由黑方行棋,同时指出白方行棋的行棋时间等信息。至此,白方行棋结束。
后续处理中,重复步骤A4~步骤A9,完成本地对弈模式下的行棋处理。
这里描述的是正常行棋过程,不考虑行棋过程中的打吃和吃子,也不考虑对弈过程中的悔棋和行棋错误。
人机/网络对弈模式
棋手使用电子围棋棋盘与电脑系统对弈时,采用人机对弈模式,人机对弈模式下,电脑系统运行具有人工智能的对弈软件;棋手使用电子围棋棋盘与网络对端的棋手或者系统进行对弈时,采用网络对弈模式。网络对弈模式和人机对弈模式在A接口上的执行流程相同,因此这里仅以人机对弈模式为实例,且本例中电脑系统使用黑棋。注:执黑一方先行棋。
流程描述,如图15所示:
步骤B1与步骤A1相同,但在系统配置时,选择人机对弈模式。
步骤B2与步骤A2相同。
步骤B3:电脑系统收到配置响应消息且消息指出系统配置成功,因此向电子围棋棋盘发送状态更新消息,指出当前由黑方(即电脑系统)行棋。至此,人机对弈开始。
步骤B4:电脑系统执行人工智能对弈软件计算电脑系统行棋的位置,然后向电子围棋棋盘发送行棋命令消息,消息中指出行棋的位置坐标。
步骤B5:收到行棋命令消息后,电子围棋棋盘指出行棋的位置,例如,点亮行棋位置处的指示灯。棋手代替电脑系统将黑色棋子落入指示的棋位,行棋结束后,电子围棋棋盘向电脑系统发送行棋指示消息,消息中携带棋子状态信息。
步骤B6:收到行棋指示消息后,电脑系统判断本地棋手代替行棋正确,然后向电子围棋棋盘应答行棋确认消息,消息中指出本次行棋有效。
步骤B7:电脑系统向电子围棋棋盘发送状态更新,消息中指出当前由白方(即棋手)行棋,同时指出黑方的行棋时间等信息。至此,电脑系统的行棋步骤结束。
步骤B8:电子围棋棋盘根据状态更新消息的Color参数指示当前由白方行棋(即棋手)。棋手行棋结束后,电子围棋棋盘向电脑系统发送行棋指示消息,消息中携带棋子状态信息。
步骤B9:收到行棋指示消息后,电脑系统计算本次行棋步骤中落入棋子的信息,并进一步判断行棋有效,电脑系统计算行棋时间并记录本次行棋信息,然后向电子围棋棋盘应答行棋确认消息,消息中指出本次行棋有效。
步骤B10:电脑系统向电子围棋棋盘发送状态更新,消息指出下一步由黑方行棋,同时指出白方行棋的行棋时间等信息。至此,棋手行棋结束。
如此重复执行步骤B4~步骤B10,完成人机对弈模式下的行棋处理。
棋谱演示模式
需要使用电子围棋棋盘演示和讲解棋谱、或者讲解比赛时,采用棋谱演示模式。棋谱演示模式下,每次都由电脑系统行棋,演示者只是代替电脑在电子围棋棋盘上行棋。
流程描述,如图16所示:
步骤C1步骤A1相同,但在系统配置时,选择棋谱演示模式,并确定要讲解的棋谱。
步骤C2步骤C2相同。
步骤C3:电脑系统收到配置响应消息且消息指出系统配置成功,因此向电子围棋棋盘发送状态更新消息,指出当前由黑方(即电脑系统)行棋。至此,棋谱演示开始。
步骤C4:电脑系统读取棋谱记录的第一步行棋信息,然后向电子围棋棋盘发送行棋命令消息,消息中指出行棋的位置坐标。
步骤C5:收到行棋命令消息后,电子围棋棋盘指出行棋的位置,例如,点亮行棋位置处的指示灯。演示者代替电脑系统将黑色棋子落入指示的棋位,行棋结束后,电子围棋棋盘向电脑系统发送行棋指示消息,消息中携带棋子状态信息。
步骤C6:收到行棋指示消息后,电脑系统判断演示者代替行棋正确,然后向电子围棋棋盘应答行棋确认消息,消息中指出本次行棋有效。
步骤C7:电脑系统向电子围棋棋盘发送状态更新,消息中指出当前由白方(仍然是电脑系统)行棋。至此,黑方的行棋步骤结束。
步骤C8~步骤C11与步骤C4~步骤C7相同,差别在于行棋方是白方。
如此重复执行步骤C4~步骤C11,完成棋谱演示模式下的行棋处理。
技巧练习模式
当棋手需要使用特定棋谱练习对杀技巧时,采用技巧练习模式,例如,棋手可以在电子围棋棋盘上练习对杀的手筋技巧。技巧练习模式下,通常由棋手先行棋,而且练习棋谱会指定棋手使用何种颜色的棋子。技巧练习模式下的对弈处理过程与人机对弈模式完全相同,差别在于,棋手在系统配置时必须选择练习棋谱,并按照练习棋谱在电子围棋棋盘上布置好双方的棋子。
这里以练习棋谱指定棋手执黑棋并先行棋为例,描述技巧练习模式的对弈过程。
流程描述,如图17所示:
步骤D1与步骤A1相同,但在系统配置时,选择技巧练习模式,并确定练习的棋谱。除此之外,棋手根据电脑显示的练习棋谱,布置双方的棋子状态。
步骤D2与步骤A2相同。
步骤D3:电脑系统收到配置响应消息,且该配置响应消息指出系统配置成功,因此向电子围棋棋盘发送状态更新消息,指出当前由黑方(即棋手)行棋。至此,技巧练习对弈开始。
步骤D4:行棋前,为了确保布置的棋子与棋谱相同,棋手请求检查电子围棋棋盘上的棋子状态,例如,棋手可按下电子围棋棋盘上设置的按钮请求检查棋子状态,电子围棋棋盘向电脑系统发送检查请求消息,检查请求消息中携带棋子状态信息。
步骤D5:收到检查请求消息后,电脑系统检查检查请求消息中携带的棋子状态信息与棋谱记录的棋子状态信息是否相同,因此向电子围棋棋盘发送检查响应消息,检查响应消息中指出检查结果正确。
步骤D6~步骤D12实际就是人机对弈模式下的行棋处理过程,具体可参考图15所示的描述。
如此重复步骤D6~步骤D12,完成技巧练习模式下的行棋处理。
注:这里描述的是正常行棋过程,不考虑行棋过程中的打吃和吃子,也不考虑对弈过程中的悔棋和行棋错误。
打吃和吃子行棋过程
这里仍以人机对弈模式为例,描述人机对弈过程中出现打吃和吃子的行棋过程。
本例中,本地棋手执黑棋,本地棋手打吃电脑系统的棋子,而电脑系统不理睬本地棋手的打吃,反而打吃本地棋手的棋子,然后双方分别吃掉对方的棋子。
流程描述,如图18所示:
步骤E1~步骤E14是一局对弈过程中出现的对弈步骤。
步骤E1:当前由黑方(即本地棋手)行棋,本地棋手行棋并打吃电脑系统的棋子,电子围棋棋盘向电脑系统发送行棋指示消息,行棋指示消息中携带棋子状态信息。
步骤E2:收到行棋指示消息后,电脑系统计算本次行棋步骤中落入棋子的信息,并进一步判断行棋有效,电脑系统计算行棋时间并记录本次行棋信息,然后向电子围棋棋盘应答行棋确认消息,行棋确认消息中指出本次行棋有效。
步骤E3:电脑系统向电子围棋棋盘发送状态更新消息,状态更新消息指出下一步由白方(即电脑系统)行棋,同时指出黑方行棋的行棋时间等信息。至此,黑方行棋结束。
步骤E4:此时由电脑系统行棋,电脑系统执行人工智能对弈软件计算电脑系统行棋的位置并决定打吃本地棋手的棋子,电脑系统向电子围棋棋盘发送行棋命令消息,行棋命令消息中指出行棋的位置坐标,由于本次行棋要打吃本地棋手的棋子,因此行棋命令消息中的Notice参数指出本次为打吃行棋步骤。
步骤E5:电子围棋棋盘指示出电脑系统行棋的位置并提醒本地棋手有棋子被打吃,本地棋手代替电脑系统在电子围棋棋盘上行棋,电子围棋棋盘向电脑系统发送行棋指示消息,行棋指示消息中携带棋子状态信息。
步骤E6:收到行棋指示消息后,电脑系统判断本地棋手代替行棋正确,然后向电子围棋棋盘应答行棋确认消息,行棋确认消息中指出本次行棋有效。
步骤E7与步骤E3相同,但状态更新消息指示黑方行棋。
步骤E8:本地棋手不理电脑系统的打吃。本地棋手行棋并吃掉电脑系统的部分棋子,电子围棋棋盘向电脑系统发送行棋指示消息,行棋指示消息中携带棋子状态信息。
步骤E9:收到行棋指示消息后,电脑系统计算本次行棋步骤中落入棋子的信息,判断本次行棋中有棋子被吃,并进一步判断被吃棋子的信息正确,电脑系统计算行棋时间并记录本次行棋信息,然后向电子围棋棋盘应答行棋确认消息,行棋确认消息中指出本次行棋有效。
步骤E10与步骤E3相同。
步骤E11:此时由电脑系统行棋,电脑系统执行人工智能对弈软件计算电脑系统行棋的位置并决定吃掉本地棋手的部分棋子,电脑系统向电子围棋棋盘发送行棋命令消息,消息中指出行棋的位置坐标,由于本次行棋要吃掉本地棋手的棋子,因此消息中的Notice参数指出本次为吃子行棋步骤。
步骤E12:电子围棋棋盘指示出电脑系统行棋的位置并提醒本地棋手有棋子被吃,本地棋手代替电脑系统行棋并将被吃的棋子从棋盘上取走,电子围棋棋盘向电脑系统发送行棋指示消息,消息中携带棋子状态信息。
步骤E13与步骤E6相同。
步骤E14与步骤E7相同。
至此,本地棋手和电脑系统分别完成一次打吃和吃子的行棋。
由于中国象棋和国际象棋与围棋类似,也是由双方棋手交替行棋,且也是使用两种颜色的棋子,同样每次由一方棋手行棋一步,也允许双方悔棋,因此,以上公开的电子围棋棋盘与电脑系统连接的方法,同样适用于电子中国象棋棋盘和电子国际象棋棋盘。
当本发明提供的方案应用在电子中国象棋棋盘和电子国际象棋棋盘时,行棋指示消息、检查请求消息和悔棋执行消息中携带的不再是57字节的PositionBitmap,而是能够表示中国象棋或国际象棋棋子状态的字节流。而行棋命令消息中,需要指出行棋棋子的移动前的位置坐标和移动后的目标位置坐标,以及棋子的名称和颜色信息。
例如,对于电子中国象棋棋盘来说,由于中国象棋使用10行×9列、共90个棋位的棋盘,且只使用7种棋子,如图19所示,因此可以用45个字节的Bitmap来表示棋盘上的棋子状态,每4个Bit表示一个棋位上的棋子,其中低位的3比特用于表示棋子,而高位的1比特用于表示棋子的颜色。例如:001表示“将”或“帅”;010表示“车”;011表示“马”、100表示“炮”;101表示“象”或“相”;110表示“兵”或“卒”;111表示“士”或“仕”。那么1010表示的是黑颜色的“车”,而0100表示红颜色的“炮”。因此行棋指示消息、检查请求消息和悔棋执行消息中,不再需要ColorInd和ColorBitmap参数。
当然,也可以使用90字节长度的Bitmap来表示棋盘上的棋子状态。
对于国际象棋棋盘来说,由于国际象棋使用8行×8列、共64个棋位的棋盘,且只使用6种棋子,如图20所示,因此可以用32个字节的Bitmap来表示棋盘上的棋子状态,每4个Bit表示一个棋位上的棋子,其中低位的3比特用于表示棋子,而高位的1比特用于表示棋子的颜色。例如:001表示“王”;010表示“后”;011表示“车”、100表示“马”;101表示“象”;110表示“兵”。那么1010表示的是黑颜色的“后”,而0101表示白颜色的“象”。
当然,也可以使用64字节长度的PositionBitmap来表示棋盘上的棋子状态。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种电子棋类棋盘与电脑系统进行交互的方法,其特征在于,电子棋类棋盘与电脑系统通过接口互连,该方法包括:
电脑系统向电子棋类棋盘发送配置请求消息,电子棋类棋盘根据收到的配置请求消息对电子棋类棋盘进行配置,向电脑系统返回配置响应消息;
电子棋类棋盘扫描棋盘上所有棋子的状态,电子棋类棋盘向电脑系统发送行棋指示消息;
电脑系统向电子棋类棋盘发送行棋命令消息,电子棋类棋盘根据收到的行棋命令消息指示棋手代替对方行棋。
2.根据权利要求1所述的方法,其特征在于,在所述电子棋类棋盘向电脑系统发送行棋指示消息步骤之后,所述方法进一步包括:电脑系统收到行棋指示消息后,首先判断本次行棋中落入棋子和被吃棋子的位置和颜色,然后检查本次行棋是否有效。
3.根据权利要求2所述的方法,其特征在于,所述判断本次行棋中落入棋子和被吃棋子的位置和颜色,包括:将行棋指示消息中的棋子位置位图与电脑系统记录的位置位图按比特位进行异或计算,确定落入棋子和所有被吃棋子的位置,再判断这些棋子状态有变化的位置处与棋子位置位图对应的比特,再通过颜色位图指示和电脑系统记录的颜色位图,确定落入棋子的颜色和被吃棋子的颜色。
4.根据权利要求2所述的方法,其特征在于,所述方法进一步包括:电脑系统向电子棋类棋盘返回行棋确认消息,所述行棋确认消息携带行棋检查结果。
5.根据权利要求1所述的方法,其特征在于,所述配置请求消息携带运行模式和双方棋子颜色。
6.根据权利要求1所述的方法,其特征在于,所述行棋指示消息携带:棋子位置位图、颜色位图指示和棋子颜色位图。
7.根据权利要求1所述的方法,其特征在于,所述行棋命令消息携带落入棋子的坐标。
8.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:电脑系统向电子棋类棋盘发送状态更新消息,所述状态更新消息携带行棋方颜色、棋子位置位图、颜色位图指示、棋子颜色位图;
电子棋类棋盘根据收到的状态更新消息更新指定的状态信息。
9.根据权利要求1所述的方法,其特征在于,发生异常或者特殊事件时,所述方法还包括:电脑系统向电子棋类棋盘发送告警提示消息,所述告警提示消息携带标识异常或特殊事件的告警提示码,指示电子棋类棋盘进行告警提示。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:电子棋类棋盘扫描棋子状态并向电脑系统发送检查请求消息,所述检查请求消息携带棋子位置位图、颜色位图指示和棋子颜色位图。
11.根据权利要求10所述的方法,其特征在于,所述方法进一步包括:电脑系统检查收到的检查请求消息中携带的棋子状态信息是否与电脑系统记录的棋子状态信息相同,然后向电子棋类棋盘发送检查响应消息,所述检查响应消息中携带表明状态检查结果的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100769165A CN101380515B (zh) | 2007-09-06 | 2007-09-06 | 一种电子棋类棋盘与电脑系统进行交互的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100769165A CN101380515B (zh) | 2007-09-06 | 2007-09-06 | 一种电子棋类棋盘与电脑系统进行交互的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101380515A CN101380515A (zh) | 2009-03-11 |
CN101380515B true CN101380515B (zh) | 2011-04-20 |
Family
ID=40460676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100769165A Expired - Fee Related CN101380515B (zh) | 2007-09-06 | 2007-09-06 | 一种电子棋类棋盘与电脑系统进行交互的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101380515B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122315A (zh) * | 2010-02-01 | 2011-07-13 | 北京万豪天际文化传播有限公司 | 一种应用于棋类游戏系统的数据处理方法 |
CN102122314A (zh) * | 2010-02-01 | 2011-07-13 | 北京万豪天际文化传播有限公司 | 一种应用于棋类游戏系统的数据处理方法 |
CN102122316A (zh) * | 2010-02-01 | 2011-07-13 | 北京万豪天际文化传播有限公司 | 一种应用于棋类游戏系统的数据处理方法 |
CN103083899A (zh) * | 2011-11-02 | 2013-05-08 | 万君雅 | 无悔棋棋盘 |
CN103405910A (zh) * | 2012-10-19 | 2013-11-27 | 常州大学 | 一种便携式电子五子棋装置 |
CN104069636A (zh) * | 2013-03-31 | 2014-10-01 | 郏惠忠 | 一种基于人工智能的棋类装置 |
CN105100171B (zh) | 2014-05-22 | 2019-02-12 | 腾讯科技(深圳)有限公司 | 同步时间的方法及装置 |
CN105288997B (zh) * | 2014-06-24 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 棋盘界面中实现交互的方法和装置 |
CN106178486B (zh) * | 2016-08-30 | 2024-01-19 | 刘锋 | 一种行棋的控制方法及用于下棋的装置 |
CN108479065B (zh) * | 2018-03-29 | 2021-12-28 | 京东方科技集团股份有限公司 | 一种虚拟影像的交互方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1167954A (zh) * | 1996-06-07 | 1997-12-17 | 陈伟煌 | 一种自动棋类裁判机及其执行方法 |
CN1252319A (zh) * | 1998-04-09 | 2000-05-10 | 刘开民 | 感应式电脑围棋 |
CN2580516Y (zh) * | 2001-08-30 | 2003-10-15 | 仇利强 | 电脑棋盘比赛系统 |
CN1478572A (zh) * | 2003-08-01 | 2004-03-03 | 北京工业大学 | 电磁驱动自动象棋 |
-
2007
- 2007-09-06 CN CN2007100769165A patent/CN101380515B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1167954A (zh) * | 1996-06-07 | 1997-12-17 | 陈伟煌 | 一种自动棋类裁判机及其执行方法 |
CN1252319A (zh) * | 1998-04-09 | 2000-05-10 | 刘开民 | 感应式电脑围棋 |
CN2580516Y (zh) * | 2001-08-30 | 2003-10-15 | 仇利强 | 电脑棋盘比赛系统 |
CN1478572A (zh) * | 2003-08-01 | 2004-03-03 | 北京工业大学 | 电磁驱动自动象棋 |
Also Published As
Publication number | Publication date |
---|---|
CN101380515A (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101380515B (zh) | 一种电子棋类棋盘与电脑系统进行交互的方法 | |
US20220105440A1 (en) | Toy construction system for augmented reality | |
EP2714223B1 (en) | Generation of building instructions for construction element models | |
CN111744187B (zh) | 一种游戏数据处理方法、装置、计算机及可读存储介质 | |
CN104881115B (zh) | 一种利用设备操控终端实现个性化交互的方法及系统 | |
CN106744111A (zh) | 基于蓝牙和移动数据通信技术的电梯维保管理系统及方法 | |
CN101114200A (zh) | 功能命令系统、功能命令装置、功能命令分析系统、演示系统及计算机可读介质 | |
CN108057249A (zh) | 一种业务数据处理方法和装置 | |
CN112929602B (zh) | 基于图像处理的数据监控方法、装置及相关设备 | |
CN206298231U (zh) | 基于蓝牙和移动数据通信技术的电梯维保管理装置 | |
CN105513150A (zh) | 签到方法及装置 | |
CN109378067A (zh) | 终端控制方法及健康安全教育管理一体机 | |
CN111580648A (zh) | 一种基于虚拟现实的模拟演练方法及装置 | |
CN114815757A (zh) | 一种面向水泥工厂数字孪生虚拟巡检方法 | |
CN113975812A (zh) | 游戏图像的处理方法、装置、设备及存储介质 | |
JP4433502B2 (ja) | 遊技場の遊技情報管理システム | |
JP3466290B2 (ja) | 分散処理型ホールコンピュータ装置 | |
CN107948545A (zh) | 一种网络摄像机字符叠加器及其操作方法 | |
JP3455418B2 (ja) | ネットワークゲームシステム | |
CN111388995B (zh) | 游戏人工智能信息的处理方法、系统、装置和存储介质 | |
CN209471586U (zh) | 基于vr技术的送变电施工安全教育培训系统 | |
CN111079583A (zh) | 一种消防可燃物智能管理终端 | |
CN107737447A (zh) | 蜂窝洗牌系统和方法 | |
CN103949053A (zh) | 多人在线的电子游戏通讯系统 | |
CN105892925A (zh) | 虚拟角色跨设备游戏方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 518028 A904, two garden, four the Great Wall Road, Baihua Road, Shenzhen, Guangdong, Futian District Province, China 5 Patentee after: Zhou Sihong Address before: 5, 518028 A809, No. four, No. 8, Baihua Road, Shenzhen, Guangdong, Futian District Patentee before: Zhou Sihong |
|
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Zhou Sihong Document name: Notification to Pay the Fees |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110420 Termination date: 20180906 |