智能化围棋比赛系统的研制
2015-07-28郭永新曹卫芳
郭永新,焦 青,崔 栋,曹卫芳
(泰山医学院放射学院,山东 泰安 271000)
智能化围棋比赛系统的研制
郭永新,焦 青,崔 栋,曹卫芳
(泰山医学院放射学院,山东 泰安 271000)
本文介绍了一种新型的智能化围棋比赛系统,在该系统中,采用光电法进行多状态阵列信息的检测与识别,可以自动地完成围棋比赛中的实时显示,准确无误地实现比赛中的自动计时及棋局记录.该系统界面友好、使用方便,完全克服了人工记录的弊端,具有很大的实用价值.
多状态阵列;围棋;智能化
近年来,围棋比赛日益频繁,许多比赛都需要实时记录下棋的过程,重要的比赛还需要电视现场转播、分析和讲解.但是目前这些工作仍然采用人工方式,即比赛时由专业人员作现场记录,然后将有关数据隔时地传送到观战室和电视台,再由专业人员予以人工挂子显示并分析讲解.这种方式消耗了大量的人力、物力,而且人工记录也容易产生错误.
为了解决这个问题,本文研制了一种多状态阵列围棋比赛信息检测系统.它可以实时地识别并显示和准确记录棋局的变化过程,自动计时,并将棋谱自动保存,便于以后进行棋局分析,克服了人工记录的弊端.本系统使用方便,界面友好,具有较强的实用价值.
1 多状态阵列检测识别方法
围棋比赛的过程实际上是黑子方、白子方在棋盘上横线和纵线的交叉点上轮流下子的过程.故围棋比赛的记录和显示,实质上是属于三状态19×19阵列信息的实时检测、识别、处理、存储及输出显示的问题.所谓的三状态是指棋盘的某一交叉点上可以出现黑棋子、白棋子和无子三种状态.围棋棋盘横向、纵向各有十九条线,故可以看成19×19的阵列.整个系统性能的优劣,关键问题在于三状态19×19阵列信息检测方法.
在本系统中可以使用的检测识别方法有两种,一种是阻抗法,另一种是光电法.
阻抗法是将围棋比赛中棋盘交叉点上所出现的三种状态转换成为三种阻抗,从而实现检测和识别的一种方法.具体的实现方法是采用特制的棋盘,棋盘上每一个落子的位置,即阵列点,都设有两个接触点,其中一个接触点接地,另一个接触点通过一个电阻与5V电源相连,棋子也是特制的,黑子与白子具有不同的电阻值,将棋盘上每一个落子点的非接地点为测试点,即阵列点.当每个阵列点上放置黑子,白子或者无子时,测试点具有不同的电压值.依次对棋盘上每个阵列点进行逐行逐列扫描测试,即可将所有阵列点的落子状态检测出来.
可以看出,阻抗法三种状态的差别比较明显,便于识别且不易受到环境因素影响,该方法的硬件及软件设计思想比较简明,但是有以下缺点:棋盘和棋子必须特制,制造工艺比较复杂,有一定难度.使用带有触点的特质棋盘,落子位置要准确.否则,将会出现测试错误.但这一点对于对奕双方来讲,将影响他们的正常思考.故在本系统中,不采用阻抗法,而采用光电法来进行检测识别.
光电法是将围棋比赛中棋盘交叉点上所出现的三种状态根据光导效应的原理,通过光电转换将三种落子状态转换成三种电压状态来实现检测识别.光电法中所采用的光敏传感器为红外线光导型光敏传感器以避免可见光源的影响,其测试原理电路如图1所示.当入射光照射到光电晶体(光敏管)上时,该光电晶体的导电率增大,这种效应称为光导效应.利用光导效应可以测定入射光的强弱[1-2].
图1 光电法测量原理
在利用光电法对棋盘交叉点上所出现的三种状态进行识别时,要使用特制的棋盘.棋盘面为厚约1.0mm的铝板,棋盘上每一阵列点打一圆孔(孔径φ=2.0mm),圆孔正下方是光敏二极管,光敏二极管用黑色挡板围住,使其仅从上方的小孔接收红外光.挡板的两边各有一个红外发光管.其具体结构如图2所示.红外发光管发出的红外光经棋子反射到红外光敏二极管上,对应于圆孔上覆盖着黑子、白子或无子覆盖等三种状态,反射下来的光的强度不同,在红外光敏二极管两端的压降也不同.将此电压进行A/D转换,根据转换后的数值就可以判断当前阵列点的状态.
图2 棋盘结构示意图
光电法中,棋子不需要特制,使用普通围棋子即可.其不足之处在于易受环境光源的干扰,但这可以通过采取一定的措施(如遮挡)予以解决.
2 系统整体构成
系统将实现多状态阵列信息的识别,显示及记录.在进行硬件及软件设计之前需要对围棋比赛的全过程进行分析.围棋比赛过程具有以下特点:
(1)实时性不强,不需要在1秒内做多次测试,据实际观察,1秒内能保证2次测试即可.整个围棋盘共有361个点,每个点上使用的时间为:0.5/361=0.0013s.这一时间要求放宽了对A/D转换芯片的选择范围.
(2)在1秒内所做的测试中,需要记录某一点的状态变化,该变化仅仅指的由无子状态到有子状态而言,某一阵列点从有子到无子的状态的变化是由其他阵列点上的状态变化而引起的.
(3)对比赛进行记录是为了可以对棋局进行复盘,该记录与复盘的方法是相互对应的,因此要采用一种固定的文件格式,记录时按照这种固定格式进行文件的创建与写入,复盘时按照这一格式进行数据的读取,并根据数值的不同在显示器上显示阵列点的不同状态.
(4)需要记录对弈双方各自所使用的时间,包括当前一手的时间和总时间.
(5)围棋比赛中存在休盘的情况,在休盘时,应停止记录,尤其是在快棋赛中,这一点尤其重要.
(6)整个棋盘上各点的黑子,白子及无子的状态,实际上是三态19*19的阵列,整个阵列信息量比较大.
综合上述分析,系统整体构成设计如图3所示,
图3 系统组成框图
3 硬件与软件系统组成及功能实现
硬件系统组成框图见图4,分为PC机和单片机两个部分,单片机[3]部分主要包括:主控电路、时间显示电路、扫描电路、A/D转换电路及阵列点检测电路.主要完成棋盘上各阵列点状态的识别.主控微机部分主要实现显示、记录、计时和复盘等功能.其功能全部由软件编程实现.两者之间的数据交换采用了内存直接映像技术,用双端口RAM作为传输中介.
本系统中的软件设计包括两大部分:单片机部分软件设计与主控微机部分软件设计.
单片机软件设计主要完成芯片及系统的初始化、A/D转换、判断状态并赋值、计时显示等功能,流程如图5所示.初始化工作主要完成对主控电路芯片及存储地址的参数设定,判断主机状态.在双端口RAM中留出一定的地址空间,用来存放主机的状态和时间,主机对这一段地址进行写入,单片机对其进行数据读取,获知主机的状态,并根据不同的状态进行不同的工作程序.取时间显示也是从这一段地址中获得数据,将时间数据写入到显示寄存器中,对数据进行周期显示.单片机程序的运行结果为主机进行显示、记录与计时提供了原始数据,主机由此可完成其功能.
主控微机(PC)软件设计在Windows Xp操作系统下,使用VC++编程[4]实现,主要完成阵列参数的显示、记录功能,并能对比赛计时,实现棋局的复盘.另外该程序还要完成对系统的自检,检测是否安装双端口RAM以及下位单片机的状态.在主机屏幕上可以显示当前棋局的状态,并能将每一步的落子情况记录下来,存放在一个有固定格式的文本文件中,以作为资料保存.在系统菜单中主要功能有3项,为实时记录棋局状态、记录棋局变化过程以及棋局复盘.
图4 硬件结构框图
图5 单片机程序流程图
图6 实时显示棋局状态流程图
实时显示棋局状态流程如图6所示.系统在初始化后进入此功能,初始化时将棋局全部设定为无子状态,时间全部为零,确定保存数据的文件名称.实时显示先从双端口RAM中读取数据,共361个(19行,19列),然后与原来的数据相比较.若由黑子或白子状态变为无子状态,则改变当前显示的状态为空白.若由无子状态变为黑子状态,除改变显示状态为黑子外,还将计时标志设为白子方计时标志;若由无子状态变为白子状态,除改变显示状态为白子外,还将计时标志设为黑子方计时标志.系统还监视主机键盘的输入是否进入休盘状态,若进入休盘状态,则程序进入循环等待,直到休盘状态解除;若主机键盘键入选择为结束状态,则进入整个棋局的记录功能,即将内存中的棋局记录数据写入到硬盘上标识本局比赛的棋局记录文件中去.
计时功能是采用接管PC机的IC中断来完成的,IC中断每秒产生18.2次,白方和黑方分别用两个整型变量来存储当前手和总时间,经简单运算后在屏幕上显示,并且把显示的数据写入双端口RAM中,以便为单片机提供显示的时间.若棋局进入休盘状态,将IC中断地址还原,并时刻监视系统是否解除休盘状态,一旦休盘状态解除,就重新接管IC中断,进入计时.
记录棋局工作就是将棋局的每一次的变化都写入到一个文件中,这里所说的棋局变化指某一次落子后棋局所产生的变化,在棋盘上某一点上的棋子被提掉时并不作为一次棋局变化,因而也不需要作记录.在记录棋局过程中,首先将20个字节棋局文件标识内容写入到棋局存储文件中,然后将每一手的棋局状态和手数写入,最后写入文件结束标志.在进行棋盘复盘时,打开棋局存储文件,取出前20个字节的内容,将其与棋局文件标识内容进行对比,若内容不相同,则认为不是棋局存储文件;若内容相同,则依次取出棋局状态数据和手数数据,在屏幕上进行显示,直到文件结束为止.
4 结束语
本文介绍了一种新型的智能化围棋比赛系统,采用光电法进行多状态阵列信息的检测与识别,经市级比赛实际测试表明,本系统能够实时准确地识别并显示棋局的变化过程,正确无误地进行时间显示和棋局记录,并能够根据不同的棋局记录文件进行棋局的复盘,以便于赛后分析.本系统使用方便,界面友好,克服了人工记录容易出错的弊端.若能投入使用可以节约大量的人力、物力.
由于现实中的许多问题均可以归结为多状态信息检测的问题,所以本系统中所使用的三状态检测识别方法,亦可以用来解决其它多状态信息检测问题.
[1]姜经纬.基于半导体光电器件的光电性能检测仪研究[J].漯河职业技术学院学报,2014,13(5):24-25.
[2]管敏杰,赵冬娥.基于PIN型光电转换电路的噪声研究[J].电子测试,2012(2):35-38.
[3]万隆.单片机原理及应用技术[M].北京:清华大学出版社,2010.
[4]谭浩强.C/C++程序设计教程[M].北京:清华大学出版社,2010.
The Development of the Intelligentized System of I-go Match
GUO Yong-xin,JIAO Qing,CUIDong,CAOWei-fang
(
Department of Radiology,Taishan Medical College,Tai'an,271000,China)
A new intelligentized system of I-gomatch was introduced in this article.In this system,the information of themultimode array can be examined and identified bymeans of the photoelectricmethod.The real-time process of the I-gomatch can be displayed automatically;the automatic timework and the recording of the evolvementof thematch can be accomplished exactly.With a friendly interface,the system is expediently to use.It overcome the disadvantage of the recordingmade bymanual and is practical powerfully.
multimode array;I-go;intelligence
TD928.9
A
1672-2590(2015)03-0035-05
2015-04-17
郭永新(1968-),男,山东单县人,泰山医学院放射学院教授.