CN101721804B - 一种电子象棋棋盘及其行棋处理方法 - Google Patents
一种电子象棋棋盘及其行棋处理方法 Download PDFInfo
- Publication number
- CN101721804B CN101721804B CN2008102166913A CN200810216691A CN101721804B CN 101721804 B CN101721804 B CN 101721804B CN 2008102166913 A CN2008102166913 A CN 2008102166913A CN 200810216691 A CN200810216691 A CN 200810216691A CN 101721804 B CN101721804 B CN 101721804B
- Authority
- CN
- China
- Prior art keywords
- chess
- row
- indicator lamp
- processing unit
- chessboard
- 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
技术领域
本发明涉及电子技术,尤其涉及一种电子象棋棋盘及其行棋处理方法。
背景技术
目前,已知的象棋有中国象棋和国际象棋。中国象棋是中国的传统棋类活动之一,而国际象棋则是近年来人们越来越喜爱的一种棋类活动。
其中,中国象棋棋盘和棋子如图1a所示,中国象棋使用红色和黑色(或者红色和绿色)棋子且由红方先行棋,共有七种棋子:“将/帅”、“士/仕”、“象/相”、“车”、“马”、“炮”和“卒/兵”;国际象棋棋盘和棋子如图1b所示,国际象棋使用白色和红色(或者白色和黑色)棋子且由白方先行棋,共有六种棋子:“王”、“后”、“象”、“马”、“车”和“兵”(图1b中第1行和倒数第1行的棋子从左向右依次为车、马、象、后、王、象、马、车,第2行和倒数第2行的棋子均为兵)。中国象棋和国际象棋的行棋规则比较接近,例如:“车”都是横行或竖走、“象”都是斜走、″将/帅″和″王″每次行棋一格,等等。此外,国际象棋的行棋规则更加灵活多变一些,它取消了中国象棋中的一些行棋限制,例如:中国象棋中的“王”、“后”和“象”只能在本方棋盘上行棋,而国际象棋中的“王”、“后”和“象”则可以在整个棋盘上行棋;中国象棋中的“马”存在“蹩脚”限制,而国际象棋中的“马”则不存在“蹩脚”限制。除此之外,国际象棋还有″升变″和″王车易位″的行棋规则,″升变″是指″兵″移动到对方底线时,升变为″后″、″象″、″车″或″马″,具体升变成什么棋子由棋手根据对弈的需要决定,″王车易位″是指同时移动行棋方的″王″和″车″作为一步行棋,根据移动的位置不同,又分为长易位和短易位。总之,中国象棋和国际象棋的共同行棋特点是″将棋盘上的一个棋子移动到某个空缺棋位,或者移动到对方某个棋子所在的棋位且吃掉对方的棋子″,除此之外,国际象棋增加了升变和王车易位两种行棋操作。
随着中国象棋和国际象棋竞赛的增多及其教育的普及化,让更多的人看到一盘实时进行的中国象棋或国际象棋成为需要。特别是重大的中国象棋或国际象棋比赛,可能成千上万的人翘首以待每一着棋子的落地,但他们绝大多数是不可能到达现场的。为此,专利申请200510072482.2公开了一种电子象棋棋盘,该电子象棋棋盘能自动记录本地双方棋手的对弈过程,并通过与电脑系统连接,将对弈过程在网络上传播。
此外,通过与合适的对手进行实战对弈,可以提高棋手对弈技术。随着个人电脑和互联网的普及,棋类爱好者们有了更多的下棋方式,例如,可以在个人电脑中安装棋类对弈软件进行人机对弈,或者通过互联网与其他棋手进行网络对弈,但是这两种方式都要求棋手在整个对弈过程中注视电脑屏幕,然而长时间的注视电脑屏幕会严重影响视力,进而导致近视或视觉疲劳,尤其对于青少年和儿童来说,这个问题则更为突出。为此,专利申请200710076128.6公开了一种电子围棋棋盘,虽然该专利申请针对的不是象棋,但其原理可以借鉴。使用该电子围棋棋盘,棋手可以通过它进行人机对弈和网络对弈,由于对弈过程中不需要注视电脑屏幕,因此可以保护视力。
但上述两个专利申请所公开的电子棋盘,在对弈时,要求棋手每次行棋之后按一个按键来确认一次行棋操作的结束,以使电子棋盘开始进行行棋检测,然而这非常不符合人们的下棋习惯。此外,专利申请200510072482.2公开的电子象棋棋盘不允许棋手在行棋过程中拿起一个棋子又放回原处,否则系统将判断出错,而事实上,很多人都有这样的下棋习惯,尤其是网络对弈时,由于棋手看不到对方,这样的下棋动作更容易发生。
可见,目前的电子象棋棋盘由于存在一些不符合人们下棋习惯的要求,因此会干扰棋手的正常思维,降低用户的体验。
发明内容
有鉴于此,本发明中一方面提供一种电子象棋棋盘,另一方面提供一种电子象棋棋盘的行棋处理方法,以使棋手每次行棋后无需通过按键来确认一次行棋是否结束,提高了用户体验。
本发明所提供的电子象棋棋盘,包括:设置有棋盘盘面的棋盘本体、系统处理单元和棋子检测单元,其中,
所述棋盘本体用于供棋手在所述棋盘盘面上行棋;
所述系统处理单元用于在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局,并在对弈过程中每次行棋时,控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局,将检测到的当前棋子布局与所记录的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局;
所述棋子检测单元用于在所述系统处理单元的控制下实时检测所述棋盘盘面上的当前棋子布局。
较佳地,该棋盘进一步包括:开始对弈按键和按键检测单元,其中,
所述按键检测单元用于在所述开始对弈按键被按下时,通知所述系统处理单元对弈开始。
较佳地,该棋盘进一步包括:行棋状态指示单元和指示控制单元;
所述系统处理单元根据当前的行棋状态控制所述指示控制单元对所述行棋状态指示单元进行相应行棋状态的指示控制;
所述行棋状态指示单元根据所述指示控制单元的指示控制进行相应的行棋状态指示。
较佳地,所述行棋状态指示单元包括:行棋状态指示灯、行棋状态响铃和行棋状态语音中的任意一个或任意组合;所述指示控制单元包括与之对应的指示灯控制单元、响铃控制单元和语音控制单元中的任意一个或任意组合。
较佳地,所述行棋状态指示单元包括行棋状态指示灯,所述指示控制单元包括指示灯控制单元;
所述行棋状态指示灯包括行棋方指示灯,所述指示灯控制单元包括行棋方指示灯控制单元;所述系统处理单元根据当前的行棋方,控制所述行棋方指示灯控制单元点亮或闪烁当前行棋方所对应的指示灯;
和/或,所述行棋状态指示灯包括行棋确认指示灯,所述指示灯控制单元包括行棋确认指示灯控制单元;所述系统处理单元在确定本次行棋操作完成之后,控制所述行棋确认指示灯控制单元点亮或闪烁所述行棋确认指示灯;
和/或,所述行棋状态指示灯包括与棋位对应的行棋位置指示灯,所述指示灯控制单元包括行棋位置指示灯控制单元;在人机对弈或网络对弈时,所述系统处理单元根据对弈软件所确定的行棋操作或对端棋手的行棋操作,控制所述行棋位置指示灯控制单元点亮或闪烁与所述行棋操作对应的行棋位置指示灯,供本地棋手根据所述指示灯代替对方行棋;
和/或,所述行棋状态指示灯包括行棋错误指示灯,所述指示灯控制单元包括行棋错误指示灯控制单元;所述系统处理单元在检测到本次行棋操作完成之后,确定本次行棋操作完成之前,判断所述行棋操作是否正确,若本次行棋操作正确,则确定本次行棋操作完成,否则,控制所述行棋错误指示灯控制单元点亮或闪烁所述行棋错误指示灯,并控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局;和/或,所述系统处理单元在确定本次行棋操作完成之后,记录本次行棋信息之前,判断所述行棋操作是否有效,若本次行棋操作有效,则记录本次行棋信息,否则,控制所述行棋错误指示灯控制单元点亮或闪烁所述行棋错误指示灯,并控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局;
和/或,所述行棋状态指示灯包括设备故障指示灯,所述指示灯控制单元包括设备故障指示灯控制单元;所述系统处理单元在检测到设备故障时,控制所述设备故障指示灯控制单元点亮或闪烁所述设备故障指示灯。
较佳地,所述与棋位对应的行棋位置指示灯包括:布置于每个棋位四个角上的指示灯,且相邻的棋位共用相同角上的指示灯;
在人机对弈或网络对弈时,所述系统处理单元根据对弈软件所确定的行棋操作或对端棋手的行棋操作,控制所述行棋位置指示灯控制单元交替点亮或闪烁与所述行棋操作对应的源棋位周围的四个指示灯和目标棋位周围的四个指示灯。
较佳地,所述系统处理单元包括:位于电脑侧的外部系统处理单元、位于电子象棋棋盘侧的内部系统处理单元和用于在所述外部系统处理单元与所述内部系统处理单元之间实现通信的接口单元,其中,
所述外部系统处理单元用于在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局,并将所述棋子布局通过所述接口单元发送给所述内部系统处理单元;在对弈过程中每次行棋时,通过所述接口单元向所述内部系统处理单元发送行棋操作检测命令,并通过所述接口单元接收所述内部系统处理单元返回的本次行棋信息,根据所述行棋信息判断本次行棋操作是否有效,在确定本次行棋操作有效后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局,将更新后的前次棋子布局通过所述接口单元发送给所述内部系统处理单元;在对弈过程中根据当前的行棋状态通过所述接口单元向所述内部系统处理单元发送相应的指示控制命令;
所述内部系统处理单元用于根据来自所述外部系统处理单元的行棋操作检测命令,控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局,并接收所述棋子检测单元检测到的当前棋子布局,将所述当前棋子布局与所述外部系统处理单元发送的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,将本次行棋信息通过所述接口单元发送给所述外部系统处理单元;根据来自所述外部系统处理单元的指示控制命令,控制棋盘的指示控制单元控制行棋状态指示单元进行相应指示。
较佳地,所述棋子检测单元包括:行列检测电路和棋位检测单元,其中,
所述棋位检测单元包括与棋位数量和位置一致的棋位检测子单元,每个棋位检测子单元根据棋子的不同状态产生不同变化;
所述行列检测电路用于在所述系统处理单元的控制下对每个棋位检测子单元进行扫描,将得到的扫描结果提供给所述系统处理单元,用于得到所述棋位检测子单元对应棋位的棋子状态。
较佳地,所述行列检测电路包括:A/D转换器、多路选择器和I/O控制器;所述棋位检测单元包括:霍尔元件阵列;
所述霍尔元件阵列包括与棋位数量和位置一致的行列霍尔元件,一个霍尔元件代表一个棋位;
所述I/O控制器包括与所述霍尔元件阵列的列数一致的输出端,且每个输出端分别与所述霍尔元件阵列的一列霍尔元件的电源端相连,所述I/O控制器在所述系统处理单元的控制下,逐次通过每个输出端向与所述输出端相连的一列霍尔元件的电源端供电;
所述多路选择器包括与所述霍尔元件阵列的行数一致的输入端,且每个输入端分别与所述霍尔元件阵列的一行霍尔元件的输出端相连,所述多路选择器在所述系统处理单元的控制下,在所述I/O控制器每次通过一个输出端向一列霍尔元件的电源端供电时,逐次通过每个输入端接收与所述输入端相连的一行霍尔元件的输出;
所述A/D转换器用于接收来自所述多路选择器输出端的信号,对所述信号进行A/D转换后,将转换后的数据输出给所述系统处理单元;
所述系统处理单元根据来自所述A/D转换器的数据及预设的数据阈值,确定所述霍尔元件对应的棋位是否有棋子及有棋子时的棋子颜色。
较佳地,该棋盘进一步包括:用于放置于所述棋盘盘面相应棋位上的对弈双方棋子,所述对弈双方棋子中分别设置有极性相反的磁铁或极性相同磁场强度不同的磁铁。
较佳地,所述棋盘本体从上到下包括:具有透光性的面板、隔光板、电路板和底板,其中,
所述面板用于设置所述棋盘盘面以及所述行棋状态指示灯的标志;
所述隔光板用于隔离每个状态指示灯,所述隔光板上设置有状态指示灯孔和棋子检测单元对应各个棋位的器件孔;
所述电路板用于安装所述系统处理单元、状态指示灯、指示灯控制单元、棋子检测单元、按键检测单元;
所述底板用于承受所述电路板、隔光板、面板和棋子的重量。
本发明所提供的电子象棋棋盘的行棋处理方法,包括:
在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局;
在对弈过程中每次行棋时,实时检测电子象棋棋盘上的当前棋子布局,将检测到的当前棋子布局与所记录的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局。
较佳地,所述初始棋子布局、前次棋子布局和当前棋子布局采用字节流的形式表示或采用数组的形式表示,其中对于初始棋子布局和前次棋子布局的每个棋子用4个比特表示,且该4个比特表示出该棋子的位置、颜色和名称;对于当前棋子布局的每个棋子也用4个比特表示,但该4个比特只表示出该棋子的位置和颜色,所述棋子的名称根据当前棋子布局与前次棋子布局的比较结果确定。
较佳地,所述每次行棋时,实时检测电子象棋棋盘上的当前棋子布局,将检测到的当前棋子布局与所记录的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成包括:
A、根据预设条件确定每次行棋开始时,启动周期定时器;
B、在所述周期定时器的当前周期超时时,扫描电子象棋棋盘上的当前棋子状态,得到当前棋子布局;
C、将检测到的当前棋子布局与所记录的前次棋子布局进行比较,判断棋子状态是否改变,如果是,则执行步骤D;否则,返回执行步骤B;
D、判断是否完成一次行棋操作,如果是,则执行步骤E;否则,返回执行步骤B;
E、确定本次行棋操作完成,停止所述周期定时器。
较佳地,所述步骤E进一步包括:点亮或闪烁行棋确认指示灯。
较佳地,所述步骤D和步骤E之间进一步包括:D1、判断本次行棋操作是否正确,如果是,则执行步骤E;否则,点亮或闪烁行棋错误指示灯,返回执行步骤B;
和/或,所述步骤D和步骤E之间进一步包括:D2、判断是否连续多次检测到相同的行棋操作,如果是,则执行步骤E;否则,返回执行步骤B。
较佳地,所述步骤E之后,记录本次行棋信息之前,进一步包括:
判断所述行棋操作是否为一次有效的行棋操作,如果是,则记录本次行棋信息;否则,点亮或闪烁行棋错误指示灯,并返回执行步骤A。
从上述方案可以看出,本发明中通过记录初始棋子布局,并自动检测棋盘上的当前棋子布局,将检测到的当前棋子布局与所记录的棋子布局进行比较,根据比较结果自动判定本次行棋操作是否完成,并且确定完成之后,利用当前的行棋信息更新所记录的棋子布局,用于下次自动检测时的比较基准,从而实现了电子象棋棋盘的行棋自动检测,无需棋手在每次行棋结束后按″确认″键,这符合人们的下棋习惯,因此提高了用户体验。尤其这样的设计使得电子象棋棋盘满足了比赛要求。
进一步地,通过设置行棋状态指示灯,例如行棋确认指示灯,当棋盘检测到正确的行棋操作时,该指示灯被点亮,使得棋手清楚地获知行棋操作已被检测,避免棋手担心电子棋盘未检测到自己的行棋而影响正常对弈;行棋确认指示灯的设计,使得电子棋盘具有更友好的人机界面。又如行棋位置指示灯,使得棋手可以使用它进行人机对弈或网络对弈,因为行棋位置指示功能使得棋手在进行人机对弈或网络对弈时,很方便地代替电脑系统或对方在棋盘上行棋,并且棋手无需在对弈过程中观察电脑显示器,避免了因长时间观察电脑显示器带来的视力伤害,为青少年通过电脑学习围棋提供了一个不影响视力的电子设备。
此外,通过利用霍尔元件的特性,通过数值分区的方法来实现棋子状态的判断,使得棋子状态的检测简单可靠。此外,本申请中的棋子检测单元只需要一次扫描即可实现棋子状态的检测,缩短了棋子状态检测的时间,并且通过对输出电压的A/D转换和数字处理,可提高检测结果的准确性。另外,目前市场上有大量低成本、高性能的线性霍尔器件,因此使得该方案具有很强的市场竞争力。
最后,为了提高棋子检测的可靠性,本申请中可在确定本次行棋操作完成之后,进一步根据设定的行棋规则对行棋操作的有效性进行判断,并在行棋无效时提示棋手行棋错误,以便棋手纠正错误的行棋操作。此外,还可在确定本次行棋操作完成之前,判断是否连续几次检测到相同的行棋,如果是,则确定本次行棋操作完成,避免棋手不稳定的行棋操作。
附图说明
图1a为现有技术中中国象棋棋盘和棋子的示意图;
图1b为现有技术中国际象棋棋盘和棋子的示意图;
图2为本发明实施例中电子象棋棋盘的示例性结构图;
图3a和图3b分别为图2所示电子象棋棋盘中系统处理单元的两种内部结构示意图;
图4a和图4b分别为本发明实施例中电子中国象棋棋盘的外观图和电子国际象棋棋盘的外观图;
图5a和图5b分别为本发明实施例中电子中国象棋棋盘的坐标系和电子国际象棋棋盘的坐标系;
图6a和图6b分别为本发明实施例中电子中国象棋棋盘中行棋位置指示灯的坐标系和电子国际象棋棋盘中行棋位置指示灯的坐标系;
图7a和图7b分别为对应图4a和图4b所示外观图中行棋方指示灯的行棋方指示灯控制单元的结构图;
图7c为本发明实施例中电子象棋棋盘中行棋位置指示灯控制单元的电路原理图;
图7d为利用图7c所示电路原理图进行行棋位置指示的示意图;
图8为本发明实施例中电子象棋棋盘中棋子检测单元的电路原理图;
图9为本发明实施例中电子象棋棋盘的物理结构示意图;
图10为本发明实施例中电子象棋棋盘的行棋处理方法的示例性流程图;
图11为本发明实施例中电子国际象棋棋盘的行棋示意图;
图12为本发明实施例中对应图3a所示系统处理单元的行棋处理方法流程图;
图13为本发明实施例中对应图3b所示系统处理单元的行棋处理方法流程图。
具体实施方式
本实施例中,通过在对弈开始前或开始时记录初始棋子布局,并将该初始棋子布局作为前次棋子布局,之后在对弈过程中的每次行棋时,实时检测棋盘盘面上的当前棋子布局,将检测到的当前棋子布局与所记录的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局,从而实现了电子象棋棋盘的行棋自动检测,无需棋手每次行棋后通过按键来确认一次行棋是否结束,提高了用户体验。
其中,初始棋子布局即对弈前必须布置的棋子布局,其可以是传统意义上的开始棋子布局,如图1a、图1b所示,也可以是棋谱演示和技巧练习时某行棋片断中的开始棋子布局。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
图2为本发明实施例中电子象棋棋盘的示例性结构图。如图2中的实线部分所示,该电子象棋棋谱可包括:设置有棋盘盘面的棋盘本体、系统处理单元和棋子检测单元。其中,系统处理单元和棋子检测单元可设置在棋盘本体中。
其中,棋盘本体用于供棋手在所述棋盘盘面上行棋。在对弈开始前,棋手按照指定的布局将双方棋子布置在棋盘盘面上,得到初始棋子布局,如果是人机对弈或网络对弈,则本地棋手需要代替对方将对方棋子布置在棋盘盘面上。在对弈过程中,棋手根据行棋规则在棋盘盘面上进行行棋,如果是人机对弈或网络对弈,则在对弈软件确定行棋操作或对端棋手确定行棋操作后,本地棋手根据棋盘盘面上的行棋操作指示代替对方在棋盘盘面上行棋。此外,为了使棋手在使用电子象棋棋盘时具有与使用普通象棋棋盘时相同的体验,电子象棋盘盘面的大小、形状和颜色可以与普通象棋棋盘相同。棋盘盘面可以是直接在棋盘本体表面雕刻或绘制或印制的棋盘图案,也可以是在棋盘本体表面粘贴的绘制或印制有棋盘图案的薄膜等。
棋子检测单元用于在系统处理单元的控制下实时检测所述棋盘盘面上的当前棋子布局。具体实现时,该棋子检测单元可包括行列检测电路和棋位检测单元。其中,棋位检测单元可包括与棋位数量和位置一致的棋位检测子单元,每个棋位检测子单元根据棋子的不同状态产生不同变化。行列检测电路用于在系统处理单元的控制下对每个棋位检测子单元进行扫描,将得到的扫描结果提供给系统处理单元,用于得到所述棋位检测子单元对应棋位的棋子状态。
系统处理单元用于在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局,并在对弈过程中每次行棋时,控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局,将检测到的当前棋子布局与所记录的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局。其中,所记录的初始棋子布局的数据可以是初始化系统数据时直接设置好的数据,也可以是采用其它方法得到的数据。
若初始棋子布局不是直接扫描的棋盘上的棋子布局,则在对弈开始后,可首先控制棋子检测单元检测当前棋盘盘面上布置的棋子布局,并判断该棋子布局是否与所记录的初始棋子布局一致,如果一致,则表示可以在棋盘上开始行棋,如果不一致,则说明棋盘上的棋子未按照要求布置,此时可指示棋手更正棋子布局。
其中,为了清楚的表示棋子的布局情况,在初始棋子布局中每个棋子的信息通常包括该棋子的位置、颜色和名称,而棋子检测单元在检测当前棋子布局时,为了实现简便,通常只检测当前棋子布局中每个棋子的位置和颜色,之后,由系统处理单元根据当前棋子布局(即第一次行棋操作后的棋子布局)与初始棋子布局(即本次行棋操作的前次棋子布局)中棋子位置和颜色的比较结果及初始棋子布局中相应棋子的名称,间接判断出当前执行行棋操作的棋子的名称,进而在初始棋子布局的基础上得到执行本次行棋操作后的棋子布局,将该棋子布局作为下次行棋操作的前次棋子布局。
进一步地,为了表示本次对弈是否开始,该电子象棋棋盘可如图2中的虚线部分所示,进一步包括:开始对弈按键和按键检测单元,且开始对弈按键和按键检测单元可设置在棋盘盘体中。其中,按键检测单元用于在开始对弈按键被按下时,通知系统处理单元对弈开始。当然,若不设置开始对弈按键和按键检测单元,则也可以通过其他方式来表示对弈是否开始,例如可在棋盘上布置初始棋子布局时,启动定时器,在定时器超时后,确定本次对弈开始等。此外,该电子象棋棋盘还可包括其他按键及相应的按键检测单元,如行棋方式选择按键(如本地对弈、人机对弈、网络对弈等行棋方式选择按键)及对应的按键检测单元,具体可根据实际需要进行增加或删减。其中,不同的按键将触发不同的处理。
进一步地,由于该电子象棋棋盘是基于自动检测行棋操作的象棋棋盘,因此为了在行棋过程中使棋手知晓当前的行棋状况,如当前行棋方为哪方,系统处理单元是否处理完一次行棋操作,当前行棋操作是否有误,人机对弈或网络对弈时对方的行棋操作如何等,该电子象棋棋盘可如图2中的虚线部分所示,进一步包括:行棋状态指示单元和指示控制单元,且行棋状态指示单元和指示控制单元可设置在棋盘盘体中。具体应用时,系统处理单元可根据当前的行棋状态控制该指示控制单元对行棋状态指示单元进行相应行棋状态的指示控制,行棋状态指示单元根据所述指示控制单元的指示控制进行相应的行棋状态指示。
其中,行棋状态指示单元可包括状态指示单元和/或与棋位对应的行棋位置指示单元。其中,状态指示单元又可包括行棋方指示单元、行棋确认指示单元、行棋错误指示单元、设备故障指示单元等中的任意一个或任意几个。相应地,指示控制单元可包括与之对应的状态指示控制单元和/或行棋位置指示控制单元。相应地,状态指示控制单元可包括行棋方指示控制单元、行棋确认指示控制单元、行棋错误指示控制单元、设备故障指示控制单元等中的任意一个或任意几个。其中,具有行棋位置指示单元和行棋位置指示控制单元的电子象棋棋盘可方便进行人机对弈和网络对弈。
具体实现时,行棋状态指示单元可以包括行棋状态指示灯,则相应地指示控制单元可以包括指示灯控制单元,则系统处理单元可根据当前的行棋状态控制该指示灯控制单元点亮相应的行棋状态指示灯。当然,上述行棋状态指示灯和指示灯控制单元也可以由行棋状态响铃和响铃控制单元来代替,或由行棋状态语音和语音控制单元来代替,或由其他方式代替。即行棋状态指示单元也可以包括行棋状态响铃或行棋状态语音,则相应地指示控制单元可以包括响铃控制单元或语音控制单元,或者行棋状态指示单元也可以同时包括行棋状态指示灯、行棋状态响铃和行棋状态语音等中的两个或两个以上,而指示控制单元相应地可同时包括指示灯控制单元、响铃控制单元和语音控制单元等中的两个或两个以上。具体采用何种方式可根据实际需要确定。
下面以行棋状态指示单元包括行棋状态指示灯,指示控制单元包括指示灯控制单元的情况为例进行详细描述,则行棋状态指示灯可包括行棋方指示灯、行棋确认指示灯、行棋错误指示灯、设备故障指示灯、与棋位对应的行棋位置指示灯等中的任意一个或任意几个。相应地,指示灯控制单元可包括与之对应的行棋方指示灯控制单元、行棋确认指示灯控制单元、行棋错误指示灯控制单元、设备故障指示灯控制单元、行棋位置指示灯控制单元等中的任意一个或任意几个。
相应地,系统处理单元可根据当前的行棋方,控制行棋方指示灯控制单元点亮或闪烁当前行棋方所对应的指示灯。如对于中国象棋的黑红双方,当由黑方行棋时,点亮或闪烁代表黑方的指示灯;由红方行棋时,点亮或闪烁代表红方的指示灯。
和/或,系统处理单元在确定本次行棋操作完成之后,可控制行棋确认指示灯控制单元点亮或闪烁行棋确认指示灯,指示棋手其行棋操作已经被棋盘检测到。
和/或,系统处理单元在检测到本次行棋操作完成之后,确定本次行棋操作完成之前,判断所述行棋操作是否正确,若本次行棋操作正确,则确定本次行棋操作完成,否则,控制行棋错误指示灯控制单元点亮或闪烁所述行棋错误指示灯,以提示棋手,并控制棋子检测单元实时检测棋盘盘面上的当前棋子布局;和/或,系统处理单元在确定本次行棋操作完成之后,记录本次行棋信息之前,判断所述行棋操作是否有效,若本次行棋操作有效,则记录本次行棋信息,否则,控制行棋错误指示灯控制单元点亮或闪烁所述行棋错误指示灯,以提示棋手,并控制棋子检测单元实时检测棋盘盘面上的当前棋子布局。
和/或,系统处理单元在检测到设备故障时,控制设备故障指示灯控制单元点亮或闪烁设备故障指示灯。
和/或,在人机对弈或网络对弈时,系统处理单元可根据对弈软件所确定的行棋操作或对端棋手的行棋操作,控制行棋位置指示灯控制单元点亮或闪烁与行棋操作对应的行棋位置指示灯,供本地棋手根据所述指示灯代替对方行棋。
具体实现时,系统处理单元的内部实现可有多种形式,图3a和图3b分别示出了其中的两种具体实现形式。图3a为本发明实施例中系统处理单元的一种结构示意图。如图3a所示,系统处理单元可包括:外部系统处理单元、内部系统处理单元和接口单元。
其中,外部系统处理单元可位于外部电脑侧,内部系统处理单元可位于电子象棋棋盘侧,接口单元用于在外部系统处理单元与内部系统处理单元之间实现通信,包括交换与行棋相关的控制命令和数据。这里的外部电脑侧可以是个人电脑、掌上电脑、便携式电脑、网络服务器、游戏机、甚至是手机等各种具有处理功能的设备。接口单元用于满足特定接口的技术标准,实现特定的通信协议,其可以是标准的以太网接口、RS232串行接口、并行接口、红外线接口、万用串行总线(Universal Serial Bus,USB)接口或其他物理接口等,当采用以太网接口时,电子象棋棋盘与外部电脑之间可以通过网络来互连。不同的接口单元采用不同的电路和控制芯片。
本实施例中,外部系统处理单元用于在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局,并将所述棋子布局通过接口单元发送给内部系统处理单元;在对弈过程中每次行棋时,通过接口单元向内部系统处理单元发送行棋操作检测命令,并通过接口单元接收内部系统处理单元返回的本次行棋信息,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局,或者根据所述行棋信息判断本次行棋操作是否有效,在确定本次行棋操作有效后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局,将更新后的前次棋子布局通过接口单元发送给内部系统处理单元。进一步地,在对弈过程中根据当前的行棋状态通过接口单元向内部系统处理单元发送相应的状态指示控制命令(如指示灯点亮命令,或者如专利申请200710076916.5中所述的状态更新消息等)。
内部系统处理单元用于根据来自外部系统处理单元的行棋操作检测命令,控制棋子检测单元实时检测棋盘盘面上的当前棋子布局,并接收棋子检测单元检测到的当前棋子布局,将当前棋子布局与外部系统处理单元发送的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,将本次行棋信息通过接口单元发送给外部系统处理单元。此外,根据来自外部系统处理单元的状态指示控制命令(如指示灯点亮命令),控制棋盘的指示控制单元(如指示灯控制单元)控制行棋状态指示单元进行相应指示(如点亮或闪烁相应的行棋状态指示灯)。
其中,行棋确认指示单元和行棋确认指示控制单元可直接由内部系统处理单元控制。此外,行棋错误指示单元和行棋错误指示控制单元也可由内部系统处理单元控制。
如图3a所示,外部系统处理单元和内部系统处理单元可分别包括中央处理单元(CPU)和存储单元。其中,外部系统处理单元中的中央处理单元是外部电脑侧的计算和控制中心,用于完成上述描述的外部系统处理单元的功能,存储单元可用于存储前次棋子布局(包括初始棋子布局)信息、配置数据及一些中间计算数据等;内部系统处理单元中的中央处理单元是电子象棋棋盘侧的计算和控制中心,用于完成上述描述的内部系统处理单元的功能,存储单元用于存储外部系统处理单元发送过来的前次棋子布局和一些中间计算数据等。
本实施例中,电子象棋棋盘与电脑互连后,不仅可用于象棋比赛时记录棋谱和行棋时间,还可以用于人机对弈和网络对弈。人机对弈时,外部电脑侧除了具有上述外部系统处理单元的功能外,还要执行人工智能,即执行象棋对弈软件,当由电脑侧行棋时,外部电脑系统计算行棋操作,并将计算出的行棋操作(即行棋棋子的位置和颜色信息)由外部系统处理单元通过接口单元指示给内部系统处理单元,由内部系统处理单元控制行棋位置指示控制单元(如行棋位置指示灯控制单元)控制行棋位置指示单元(如行棋位置指示灯)进行相应指示,供本地棋手根据相应指示代替电脑在棋盘盘面上行棋。网络对弈时,电脑接入网络,如互联网(Internet),棋手在电子象棋棋盘上与网络对端的棋手进行对弈,则对端棋手执行行棋操作后,将行棋操作(即行棋棋子的位置和颜色信息)通过网络传送给电脑系统,电脑系统将所接收的行棋操作由外部系统处理单元通过接口单元指示给内部系统处理单元,由内部系统处理单元控制行棋位置指示控制单元(如行棋位置指示灯控制单元)控制行棋位置指示单元(如行棋位置指示灯)进行相应指示,供本地棋手根据相应指示代替电脑在棋盘盘面上行棋。
可见,通过利用外部电脑系统执行系统处理单元的一部份功能,如执行与行棋相关的计算,例如行棋步骤检查、过程记录、人工智能等,而电子象棋棋盘主要执行棋子状态检测、指示灯控制或按键检测等功能,可以降低电子象棋棋盘的复杂性,从而降低成本。另外,可以充分利用电脑系统具有的强大计算能力和存储能力,实现多样化的功能,例如,语音提示功能、棋谱存储和分析功能。
图3b为本发明实施例中系统处理单元的又一种结构示意图。如图3b所示,系统处理单元全部位于电子象棋棋盘中,包括:中央处理单元(CPU)和存储单元。
其中,存储单元用于存储前次棋子布局(包括初始棋子布局)信息、配置数据及一些中间计算数据等,此外,为了实现人机对弈功能,存储单元还用于存储象棋对弈软件;中央处理器是电子象围棋棋盘的计算和控制中心,用于执行前述描述的系统处理单元的功能,此外在进行人机对弈时,还用于运行象棋对弈软件,以计算电脑侧的行棋操作。
使用图3b所示系统处理单元时,电子象棋棋盘是作为一个独立设备使用的。在这种情况下,当进行人机对弈时,其内部电脑系统需要执行大量的人工智能计算,因此要求使用高性能中央处理器和大容量存储器,以提高计算速度——当然这样可能会增加电子象棋棋盘在CPU和存储器上的成本。
此外,为了能够进行网络对弈,该系统处理单元还可包括网络接口单元,则中央处理单元还用于通过该网络接口单元接收网络对端棋手的行棋操作。
下面给出本发明中的一个较佳实施例:
图4a和图4b分别示出了本发明实施例中电子中国象棋棋盘的外观图和电子国际象棋棋盘的外观图。如图4a和图4b所示,二者除了具有与普通棋盘相类似的棋盘盘面外,还设置有开始对弈按键和各种行棋状态指示灯。这些状态指示灯包括:行棋方指示灯、行棋确认指示灯、行棋位置指示灯和告警指示灯。其中,电子中国象棋棋盘的行棋方指示灯为″红″和″黑″,电子国际象棋棋盘的行棋方指示灯为″白″和″黑″。告警指示灯又包括行棋错误指示灯和设备故障指示灯。
本实施例中,对应每个棋位的行棋位置指示灯包括四个,分别布置于每个棋位的四个角上,其中相邻的棋位共用相同角上的指示灯。如相邻的左右两个棋位,左侧棋位的右下角和右上角与右侧棋位的左下角和左上角分别共用同一个指示灯。当然,对应每个棋位的行棋位置指示灯也可以是位于该棋位中心位置附近的一个指示灯,或者也可以是分别位于每个棋位的两个对角上的指示灯,或者,还可以是位于靠近X轴和Y轴附近对应棋位的X坐标和Y坐标的两个指示灯。具体实现时,可根据实际情况选用,此处不做限定。其中,行棋位置指示灯通常设置在棋盘盘面的下方,肉眼只能看到点亮的指示灯。
对应上述的开始对弈按键,本实施例中必然包括与之对应的按键检测单元。其中,按键检测单元由触点开关实现,当按键被按下时,按键检测单元检测到相应操作,产生一个控制信号到系统处理单元,如输出高电平,系统处理单元可检测到输入管脚的电压变为高电平,因此可触发系统处理单元执行特定的内部处理程序,确定本次对弈开始。
由于对于电子象棋棋盘来说,表示棋子布局、执行行棋计算以及记录行棋信息及棋谱等处理,都涉及到棋子的位置信息,因此必须为电子象棋棋盘定义坐标系以标记棋子的位置。由于中国象棋棋盘的棋位中心点位于棋盘上每个交叉点处,而国际象棋棋盘的棋位中心点位于棋盘上每个方格的中心点处,因此对应图4a和图4b两个外观图,本实施例中,可分别设置如图5a和图5b所示的坐标系,其中,图5a为电子中国象棋棋盘的坐标系,图5b为电子国际象棋棋盘的坐标系。
图5a中,将坐标原点设置在红方阵地的左下角,棋盘上有90个(10行×9列)棋位,左下角第一个棋位的坐标为(0,0),右上角顶端棋位的坐标为(8,9);图5b中,将坐标原点设置在白方阵地左下角的棋位中心点处,棋盘有64个(8行×8列)棋位,左下角第一个棋位的坐标为(0,0),右上角顶端棋位的坐标为(7,7)。实际应用中,电子象棋棋盘也可以使用其他类型的坐标系统,只要坐标系统能够准确唯一地标识每个棋位的位置坐标即可。
相应地,为了建立行棋位置指示灯与棋位的位置关系,可针对行棋位置指示灯设置如图6a和图6b所示的坐标系,其中,图6a为电子中国象棋棋盘中行棋位置指示灯的坐标系,图6b为电子国际象棋棋盘中行棋位置指示灯的坐标系。以电子中国象棋棋盘为例,图中每个虚线交叉点处设置有一个行棋位置指示灯。对应图6a所示坐标系中左下角处的5个小黑点,A点代表任意一个棋位,a、b、c和d点代表A棋位的4个行棋位置指示灯的位置,可见,若A点的坐标为(X,Y),那么a点的坐标也是(X,Y),b点的坐标是(X+1,Y),c点的坐标是(X,Y+1),d点的坐标是(X+1,Y+1),其中a、b、c、d四个点的坐标值是相对坐标系x-y而言的,而A点的坐标值是相对坐标系X-Y而言的。
基于上述坐标系,下面分别对本较佳实施例中的指示灯控制单元和棋子检测单元进行详细描述。
首先以电子中国象棋棋盘为例,对本实施例中的指示灯控制单元进行详细描述。
指示灯通常采用发光二极管,可由系统处理单元中的对应控制芯片的I/O输出管脚直接控制其开/关或闪烁。
对于行棋方指示灯的控制,由于只需要控制两种指示灯,因此可采用控制芯片的2位I/O输出控制行棋方指示灯的开/关即可,如图7a所示,图7a为对应图4a所示外观图中行棋方指示灯的行棋方指示灯控制单元的结构图。其中,系统处理单元中相应控制芯片的I/O管脚输出高电平,便点亮指示灯。Db为黑方指示灯,点亮时表示当前由执黑子一方行棋;Dr为红方指示灯,点亮时表示当前由执红子一方行棋。黑方指示灯与红方指示灯在行棋过程中不能同时点亮。
若对应图4b所示外观图中行棋方指示灯,则可设置如图7b所示的行棋方指示灯控制单元的结构图。其中,Db1和Db2为黑方指示灯,点亮时表示当前由执黑子一方行棋;Dw1和Dw2为白方指示灯,点亮时表示当前由执白子一方行棋。黑方指示灯与白方指示灯在行棋过程中不能同时点亮。
同理,行棋确认指示灯和告警指示灯对应的指示灯控制单元的结构与之类似,此处不再——赘述。
对于本实施例中的行棋位置指示灯,具体实现时,也可以直接采用系统处理单元中相应控制芯片(例如可编程逻辑器件CPLD)提供的I/O输出来控制每个指示灯的开、关或闪烁。指示灯采用发光二极管。但这样一来,对于电子中国象棋棋盘,其共有90(10行×9列)个棋位,每个棋位的四个角上均设置一个行棋位置指示灯,则共有110(11行×10列)个行棋位置指示灯,如果一个行棋位置指示灯使用控制芯片的一位I/O输出位来控制,则至少需要110个I/O输出位。即便每个控制芯片支持30位I/O输出能力,那么至少需要4片控制芯片,这无疑将大大增加了电子象棋棋盘的成本。为减少控制芯片的数量,本实施例中利用发光二极管的电流具有方向性的特点,即当发光二极管两端的电压相同或者极性相反时,发光二极管不发光,采用一种行、列控制电路,只需要使用21位(11个行I/O+10个列I/O)I/O输出便可以控制110个指示灯中任意一个的状态。可见,行、列控制电路可以极大地减少I/O芯片的使用,从而降低成本。
图7c中以电子中国象棋棋盘为例,示出了本发明实施例中行棋位置指示灯控制单元的电路原理图,如图7c所示,行棋位置指示灯控制单元的电路采用行、列控制电路。发光二极管D0.0~D9.10为电子中国象棋棋盘上110个行棋位置指示灯。端口P1和P2是控制芯片提供的两个I/O端口,端口P1有10个I/O控制位P1.0~P1.9,用于控制行棋位置指示灯的列电路,而端口P2有11个I/O控制位P2.0~P2.10,用于控制行棋位置指示灯的行电路。要点亮坐标为(X,Y)的一个棋位处的行棋位置指示灯,只要控制端口P1的第X比特和第(X+1)比特输出″1″(即高电位)而其他所有比特输出″0″(即低电位),同时控制端口P2的第Y比特和第(Y+1)比特输出″0″而所有其他比特输出″1″。如图7c中所示,要点亮表示棋位(1,2)的行棋位置指示灯,则需要点亮(1,2)、(1,3)、(2,2)和(2,3)处的指示灯,此时只要控制端口P1输出(0000000110)和端口P2输出(11111110011)即可。
图7c只是对电路原理的示意性描述,因此省略了电源和电阻等元器件。其电路的原理为利用发光二极管的电流具有方向性,通过控制行、列端口的输出,控制指定棋位对应的行棋位置指示灯点亮。
此外,由于电子象棋棋盘每次需要点亮至少两个棋位的行棋位置指示灯,以指出棋子移动的路径。例如,如图7d所示,图7d为利用图7c所示电路原理图进行行棋位置指示的示意图。其中,要指示出棋位(5,5)处的“马”吃掉棋位(6,3)的″车″,则需要点亮或闪烁棋位(5,5)和(6,3)处的行棋位置指示灯。当行棋位置指示灯被点亮时,棋手可以看到电子象棋棋盘上指出的行棋路径。具体实现时,其中″马″和″车″的4个指示灯可以被交替点亮和关闭(例如,″马″的4个指示灯亮0.5秒,″车″的4个指示灯亮0.5秒)。
下面以电子国际象棋棋盘为例,对本实施例中的棋子检测单元进行详细描述。
本实施例中,棋子检测单元主要检测电子象棋棋盘上所有棋子的位置和颜色。具体实现时,考虑到线性霍尔元件不仅能够检测磁场的方向,还能够检测磁场的强度,因此本实施例中采用线性霍尔元件实现棋子检测。通常情况下,线性霍尔元件有3个管脚:接地端、电源端和输出端,工作电压为5V。在没有磁场条件下,线性霍尔元件输出电压为2.5V;在N极磁场下,线性霍尔元件输出电压大于2.5V,且输出电压随磁场强度的增加而增加;在S极磁场下,线性霍尔元件输出电压小于2.5V,且输出电压随磁场强度的增加而减小。
图8中以电子国际象棋棋盘为例,示出了本发明实施例中棋子检测单元的电路原理图,在实际电路中可能需要增加一些电阻和二极管等其他元件,此处不再详述。如图8所示,棋子检测单元中的行列检测电路包括A/D转换器、多路选择器和I/O控制器,棋子检测单元中的棋位检测单元包括霍尔元件阵列。
其中,霍尔元件阵列包括与棋位数量和位置一致的行列霍尔元件。对于国际象棋,该霍尔元件阵列包括8行×8列共64个霍尔元件,一个霍尔元件代表一个棋位。为了配合霍尔元件对棋子的检测,在不同颜色的棋子中可嵌入极性相反的磁铁或极性相同而磁场强度不同的磁铁。
I/O控制器包括与所述霍尔元件阵列的列数一致的输出端,即包括8路输出端,且每个输出端分别与霍尔元件阵列的一列霍尔元件的电源端相连,实现一个输出端为一列霍尔元件供电(如果供电能力不够,可通过三极管提高电路供电能力),I/O控制器还与系统处理单元相连,用于在系统处理单元的控制下,逐次通过每个输出端向与该输出端相连的一列霍尔元件的电源端供电。I/O控制器是指那些能够提供I/O输出端且能够对各个I/O脚的状态进行独立控制的芯片或芯片组,例如CPLD、数据锁存器74HC573芯片等。
多路选择器至少包括与霍尔元件阵列的行数一致的输入端,即至少包括8路输入端,8路输入端中的每路输入端分别与霍尔元件阵列的一行霍尔元件的输出端相连,多路选择器还与系统处理单元相连,用于接收来自系统处理单元的选路信号,实现在I/O控制器每次通过一个输出端向一列霍尔元件的电源端供电时,逐次通过每个输入端接收与该输入端相连的一行霍尔元件的输出。
此外,多路选择器的输出端与A/D转换器的输入端相连;A/D转换器的输出端接入系统处理单元(如CPU)的数据端口。
A/D转换器用于接收来自多路选择器输出端的信号,对所接收的信号进行A/D转换后,将转换后的数据输出给系统处理单元。
系统处理单元根据来自A/D转换器的数据及预设的数据阈值,确定霍尔元件对应的棋位是否有棋子及有棋子时的棋子颜色。
系统处理单元控制棋子检测单元,通过逐列扫描方式实现棋子的检测,具体处理过程可如下所示:
步骤1:系统处理单元控制I/O控制器的第1个输出端向第1列霍尔元件供电(即输出5V高电平),而其他输出端不供电(即输出低电平)。
步骤2:系统处理单元控制多路选择器选择第1个输入端(即第1行)的信号送入A/D转换器。
步骤3:系统处理单元读取数据端口,获得A/D转换器的输出数据,根据获得的数据值及设定的数据阈值判断该棋位处的棋子信息。
例如,对于对弈双方棋子中嵌入极性相反的磁铁的情况,若数值在阈值a-b之间,则表示没有磁场,记录该棋位为″没有棋子″,例如用0(0000)表示没有棋子;
若数值在阈值0-a之间,则表示有S极磁场,记录该棋位为″黑色棋子″,例如用1(0001)表示黑色棋子;
若数值在阈值b-256之间,则表示有N极磁场,记录该棋位为″白色棋子″,例如用15(1111)表示白色棋子。
说明:霍尔元件输出的电压信号存在漂移,例如霍尔元件在无磁场情况下理论上应输出2.5伏(即数字信号为128),但实际测试时由于棋子与霍尔元件的位置变化以及电子器件的误差,输出电压在2.5伏左右,存在一定的偏差。另外,棋盘上每个棋子距离霍尔元件的距离不能保证绝对相同,每个棋子中的磁铁的磁力强度也不尽相同,这都导致相同颜色棋子对应的霍尔元件的输出电压存在偏差。因此,必须设置3种棋子状态的输出数值区间,通过对检测结果的区间判断来决定棋位处的棋子状态。其中a,b的取值可以根据实际大量测试结果来设定,例如a=90、b=166。
步骤4:在多路选择器选择的当前输入端不是最后一个输入端时,系统处理单元控制多路选择器选择下一输入端(即下一行)的信号送入A/D转换器,并返回执行步骤3,直到完成该列霍尔元件的数字信息检测,之后执行步骤5。
步骤5:在I/O控制器当前供电的霍尔元件不是最后一列霍尔元件时,系统处理单元控制I/O控制器的下一输出端向下一列霍尔元件供电,并返回执行步骤2,直到最后一列霍尔元件的数字信号被读取完毕。
通过执行上述步骤1-5,便得到了棋盘上的实际棋子状态(包括颜色和位置信息),即当前棋子布局。
此外,本实施例中,在不同颜色的棋子中嵌入极性相同而磁场强度不同的磁铁时,可以通过区分磁场强度来实现棋子状态的检测。此时,在上述步骤3中,在通过判断A/D转换结果的数值大小来判断棋子状态时,其数据阈值会有所改变。例如,可设定数值在100-150之间为″没有棋子″,数值在151-200之间为″黑色棋子″,数值在201-255之间为″白色棋子″,其他处理过程与上述过程相同。
本实施例中,对应图4a和图4b所示电子象棋棋盘的外观和本实施例中电子象棋棋盘的各组成部分,设置了如图9所示的电子象棋棋盘物理结构。如图9所示,本实施例中的棋盘本体从上到下包括:具有透光性的面板101、隔光板102、电路板103和底板104。
其中,面板101用于提供与普通棋盘相同的棋盘盘面、行棋状态指示灯的标志以及开始对弈按键的标志或按键孔,它具有一定透光性和强度,可采用塑料板或玻璃板。面板表面雕刻或印制有棋盘图案,或者贴有棋盘盘面的薄膜。
隔光板102用于隔离每个状态指示灯,且该隔光板上对应棋位的四个角的位置设置有行棋位置指示灯孔和棋子检测单元对应各个棋位的霍尔元件孔,此外还有其他的状态指示灯孔,指示灯孔的形状可根据行棋位置指示灯201和其他状态指示灯的形状设计成是圆形或者方形或其他形状。同样霍尔元件孔的形状可根据霍尔元件202的形状进行设计。
电路板103用于安装系统处理单元、棋子检测单元、按键检测单元、开始对弈按键、指示灯控制单元、以及各行棋状态指示灯。
其中,棋子检测单元中的每个霍尔元件202安装在棋位的中心点处,行棋状态指示灯中的行棋位置指示灯201安装在每个棋位的四个角上,相邻的两个棋位共用相同角上的行棋位置指示灯201。行棋位置指示灯201被嵌在隔光板102的行棋位置指示灯孔中。为方便隔光板102与电路板103之间的安装,通常隔光板上的行棋位置指示灯孔比行棋位置指示灯201略大。
底板104用于承受所述电路板101、隔光板102、面板103和棋子301(302)的重量。底板104可以采用木板或塑料板。底板104上每个棋位处还可以嵌上铁片401,当棋子301(302)落入棋位后,棋子301(302)中的磁铁与铁片401产生的吸引力使棋子301(302)固定在棋位中心,保证霍尔元件201充分地感应磁铁产生的磁场。
其中,棋子301和棋子302的颜色不同,本实施例中颜色不同的棋子的底部嵌有极性相反的磁铁。
以上对本发明实施例中的电子象棋棋盘进行了详细描述,下面再对本发明实施例中电子象棋棋盘的行棋处理方法进行详细描述。
图10为本发明实施例中电子象棋棋盘的行棋处理方法的示例性流程图。如图10所示,该流程包括如下步骤:
步骤1001,对弈开始前或开始时记录初始棋子布局。
本实施例中,可采用专利申请200710076916.5中描述的方法,用4个比特来标识各种棋子,用其中低位的3比特表示棋子名称,高位的1比特表示棋子颜色。并且,棋子布局可采用字节流的形式表示或采用数组的形式表示。
例如,以电子国际象棋为例,可用1(0001)代表白色“王”、2(0010)代表白色″后″、3(0011)代表白色″车″、4(0100)代表白色″马″、5(0101)代表白色″象″、6(0110)代表白色″兵″、9(1001)代表黑色″王″、10(1010)代表黑色″后″、11(1011)代表黑色″车″、12(1100)代表黑色″马″、13(1101)代表黑色″象″、14(1110)代表黑色″兵″。
对于图1b所示的初始棋子布局,可在对弈开始之前或开始之时由电脑系统初始化系统数据时直接设置好。初始棋子布局中棋子的状态包括:棋子的名称、颜色和位置。
采用字节流的形式表示时,可定义一个长度为32字节的字节流MemFlow,每个字节的高4位表示一个棋位,低4位表示另一个棋位(注:若不考虑节约存储空间,可以使用长度为64字节的字节流来记录,此时,每个字节表示一个棋位)。采用数组的形式表示时,可定义一个包括32字节的二维字节数组MemMap[8][4],同样每个字节的高4位表示一个棋位,低4位表示另一个棋位(同样,若不考虑节约存储空间,可以定义8行、8列的二维字节数组,每个字节代表一个棋位)。
MemFlow或MemMap数组用于记录初始棋子布局,以及从对弈开始到对弈结束的行棋过程中,每次有效行棋后的棋子状态。则对于图1b所示的初始棋子布局,MemFlow记录的字节流的内容可如表1所示,而用MemMap数组记录时,可将表1中的各数值按顺序赋值给MemMap数组。可见,MemFlow或MemMap数组记录的棋子的状态包括:棋子的名称、颜色和位置。其中,用字节流表示时,棋子的位置信息就是字节流中对应各棋子的字节的具体位置;用数组表示时,棋子的位置信息就是4比特码在MemMap数组中的行/列位置。
表1
步骤1002,在对弈过程中每次行棋(本地棋手自己行棋或人机/网络对弈时代替对方行棋)时,实时检测电子象棋棋盘上的当前棋子布局(当前棋盘上各棋子的位置和颜色信息),将检测到的当前棋子布局与所记录的前次棋子布局(对于开始对弈后的第一次行棋,前次行棋布局为初始棋子布局)进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,电子象棋棋盘计算出行棋棋子移动的位置,并根据所移动的位置判断行棋棋子的名称和被吃棋子的名称(如果有棋子被吃的话),得到本次行棋信息,并利用本次行棋信息更新前次棋子布局,作为下一次行棋操作自动检测时的前次棋子布局。
本步骤中,随着每次行棋的进行,系统不断扫描棋盘上的棋子状态,由于电子象棋棋盘自动检测棋子布局时,不检测棋盘上真是棋子的名称,因此每次扫描只获得棋盘上真实棋子的颜色和位置信息,当用4比特来标识棋子状态时,可只表示出该棋位是否有棋子,以及有棋子时棋子的颜色即可,例如,对于电子国际象棋棋盘,可用0(0000)表示某棋位没有棋子,1(0001)表示黑色棋子,15(1111)表示白色棋子。
为了记录单次行棋过程中每次扫描得到的棋子状态,对于采用字节流的形式表示棋子布局的情况,可定义另一个长度为32字节的字节流BoardFlow,对于采用数组的形式表示棋子布局的情况,可定义另一个包括32字节的数组BoardMap[8][4]。同样,每个字节的高4位表示一个棋位,低4位表示另一个棋位。BoardFlow或BoardMap数组用于记录每次扫描棋盘得到的棋子状态,其记录的棋子的状态只包括:棋子的颜色和位置,同样,用字节流表示时,棋子的位置信息就是字节流中对应各棋子的字节的具体位置;用数组表示时,棋子的位置信息就是4比特码在MemMap数组中的行/列位置。因为电子象棋棋盘不检测棋盘上真实棋子的名称,因此BoardFlow或BoardMap数组不记录棋子的名称。
无论是采用字节流的方式还是数组变量的方式来表示棋子布局,其实现过程都是一样的,因此为了描述简洁,下面将只以采用数组变量的方式来表示棋子布局的情况为例,对本步骤1002中国际象棋对弈开始后的第一步行棋过程进行详细描述。
步骤A:系统开始不断扫描棋盘上的棋子状态,每次扫描便获得棋盘上真实棋子的颜色和位置信息,并记录在BoardMap中。
步骤B:每次扫描棋盘结束后,系统比较BoardMap和MemMap。由于一开始时还没有行棋操作,因此BoardMap和MemMap记录的颜色和位置信息相同,系统重复执行步骤A和B。
在不断执行步骤A和B的过程中,白方棋手开始行棋,例如棋手将王前面的兵向前移动一格,得到如图11所示的行棋示意图。
此时,在执行步骤B时,检测到BoardMap[1][2]与MemMap[1][2]记录的棋子状态发生变化,同时BoardMap[2][2]与MemMap[2][2]记录的棋子状态也发生变化,因此系统进一步执行步骤C。
步骤C:判断棋子状态变化的具体情况:
1)MemMap[1][2]=01100110、BoardMap[1][2]=11110000,因此判断出棋位(4,1)处的棋子″白色兵-0110″被移动走了;2)MemMap[2][2]=00000000、BoardMap[2][2]=00001111,因此判断出棋位(4,2)处有一个白色棋子移动到该棋位处;由此,可以判断″原来在(4,1)处的白色兵被移动到棋位(4,2)处″。
步骤D:通过步骤C,检测到一个″白色兵″被移动了,然后系统计算本次行棋有效,因此点亮棋盘上的行棋确认指示灯。
步骤E:本次行棋操作结束后,系统更新棋子状态图,即MemMap[1][2]=01100000、MemMap[2][2]=00000110,而数组MemMap的其他元素的取值不改变。更新后的MemMap将用于下一次由黑方行棋时的自动检测行棋操作,即用于下一次行棋时执行步骤B和步骤C时的判断和计算。
可见,不断扫描棋子状态、不断计算行棋操作、不断更新MemMap的过程,便可以将一局对弈过程中的每次行棋操作自动检测出来。
另外,若棋手在行棋过程中将某棋子拿起来后又放回原处,则上述步骤C中只会检测到某个棋位处的棋子被移走,但无法检测到棋子移动到何处,因此系统判断行棋操作未完成,即棋子在棋盘上未完成正确的移动操作。因此,系统将继续检测行棋操作,直到检测到正确的行棋操作为止。可见,采用本发明中的技术方案,棋手在行棋过程中若拿起棋子后又放回原处,系统不会产生错误,而是将继续检测行棋操作。
上述流程中,在步骤1001和步骤1002之间,可以进一步包括如下步骤:对弈开始后(如按下对弈开始按键后),扫描棋盘上的棋子状态,得到由位置和颜色信息表示的当前棋子布局,将当前棋子布局的棋子位置和颜色与初始棋子布局中的棋子位置和颜色进行比较,若相同,则指示可以在棋盘上开始行棋,之后执行步骤1002;否则,说明棋盘上的棋子未按照要求布局,可控制电子象棋棋盘点亮行棋错误指示灯,提示棋手更正棋子布局,在棋手更正棋子布局后,返回执行本步骤。由于通常情况下,不会出现初始棋子布局布置错误的情况,因此本步骤通常情况下可以省略。
对于自动行棋检测过程,具体实现时,对应不同的系统处理单元的内部结构,可有不同的具体流程,下面分别针对图3a和图3b所示系统处理单元的结构对行棋处理方法进行详细描述。
图12为对应图3a所示系统处理单元的行棋处理方法流程图。此时,电子象棋棋盘处于联机状态,外部系统处理单元和内部系统处理单元通过特定的行棋信息交换协议,如专利申请200710076916.5中描述的信息交换协议,完成命令和数据的交换。如图12所示,该行棋处理包括如下步骤:
步骤1201,对弈开始时,外部系统处理单元记录初始棋子布局信息,然后将初始棋子布局通过消息的方式发送给电子象棋棋盘中的内部系统处理单元。
步骤1202,对弈开始后的每次行棋时,外部系统处理单元向内部系统处理单元发送行棋操作检测命令,例如专利申请200710076916.5中所述的行棋命令消息和状态更新消息。
本步骤中,可设定外部系统处理单元向内部系统处理单元发送行棋操作检测命令的各种触发条件。例如,在人机对弈时,可在内部系统处理单元检测到棋手按下开始对弈按键并将按键按下信息通知外部系统处理单元后,外部系统处理单元确定当前由棋手行棋或由电脑系统行棋,假设由棋手行棋,则外部系统处理单元通知内部系统处理单元点亮棋手一方的行棋方指示灯,并通知内部系统处理单元开始进行自动检测,如向内部系统处理单元发送行棋操作检测命令。之后,在棋手完成本次行棋操作后,由电脑系统行棋,此时外部系统处理单元通知内部系统处理单元点亮电脑一方的行棋方指示灯,并执行人工智能对弈软件,得到电脑系统计算出的行棋操作,则外部系统处理单元将该行棋操作发送给内部系统处理单元,控制内部系统处理单元点亮对应该行棋操作的行棋位置指示灯,同时通知内部系统处理单元开始进行行棋自动检测,如向内部系统处理单元发送行棋操作检测命令。
步骤1203,内部系统处理单元启动周期定时器。
步骤1204,在每次定时器超时时内部系统处理单元控制棋子检测单元扫描棋盘上棋子状态,即扫描所有棋子的位置和颜色。
其中,由于定时周期通常非常短,因此定时器会很快超时。
步骤1205,内部系统处理单元将步骤1204扫描得到的棋子状态与记录的棋子布局进行比较,判断棋子状态是否发生改变(对于第一次行棋,系统记录的是初始棋子布局,对于以后的行棋,系统记录的是上一次行棋结束后更新的棋子布局),若棋子状态未发生改变,则结束处理流程,等待定时器下一次超时重新执行步骤1204,若棋子状态发生改变,则执行步骤1206。
以电子中国象棋棋盘为例,棋子状态的改变有以下三种情况:
A、原来有棋子的棋位处不再有棋子;
B、原来无棋子的棋位处出现了棋子;
C、某棋位处的棋子颜色发生了改变。
注:电脑系统记录的棋子布局信息中,记录有每个棋子的颜色、名称和位置信息,而棋子检测单元扫描得到的棋子状态信息只有每个棋子的颜色和位置信息(因为棋子检测单元不能检测出棋子的名称),因此在比较棋子状态时,只需要比较棋子的颜色和位置信息是否发生改变,通过这种比较就可以计算出棋子移动的位置,并间接得到行棋棋子的名称。
步骤1206,根据步骤1205的比较结果进一步判断是否有行棋操作(一次行棋操作,是指至少有一个棋子移动到新的棋位),若没有行棋操作,则结束处理流程,等待定时器下一次超时重新执行步骤1204;若有行棋操作,继续判断行棋操作是否正确,若行棋操作错误,执行步骤1212,若行棋操作正确,执行步骤1207。
其中,以电子中国象棋为例,判断行棋操作是否正确的准则可以是:
若当前由棋手自己行棋,正确行棋操作的判决条件是:有且仅有当前行棋方的一个棋子移动到空缺棋位或对方某个棋子所在棋位!而所有其他情况的行棋,均为错误行棋(国际象棋与此不同,因为国际象棋还存在特殊行棋),例如,移动的不是当前行棋方的棋子或移动了两个以上的棋子,都是错误的行棋操作;
若当前由棋手代替对方行棋,正确行棋操作的判断条件是:检测到的行棋操作必须与电子棋盘指示的行棋操作相同。
步骤1207,判断是否连续几次检测到相同的棋子操作,若是,执行步骤1208,若不是,结束处理流程,等待定时器下一次超时重新执行步骤1204。说明:步骤1207的目的,是为提高系统判断行棋操作的可靠性,连续多次检测到完全相同的行棋操作,说明棋手已经完成行棋操作。当然,可以根据产品的实际测试结果,决定是否采用该步骤。
步骤1208,对于正确的行棋,内部系统处理单元控制指示灯控制单元点亮行棋确认指示灯(用于指示棋手的行棋已经被系统接受,棋手不得再改变已经完成的行棋)并停止周期定时器。
步骤1209,内部系统处理单元将本次的行棋信息,即某棋子被移动的位置信息(例如,源棋位的坐标和目标棋位的坐标)通过消息发送给外部系统处理单元。
步骤1210,外部系统处理单元接收到所述行棋信号后,判断本次行棋是否有效,若行棋无效,则通过消息指示内部系统处理单元,由内部系统处理单元执行步骤1212;否则,执行步骤1211。
其中,行棋无效,是指违反行棋规则的行棋,例如国际象棋中的“兵”不能横走,“车”、“象”和“后”的行棋线路上不能有棋子,等等。
步骤1211,对于正确有效的行棋操作,外部系统处理单元更新记录的棋子布局,并将更新后的棋子布局发送给内部系统处理单元,以便用于下一次行棋处理时判断新的行棋操作。并且外部系统处理单元记录下本次行棋操作的信息。
对弈结束后,外部系统处理单元所记录的每次行棋操作的信息就形成了棋谱文件数据,该棋谱文件数据可以存储到外部存储设备,例如USB移动硬盘。
步骤1212,在步骤1206和步骤1210中,若判断行棋操作错误或者行棋无效,系统都将点亮行棋错误指示灯,提醒棋手行棋错误,然后返回执行步骤1203,继续检测棋手的行棋操作。
上述流程中,除了步骤1202至步骤1204中描述的情况之外,也可由内部系统处理单元按照一定的时间间隔实时的进行自动棋子状态检测,或由外部系统处理单元按照一定的时间间隔向内部系统处理单元发送行棋操作检测命令。
图13为对应图3b所示系统处理单元的行棋处理方法流程图。此时,系统处理单元全部位于电子象棋棋盘中,电子象棋棋盘作为一个独立的设备使用。如图13所示,该流程包括如下步骤:
步骤1301,对弈开始时,系统处理单元记录初始棋子布局信息。
步骤1302,对弈开始后的每次行棋时,系统处理单元启动周期定时器。
本步骤中,可设定系统处理单元启动周期定时器的各种触发条件。例如,在人机对弈时,可在系统处理单元检测到棋手按下开始对弈按键后,确定当前由棋手行棋或由电脑系统行棋,假设由棋手行棋,则系统处理单元控制指示灯控制单元点亮棋手一方的行棋方指示灯,并启动周期定时器。之后,在棋手完成本次行棋操作后,由电脑系统行棋,此时系统处理单元控制指示灯控制单元点亮电脑一方的行棋方指示灯,并执行人工智能对弈软件,得到电脑系统计算出的行棋操作,根据该行棋操作控制指示灯点亮单元点亮对应该行棋操作的行棋位置指示灯,同时启动周期定时器。
步骤1303,在每次定时器超时时系统处理单元控制棋子检测单元扫描棋盘上棋子状态,即扫描所有棋子的位置和颜色。
其中,由于定时周期通常非常短,因此定时器会很快超时。
步骤1304,系统处理单元将步骤1303扫描得到的棋子状态与记录的棋子布局进行比较,判断棋子状态是否发生改变(对于第一次行棋,系统记录的是初始棋子布局,对于以后的行棋,系统记录的是上一次行棋结束后更新的棋子布局),若棋子状态未发生改变,则结束处理流程,等待定时器下一次超时,若棋子状态发生改变,则执行步骤1305。
步骤1305,根据步骤1304的比较结果进一步判断是否有行棋操作(—次行棋操作,是指至少有一个棋子移动到新的棋位),若没有行棋操作,则结束处理流程,等待定时器下一次超时重新执行步骤1303;若有行棋操作,继续判断行棋操作是否正确,若行棋操作错误,执行步骤1310,若行棋操作正确,执行步骤1306。
步骤1306,判断是否连续几次检测到相同的棋子操作,若是,执行步骤1307,若不是,结束处理流程,等待定时器下一次超时。
步骤1307,对于正确的行棋,系统处理单元控制指示灯控制单元点亮行棋确认指示灯(用于指示棋手的行棋已经被系统接受,棋手不得再改变已经完成的行棋)并停止周期定时器。
步骤1308,系统处理单元判断本次行棋是否有效,若行棋无效,则执行步骤1310;否则,执行步骤1309。
其中,行棋无效,是指违反行棋规则的行棋。
步骤1309,对于正确有效的行棋操作,系统处理单元更新记录的棋子布局,以便用于下一次行棋处理时判断新的行棋操作。并且系统处理单元记录下本次行棋操作的信息。
对弈结束后,系统处理单元所记录的每次行棋操作的信息就形成了棋谱文件数据,该棋谱文件数据可以存储到外部存储设备,例如USB移动硬盘。
步骤1310,在步骤1305和步骤1308中,若判断行棋操作错误或者行棋无效,系统处理单元都将点亮行棋错误指示灯,提醒棋手行棋错误,然后重启周期定时器,继续检测棋手的行棋操作。
上述流程中,除了步骤1302和步骤1303中描述的情况之外,也可由系统处理单元按照一定的时间间隔实时的进行自动棋子状态检测。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种电子象棋棋盘,其特征在于,该棋盘包括:设置有棋盘盘面的棋盘本体、系统处理单元和棋子检测单元,其中,
所述棋盘本体用于供棋手在所述棋盘盘面上行棋;
所述系统处理单元包括:位于电脑侧的外部系统处理单元、位于电子象棋棋盘侧的内部系统处理单元和用于在所述外部系统处理单元与所述内部系统处理单元之间实现通信的接口单元,其中,
所述外部系统处理单元用于在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局,并将所述棋子布局通过所述接口单元发送给所述内部系统处理单元;在对弈过程中每次行棋时,通过所述接口单元向所述内部系统处理单元发送行棋操作检测命令,并通过所述接口单元接收所述内部系统处理单元返回的本次行棋信息,根据所述行棋信息判断本次行棋操作是否有效,在确定本次行棋操作有效后,记录本次行棋信息,并利用所述行棋信息更新所述前次棋子布局,将更新后的前次棋子布局通过所述接口单元发送给所述内部系统处理单元;在对弈过程中根据当前的行棋状态通过所述接口单元向所述内部系统处理单元发送相应的指示控制命令;
所述内部系统处理单元用于根据来自所述外部系统处理单元的行棋操作检测命令,控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局,并接收所述棋子检测单元检测到的当前棋子布局,将所述当前棋子布局与所述外部系统处理单元发送的前次棋子布局进行比较,根据比较结果检测本次行棋操作是否完成,在确定本次行棋操作完成后,将本次行棋信息通过所述接口单元发送给所述外部系统处理单元;根据来自所述外部系统处理单元的指示控制命令,控制棋盘的指示控制单元控制行棋状态指示单元进行相应指示。
2.如权利要求1所述的电子象棋棋盘,其特征在于,该棋盘进一步包括:开始对弈按键和按键检测单元,其中,
所述按键检测单元用于在所述开始对弈按键被按下时,通知所述系统处理单元对弈开始。
3.如权利要求1或2所述的电子象棋棋盘,其特征在于,该棋盘进一步包括:行棋状态指示单元和指示控制单元;
所述系统处理单元根据当前的行棋状态控制所述指示控制单元对所述行棋状态指示单元进行相应行棋状态的指示控制;
所述行棋状态指示单元根据所述指示控制单元的指示控制进行相应的行棋状态指示。
4.如权利要求3所述的电子象棋棋盘,其特征在于,所述行棋状态指示单元包括:行棋状态指示灯、行棋状态响铃和行棋状态语音中的任意一个或任意组合;所述指示控制单元包括与之对应的指示灯控制单元、响铃控制单元和语音控制单元中的任意一个或任意组合。
5.如权利要求4所述的电子象棋棋盘,其特征在于,所述行棋状态指示单元包括行棋状态指示灯,所述指示控制单元包括指示灯控制单元;
所述行棋状态指示灯包括行棋方指示灯,所述指示灯控制单元包括行棋方指示灯控制单元;所述系统处理单元根据当前的行棋方,控制所述行棋方指示灯控制单元点亮或闪烁当前行棋方所对应的指示灯;
和/或,所述行棋状态指示灯包括行棋确认指示灯,所述指示灯控制单元包括行棋确认指示灯控制单元;所述系统处理单元在确定本次行棋操作完成之后,控制所述行棋确认指示灯控制单元点亮或闪烁所述行棋确认指示灯;
和/或,所述行棋状态指示灯包括与棋位对应的行棋位置指示灯,所述指示灯控制单元包括行棋位置指示灯控制单元;在人机对弈或网络对弈时,所述系统处理单元根据对弈软件所确定的行棋操作或对端棋手的行棋操作,控制所述行棋位置指示灯控制单元点亮或闪烁与所述行棋操作对应的行棋位置指示灯,供本地棋手根据所述指示灯代替对方行棋;
和/或,所述行棋状态指示灯包括行棋错误指示灯,所述指示灯控制单元包括行棋错误指示灯控制单元;所述系统处理单元在检测到本次行棋操作完成之后,确定本次行棋操作完成之前,判断所述行棋操作是否正确,若本次行棋操作正确,则确定本次行棋操作完成,否则,控制所述行棋错误指示灯控制单元点亮或闪烁所述行棋错误指示灯,并控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局;和/或,所述系统处理单元在确定本次行棋操作完成之后,记录本次行棋信息之前,判断所述行棋操作是否有效,若本次行棋操作有效,则记录本次行棋信息,否则,控制所述行棋错误指示灯控制单元点亮或闪烁所述行棋错误指示灯,并控制所述棋子检测单元实时检测所述棋盘盘面上的当前棋子布局;
和/或,所述行棋状态指示灯包括设备故障指示灯,所述指示灯控制单元包括设备故障指示灯控制单元;所述系统处理单元在检测到设备故障时,控制所述设备故障指示灯控制单元点亮或闪烁所述设备故障指示灯。
6.如权利要求5所述的电子象棋棋盘,其特征在于,所述与棋位对应的行棋位置指示灯包括:布置于每个棋位四个角上的指示灯,且相邻的棋位共用相同角上的指示灯;
在人机对弈或网络对弈时,所述系统处理单元根据对弈软件所确定的行棋操作或对端棋手的行棋操作,控制所述行棋位置指示灯控制单元交替点亮或闪烁与所述行棋操作对应的源棋位周围的四个指示灯和目标棋位周围的四个指示灯。
7.如权利要求1所述的电子象棋棋盘,其特征在于,所述棋子检测单元包括:行列检测电路和棋位检测单元,其中,
所述棋位检测单元包括与棋位数量和位置一致的棋位检测子单元,每个棋位检测子单元根据棋子的不同状态产生不同变化;
所述行列检测电路用于在所述系统处理单元的控制下对每个棋位检测子单元进行扫描,将得到的扫描结果提供给所述系统处理单元,用于得到所述棋位检测子单元对应棋位的棋子状态。
8.如权利要求7所述的电子象棋棋盘,其特征在于,所述行列检测电路包括:A/D转换器、多路选择器和I/O控制器;所述棋位检测单元包括:霍尔元件阵列;
所述霍尔元件阵列包括与棋位数量和位置一致的行列霍尔元件,一个霍尔元件代表一个棋位;
所述I/O控制器包括与所述霍尔元件阵列的列数一致的输出端,且每个输出端分别与所述霍尔元件阵列的一列霍尔元件的电源端相连,所述I/O控制器在所述系统处理单元的控制下,逐次通过每个输出端向与所述输出端相连的一列霍尔元件的电源端供电;
所述多路选择器包括与所述霍尔元件阵列的行数一致的输入端,且每个输入端分别与所述霍尔元件阵列的一行霍尔元件的输出端相连,所述多路选择器在所述系统处理单元的控制下,在所述I/O控制器每次通过一个输出端向一列霍尔元件的电源端供电时,逐次通过每个输入端接收与所述输入端相连的一行霍尔元件的输出;
所述A/D转换器用于接收来自所述多路选择器输出端的信号,对所述信号进行A/D转换后,将转换后的数据输出给所述系统处理单元;
所述系统处理单元根据来自所述A/D转换器的数据及预设的数据阈值,确定所述霍尔元件对应的棋位是否有棋子及有棋子时的棋子颜色。
9.如权利要求8所述的电子象棋棋盘,其特征在于,该棋盘进一步包括:用于放置于所述棋盘盘面相应棋位上的对弈双方棋子,所述对弈双方棋子中分别设置有极性相反的磁铁或极性相同磁场强度不同的磁铁。
10.如权利要求5至9中任一项所述的电子象棋棋盘,其特征在于,所述棋盘本体从上到下包括:具有透光性的面板、隔光板、电路板和底板,其中,
所述面板用于设置所述棋盘盘面以及行棋状态指示灯的标志;
所述隔光板用于隔离每个状态指示灯,所述隔光板上设置有状态指示灯孔和棋子检测单元对应各个棋位的器件孔;
所述电路板用于安装所述系统处理单元、状态指示灯、指示灯控制单元、棋子检测单元、按键检测单元;
所述底板用于承受所述电路板、隔光板、面板和棋子的重量。
11.一种电子象棋棋盘的行棋处理方法,其特征在于,该方法包括:
在对弈开始前或开始时记录初始棋子布局,将所述初始棋子布局作为前次棋子布局;
A、根据预设条件确定每次行棋开始时,启动周期定时器;
B、在所述周期定时器的当前周期超时时,扫描电子象棋棋盘上的当前棋子状态,得到当前棋子布局;
C、将检测到的当前棋子布局与所记录的前次棋子布局进行比较,判断棋子状态是否改变,如果是,则执行步骤D;否则,返回执行步骤B;
D、判断是否完成一次行棋操作,如果是,则执行步骤E;否则,返回执行步骤B;
E、确定本次行棋操作完成,停止所述周期定时器。
12.如权利要求11所述的方法,其特征在于,所述初始棋子布局、前次棋子布局和当前棋子布局采用字节流的形式表示或采用数组的形式表示,其中对于初始棋子布局和前次棋子布局的每个棋子用4个比特表示,且该4个比特表示出该棋子的位置、颜色和名称;对于当前棋子布局的每个棋子也用4个比特表示,但该4个比特只表示出该棋子的位置和颜色,所述棋子的名称根据当前棋子布局与前次棋子布局的比较结果确定。
13.如权利要求11所述的方法,其特征在于,所述步骤E进一步包括:点亮或闪烁行棋确认指示灯。
14.如权利要求11所述的方法,其特征在于,所述步骤D和步骤E之间进一步包括:D1、判断本次行棋操作是否正确,如果是,则执行步骤E;否则,点亮或闪烁行棋错误指示灯,返回执行步骤B;
和/或,所述步骤D和步骤E之间进一步包括:D2、判断是否连续多次检测到相同的行棋操作,如果是,则执行步骤E;否则,返回执行步骤B。
15.如权利要求11所述的方法,其特征在于,所述步骤E之后,记录本次行棋信息之前,进一步包括:
判断所述行棋操作是否为一次有效的行棋操作,如果是,则记录本次行棋信息;否则,点亮或闪烁行棋错误指示灯,并返回执行步骤A。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102166913A CN101721804B (zh) | 2008-10-15 | 2008-10-15 | 一种电子象棋棋盘及其行棋处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102166913A CN101721804B (zh) | 2008-10-15 | 2008-10-15 | 一种电子象棋棋盘及其行棋处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101721804A CN101721804A (zh) | 2010-06-09 |
CN101721804B true CN101721804B (zh) | 2012-08-15 |
Family
ID=42443735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102166913A Expired - Fee Related CN101721804B (zh) | 2008-10-15 | 2008-10-15 | 一种电子象棋棋盘及其行棋处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101721804B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101430862B1 (ko) * | 2013-02-18 | 2014-09-23 | 김시훈 | 장기 게임 제공방법 및 제공장치 |
CN104069636A (zh) * | 2013-03-31 | 2014-10-01 | 郏惠忠 | 一种基于人工智能的棋类装置 |
CN106415448A (zh) * | 2014-01-30 | 2017-02-15 | 施政 | 指导交互面上的目标物体产生响应的系统和方法 |
WO2015113395A1 (en) * | 2014-01-30 | 2015-08-06 | Zheng Shi | System and method for directing a moving object on an interactive surface |
CN104801037A (zh) * | 2015-05-05 | 2015-07-29 | 周士志 | 一种新式智能象棋 |
CN205307764U (zh) * | 2015-12-08 | 2016-06-15 | 马科峰 | 用于人机对战的棋具以及网络对战的棋具系统 |
CN105597305A (zh) * | 2016-03-10 | 2016-05-25 | 侯景昆 | 一种智能电子棋盘及其控制系统和该控制系统的控制方法 |
TWI619101B (zh) * | 2016-05-13 | 2018-03-21 | 國立臺灣師範大學 | Puzzle learning system |
CN106039697A (zh) * | 2016-06-06 | 2016-10-26 | 李天超 | 基于电脑或手持移动设备的中国象棋 |
CN106178486B (zh) * | 2016-08-30 | 2024-01-19 | 刘锋 | 一种行棋的控制方法及用于下棋的装置 |
CN106422331B (zh) * | 2016-08-31 | 2019-12-10 | 上海交通大学 | 一种基于unity 3D引擎的跳棋信息处理器系统 |
CN106875782A (zh) * | 2017-03-06 | 2017-06-20 | 彭自成 | 探地雷式的围棋书籍的电脑化改造 |
CN107213621B (zh) * | 2017-07-21 | 2023-05-02 | 珠海赤子芯智能科技有限公司 | 一种磁感应式智能棋盘设备与智能移动终端互动操作方法 |
CN108434716A (zh) * | 2018-03-12 | 2018-08-24 | 杨桂凤 | 一种方便初学者的棋盘工具及其工作方法 |
CN108465234A (zh) * | 2018-03-12 | 2018-08-31 | 杨桂凤 | 一种棋盘装置及其工作方法 |
CN108619709A (zh) * | 2018-04-09 | 2018-10-09 | 张家文 | 智能围棋棋盘系统 |
CN108434718B (zh) * | 2018-05-28 | 2023-10-10 | 中电海康集团有限公司 | 一种电子围棋棋盘 |
CN108970099A (zh) * | 2018-09-25 | 2018-12-11 | 吉林大学 | 一种基于分压原理的智能电子棋盘 |
CN109529311A (zh) * | 2018-11-23 | 2019-03-29 | 珠海赤子芯智能科技有限公司 | 一种磁感式智能电子棋盘控制方法及装置 |
CN109621384A (zh) * | 2018-12-06 | 2019-04-16 | 南京牧象物联智能科技有限公司 | 一种训练用电子棋盘系统及训练行棋监控方法 |
CN113967352A (zh) * | 2021-10-29 | 2022-01-25 | 浙江龙蛇网络科技有限公司 | 一种用于竞赛专用电子棋盘的异常错误处理方法 |
CN114417813B (zh) * | 2021-11-26 | 2024-07-12 | 山东师范大学 | 基于中国象棋规则库的盲棋术语解析方法及系统 |
CN113900052B (zh) * | 2021-12-09 | 2022-03-25 | 泉州昆泰芯微电子科技有限公司 | 物品种类识别装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2063428U (zh) * | 1990-01-16 | 1990-10-10 | 王守玉 | 中国象棋自动电子棋盘 |
CN2366148Y (zh) * | 1998-10-23 | 2000-03-01 | 贺平 | 智能化中国象棋机 |
CN1272700C (zh) * | 2003-01-22 | 2006-08-30 | 韩力群 | 围棋电子棋盘及其控制方法 |
CN1866239A (zh) * | 2005-05-18 | 2006-11-22 | 赵汝怀 | 上网中国象棋与国际象棋棋盘 |
-
2008
- 2008-10-15 CN CN2008102166913A patent/CN101721804B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2063428U (zh) * | 1990-01-16 | 1990-10-10 | 王守玉 | 中国象棋自动电子棋盘 |
CN2366148Y (zh) * | 1998-10-23 | 2000-03-01 | 贺平 | 智能化中国象棋机 |
CN1272700C (zh) * | 2003-01-22 | 2006-08-30 | 韩力群 | 围棋电子棋盘及其控制方法 |
CN1866239A (zh) * | 2005-05-18 | 2006-11-22 | 赵汝怀 | 上网中国象棋与国际象棋棋盘 |
Also Published As
Publication number | Publication date |
---|---|
CN101721804A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101721804B (zh) | 一种电子象棋棋盘及其行棋处理方法 | |
CN101332357A (zh) | 一种电子围棋棋盘 | |
CN205307764U (zh) | 用于人机对战的棋具以及网络对战的棋具系统 | |
CN102157091B (zh) | 一种钢琴学习信息生成处理方法 | |
MXPA06013202A (es) | Controlador de juego con controles intercambiables. | |
US20160162040A1 (en) | System and method for operating a computer program with physical objects | |
CN103440515A (zh) | 一种使用天线近场感应的益智玩具及其识别响应方法 | |
CN102600609A (zh) | 电子纸游戏系统及其更新游戏界面的方法 | |
CN115634444A (zh) | 一种磁感式智能电子棋盘控制方法及装置 | |
CN102157079A (zh) | 婴幼儿动中育乐育教系统及教育方法 | |
CN109621384A (zh) | 一种训练用电子棋盘系统及训练行棋监控方法 | |
CN206301295U (zh) | 一种计算机键盘及计算机输入设备组合件 | |
CN109887383A (zh) | 一种逻辑块、逻辑板、拼版式逻辑编程系统及方法 | |
CN110007789A (zh) | 鼠标键盘转换器 | |
CN103913699A (zh) | 一种主板键盘接口的测试电路、系统及其测试方法 | |
CN203721066U (zh) | 键盘类乐器辅助教学器 | |
KR100310316B1 (ko) | 전자식 바둑판 | |
CN200973964Y (zh) | 射频智能棋具 | |
CN203786262U (zh) | 一种主板键盘接口的测试电路及系统 | |
CN111840974A (zh) | 适用于棋类游戏的智能识别方法及系统 | |
WO2024001913A1 (zh) | 一种棋子检测装置、游戏设备及检测方法 | |
JP2011130973A (ja) | 電子化ボードゲームシステム | |
CN209865256U (zh) | 一种磁感式智能电子棋盘 | |
CN101940841B (zh) | 二维输入装置、操控装置以及互动式游戏系统 | |
GB2345250A (en) | Electronic games board |
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 |
Addressee: Zhou Sihong Document name: Notification to Pay the Fees |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120815 Termination date: 20151015 |
|
EXPY | Termination of patent right or utility model |