基于Qt的中国象棋人机博弈的研究与设计∗论文

基于Qt的中国象棋人机博弈的研究与设计

张娜 谭亮

(商洛学院电子信息与电气工程学院 商洛 726000)

摘 要 Qt是一种跨平台的C++应用程序框架,具有很好的移植性。论文以Qt为平台采用QPainter类中的画笔来进行绘制棋盘,用一个有32个数据元素的数组来存储棋子的ID,利用穷举法生成马、将、士、相、车、炮、兵等的走法,实现了人人对战,再加上TCP通信、极大值极小值搜索算法和优化-剪枝算法来实现人机对战。该系统具有稳定性高及灵活性高等优点。

关键词 Qt;中国象棋;人机博弈;搜索算法

1 引言

当计算机诞生,人们就已经想到用计算机来下棋,这就是机器博弈。机器博弈是人工智能的一个传统研究领域[1~2]。在国际象棋计算机博弈高度发展的今天,基于两个原因,中国象棋则具有得天独厚的发展优势[3~4]:它是世界上最流行最古老的棋类游戏之一,且现在已经存在较高棋力的中国象棋程序;它的复杂度介于国际象棋与围棋之间。

新年贺词 .........................................................................................................................................................12-1

国际象棋机器博弈的研究已经有很长一段时间,其中不得不提的就是卡斯帕洛夫与IBM公司研制的“深蓝”(DEEP)计算机及其升级版“更深的蓝”(DEEPERBLUE)进行的震惊世界的象棋比赛,这场前无古人的人机大战给世界留下了深远的影响,更多的人开始认识人工智能,认识机器博弈[5]

中国象棋是由两个人依次走子,把对方的将吃掉为胜的一种棋类运动,在中国乃至世界有着数以亿计的爱好者[6]。它不仅能够丰富人们的生活,陶冶情操,更有助于开发青少年的智力,启迪思维,锻炼辨证分析能力和培养顽强的意志。用于中国象棋博弃的计算机成果可以运用到各个领域,甚至深入到我们目前无法企及的领域,从而更好地服务人类[7~8]

本文以Qt为平台,采用QPainter类中的画笔来进行绘制棋盘,用一个有32个数据元素的数组来存储棋子的ID,利用穷举法生成棋子的走法,实现了人人对战,再加上TCP通信、极大值极小值搜索算法和优化-剪枝算法来实现人机对战。

2 基于Qt的中国象棋设计

Qt是一个跨平台的C++应用程序框架,支持Windows、Linux、Android、iOS、嵌入式系统[9~10]。Qt可以同时支持桌面应用程序开发、嵌入式开发和移动开发,覆盖了现在的所有移动平台,只需要编写一次代码,发布到不同的平台上重新编译即可。

人人对战即传统下棋方式,采用肉眼观察双方的形势,然后考虑接下来的一步或者多步走法,最后选择最好的一种走法,这一过程如图1所示。

图1 人人对战示意图

2.1 局面表示

2.4.1 马的走法生成

2.2 棋盘表示

中国象棋是一个9行8列的类似表的网络,从而我们可以使用Qt中QPainter类中的画笔来进行绘制棋盘。如图2所示。

图2 棋盘示意图

2.3 棋子表示

在棋子表示方面,红黑双方各有16颗棋子,用一个有32个数据元素的数组来存储棋子的ID,并且将32颗棋子初始化。初始化完成后开始绘制棋子,棋子由两部分组成,一个是圆圈,一个是棋子对应的字,如图3所示。

图3 绘制棋子

2.4 走法生成

各种棋类规则的不同,走法产生的复杂程度也有很大的差别。例如五子棋的棋盘上的任意空白点都是合法的下一步,而在象棋里,要仔细判断,比如说象只可以走田字,这时候就要检查目标位置有没有自己的棋子,并且要检查相眼是否有棋子;而兵则要注意过河之后是不能往后退的。

计算机在获取到最佳走法之前必须要先获得所有可能的走法。目前的走法生成除了穷举法外没有更好的办法,同时,走法生成是一个先穷举后排除的一个过程,具体方式如下:

1)扫描棋盘非空位置上的所有棋子;

2)在充分考虑中国象棋规则的基础上,对于棋子下一步可能的位置进行判断;

int r=relation(row1,col1,row,col);//马行走的轨迹和行列间关系

局面是指一盘棋经过若干个回合之后当前所处的形势[11]。在中国象棋中局面既包含棋盘、棋子和当前是哪一方走棋,还包含对弈双方所走的步数、是否将军、未吃子步数、走棋时间等。要让计算机能够理解当前的局面,就必须把局面所包含的信息通过某种数据结构存储起来,这些信息在棋局进行的过程中会一直更新变化。局面表示除了要求存储和修改方便以外,更重要的是要计算方便,这个直接影响到搜索算法的效率。

通过点击鼠标事件来获取鼠标点击棋子在棋盘上的行列值,当需要移动棋子时,会检查棋子的初始位置和目标位置的情况从而来判断该棋子的走法是否合法。

如图4(a)所示,图中N点表示马的起步位置,这时根据棋子的ID知道棋子的行row和列col。马的走法可以是1~8对应的位置,这些位置也对应着行row1和列col1。图中黑色三角形都是马腿的位置,马的走法程序如下所示。

2.4.5 车的走法生成

绕坝渗流监测内容包括两岸坝肩及部分山体、土石坝与岸坡或混凝土建筑物接触面,以及防渗墙或灌浆帷幕与坝体或两 岸接合部等关键部位渗流情况。该项目绕坝渗流按照规范要求布置,在实际运行中因岩体裂隙发育复杂带来的裂隙水发育问题无法通过此方案监测。工程所在地出露的地层主要有中泥盆系、石炭系、第四系和华力西中期岩浆岩。该类岩石常见的成岩裂隙水问题较大,裂隙呈层状分布有固定的层位,结合工程左岸布置引水发电输水钢管、泄洪隧洞工程,在坝后布设三排11个绕坝渗流监测点,详见表1。

{GetRowCol(row1,col1,moveid);

3)为了简化棋子的走法规则,除了车和炮以外的棋子目标位置的行列和原来棋子的位置之间都有 一 种 关 系 。 r=qAbs(row1-row)*10+qAbs(col1-col);qAbs为取绝对值,row1、col1为目标位置的行列,row、col为原来棋子的行列,当r等于一定的数值后,这颗棋子才能正确落子。

if(r!=12 & & r!=21)

When ABC crank rotate at speed ω1=1 rad/s, the motion equation of point C on the upper horizon line track is in the following

return false;if(r==12)

{if(getStoneId(row1,(col+col1)/2)!=-1)//找“马腿”

return false;}

因此,我们以水稻为材料,研究硝基苯酚胁迫对水稻幼苗生长、抗氧化特性和叶片PSⅡ光合特性的影响,以及添加外源褪黑素对缓解水稻幼苗受硝基苯酚胁迫的影响,以期丰富硝基苯酚类化合物对水稻幼苗作用机理研究、拓展褪黑素在缓解硝基苯酚类有机物对水稻苗期的毒害作用方面的应用,为水稻苗期预防有机物污染研究提供一定的参考。

else

{if(getStoneId((row+row1)/2,col1)!=-1)

return false;}

return true;

另外,分别对动载荷与巷道顶板的距离、方位等进行了模拟,过程与载荷强度相同,不再赘述。结论为动载荷作用点距离巷道顶板越近,巷道浅层围岩的变形破坏越严重,距离在3 m以内时,变形较大,有失稳的可能;不同动载位置均对顶板有一定影响,动载在顶板时顶板下沉最严重,在两帮时对顶板有一定影响,但影响不大。

调用relation函数时,如果返回值是12并且坐标(row1,(col+col1)/2)有棋子,此刻棋子不能移到第row1行第col1的位置。如果返回值是21并且坐标((row+row1)/2,col1)有棋子,此刻棋子不能移到row1行第col1的位置。

2.4.2 将的走法生成

如图4(b)所示,图中说明了将走法生成的示意图,将只能在九宫里面活动,最多有4种走法。通过控制行列的范围和步长关系就可以约束将的走法,r等于1或者10的时候棋子是可以移动的。

2)点击棋子的信息双发都可以发出,buf的一个字节固定为2,第二个字节为棋子的id,第三个字节为棋子的row,第四个字节为棋子的col;

如图4(c)所示,士的走法与将的走法差不多,唯一的区别就是r的值,当r等于11的时候棋子才能移动。

由于老年患者各项器官机能均存在不同程度的衰老,再加上伴有一种或多种基础疾病,且骨科手术创伤较大,同时术后精神障碍与手术麻醉方案存在密切的关系,若患者未接受有效安全的麻醉处理,则会导致老年患者术后出现短期认知功能障碍。因此,有效的麻醉方案对手术治疗的老年骨科患者是非常重要的[1-5]。本次研究对象选择我院在2016年8月~2017年9月接诊治疗的60例行手术治疗的老年骨科患者,分析全身麻醉和硬膜外麻醉对老年骨科患者术后短期认知功能的影响效果,通过本组研究结果显示,实验组患者术后短期功能障碍发生率明显低于参照组患者,组间差异明显,P<0.05,存在统计学意义。

取对数生长期K562和KG1a细胞,以1×108/L的密度接种。加入60 μmol/L Rh2-S诱导细胞24 h,收集各组细胞,预冷PBS洗涤2次,75%乙醇固定过夜,用PI试剂染色,预冷PBS洗涤2次,流式细胞仪分析细胞周期。实验重复3次。

试验第9 d和10 d,第79 d和80 d,于晨饲前对试验牛进行称重,并计算每头牛平均体重[16]。

图4 走法生成

2.4.4 相的走法生成

如图4(d)所示,该图是相的走法生成示意图,相的走法跟马的规则类似,要考虑相眼的问题。在步长关系r等于22的基础上,还要满足((row+row1)/2,(col+col1)/2)这个点上没有棋子,只有满足这两个条件,棋子就可以移动到目标位置。

bool Board::canMoveMa(int moveid,int,int row,int col)

如图4(e)所示,该图是车的走法示意图,车可以沿着四个方向一直走,直到下列任意事件发生为止:1)走出棋盘;2)碰到本方棋子;3)吃掉对方棋子。

2.4.6 炮的走法生成

如图4(f)所示,该图是炮走法生成示意图,炮的走法与车的走法类似,但是炮要考虑四种情况分别对应图中1到4:1)没有棋子可以一直走到边界;2)炮翻山后遇到本方棋子,非法走法;3)炮翻山后遇到对方棋子,吃棋;4)翻山后出棋盘,非法走法。

2.4.7 兵的走法生成

如图4(g)所示,该图是兵的走法生成示意图,兵分过河前的走法和过河后的走法。过河前兵只能向前走,过河之后兵除了向前走以外还能向左右移动,通过移动后的行列数来判断兵是否过河。

2.5 将军检测

在上述走法的基础上,只要检查一方所有的棋子可以到达的位置是否有对方的将,唯一需要注意的是双方的将之间的直线上面没有棋子的话是可以相互攻击的。

3 基于Qt的中国象棋程序实现

3.1 人人对战的实现

click(ev->pos());

void Board::mouseReleaseEvent(QMouseEvent*ev)

碳纳米管提升复合材料力学性能的两个主要性质包括高模量和高强度.碳纳米管对于复合材料的力学增强主要是改变其本身的长径比以及管径尺寸,碳纳米管与基体材料的界面结合情况也是影响复合材料力学强度的因素之一.故复合材料中碳纳米管往往是决定其力学性能的关键.现有研究表明碳纳米管能够明显改善复合材料的拉伸强度,同时温度也是影响复合材料力学性能的重要因素,但并没有对复合材料的其它性能造成明显的影响.含碳纳米管复合材料具有高模量、高强度、低密度和尺寸稳定等优良力学性能,可以广泛应用于航天航空、能源交通和体育器材等领域.

{if(ev->button()!=Qt::LeftButton)

{return;

人人对战是两个人面对面下棋。利用Qt中的鼠标点击事件来处理棋子的移动,再加上各个棋子的走法规则,就能轻易的实现人人对战。鼠标点击事件部分程序如下,人人对战的截图如图5(a)所示。

mouseReleaseEvent(QMouseEvent*ev)这个函数能够获取棋子的坐标,通过配合各个棋子的走法和规则进行落子,从而实现人人对战的功能。

3.2 人机对战的实现

在人人对战的基础上,加上TCP通信,用于实现数据的同步,人机对战截图如图5(b)所示。QTcpServer用于创建TCP服务器端。当newCon⁃nection信号激发时,我们调用指定的槽函数创建一个通信的套接字。QTcpSocket用于创建TCP通信套接字。当connected信号激发时,我们向服务器端发送消息,当readyRead信号激发时,我们就可以读取数据。客户端与服务端通信时用数组buf来发送数据,如下所示。

图5 基于Qt的中国象棋实现截图

1)执红棋还是执黑棋由服务器发出,buf的第一个字节固定为1,第二个字节为0或者1(随机),1代表执红棋,0代表执黑棋;

2.4 针对疾病发生后的控防对策针对在畜牧养殖中已经患有疾病的动物,必须采取及时的治疗,养殖户要立足于养殖场的长远利益,加强防疫力度,做好畜牧养殖场内的消毒、处理工作,对患有疾病的动物及时予以隔离,避免发生更大的感染;同时,对其他动物给予抗感染药物注射,提高动物的抵抗力,在这个处理过程中必须严加监管与记录,为今后的治理工作开展提供一定的参考借鉴,通过诸多有效措施,尽快消除动物疾病,降低损失。

本文采用马歇尔法对工程中用到的矿料级配进行设计,最终得到的试验段上面层AC—16型矿料级配见表3所示。

2.4.3 士的走法生成

3)悔棋的信息双方都可以发出,buf的第一个字节固定为3,当双方接受到此消息时代表悔棋操作。

3.3 局面评估

局面评估就是识别棋局的好坏,以便在博弈树搜索时作为路径选择条件寻找最佳着法[12]。可行的办法就是对局面进行量化,通过数值评判棋局对我方的优劣,并得到合适的走法。评估函数的准确性将直接影响搜索的方向,同时评估函数的效率对搜索性能也有直接的影响[13]。一种最简单的局面评估是计算本方棋子价值之和与对方棋子价值之和的差值,我们把这个差值叫做局面分,这里就涉及到棋子价值的问题。一般来说,象棋中棋子的价值关系大致如下:将>车〉马、炮>士、相>兵。各棋子价值如表1所示。

表1 棋子价值表

3.3.1 极大值极小值算法

在通常的局面中,我们往往想通过少量的搜索,为当前局面选择一步较好的走法,然而在通常的棋局中,一个局面的评估往往不像输、平、赢3种状态这么简单,在分不出输赢的局面中棋局也有优劣之分。也就是说,要用更细致的方法来刻画局面的优劣,而不是仅仅使用1,-1,0三个数字刻画3种终了局面。假定我们有一个函数可以为每一个局面的优劣评分。例如甲胜为正无穷,乙胜为负无穷,和局为0;其他的情形依据双方剩余棋子的数量及位置评定从负无穷到正无穷之间的具体分数。这样我们可以建立一棵固定深度的搜索树,其叶子节点不必是终了状态,只是固定深度的最深一层的节点,其值由上述函数评出;对于中间节点,如同前面提到的那样,甲方取子节点的最大值,乙方取子节点的最小值。

一方走棋的过程中,选择价位最大的子节点法,即实行“Max搜索”,一方走棋则选择价位小的子节点法,即实行“Min搜索”,这就足象棋博弈中的一个极大极小过程[14]。如图6所示,该图表示了一个极大极小搜索过程,粗箭头为最佳路径片段。

图6 极大极小搜索

图7中方形节点为红方走棋的局面,圆形节点为黑方走棋局面,数字为局面估值。深度优先遍历这个搜索树:

1)初始局面为A,该红方走棋。红方有B1、B2、B3三种走法。

2)假设红方选择第一种走法,走到了局面B1。

3)在局面B1,该黑方走棋。黑方有C1、C2、C3三种走法。

4)C1、C2、C3是叶子节点,调用局面评估函数,算得局面估值分别是3、7、12。

5)回到局面B1,此时该黑方走棋。黑方后完后,红方优势越小,对黑方越有利。黑方自然会走到对自己最有利的C1局面。此时我们认为,B1局面的估值是3。

6)同样的方法,B2、B3的估值分别是9、6。

“小”字,反映出作者感觉受到与“车夫”高大形象相比,自己是何等自私、渺小、卑微。莱尔译为“the pettiness”,说明原文作者自私自利、心胸狭窄;杨戴译为“the small self”,再现作者形象渺小,“小”得无地自容,衬托出 “车夫”高大形象。莱尔侧重本质,杨戴注重形象。两种译本,再次体现出译者不同的翻译目的,不同的翻译目的是建立在对原文不同理解基础之上。试看下例:

7)回到初始局面A,红方走棋。现在已经知道,选择第一种走法,最终估值为3;选择第二种走法,最终估值为9;选择第三种走法,最终估值为6。估值就是红方的优势,红方自然会选择对自己优势最大的走法,也就是走到局面B2。

8)可知行棋路线为A-> B2-> C4。

3.3.2 优化-剪枝算法

由于完整的博弈树十分庞大,程序能也没存必要搜索整棵博弈树的所有节点,而需耍有选择性地进行搜索,对于一些已经确定不佳的走步可以将以它根节点的子树剪掉,从而将这些节省下来的时间用于更有意义的搜索[14]。博弈搜索的目的是为了获得一个可能的最佳局面,如果沿着一个结点搜索下去,绝对不可能有比当前己经搜索到的局面更优化,这就是一个无用的结点,该剪掉。如图7所示,该图是搜索剪枝的示意图。

结果显示,干预1学年后,学龄儿童超重/肥胖检出率发生了改变。从干预前27.4%下降至17.6%,其中,超重检出率从干预前18.0%下降至12.4%,肥胖检出率从干预前9.4%下降至5.2%,差异具有显著性(P<0.05)。详见表1。

图7 搜索剪枝示意图

当搜索到B2点吋,红方已经通过B1的搜索得到一个当前最优值8,红方希望通过B2这条路径得到更优的值。当搜索到C4时得到一个估值7,也就是B2点的当前最优值。由于B2是极小值点,在搜索B2的剩余子结点吋,凡足估值超过7的B2点都不予考虑,一旦有值小于7,就会取代7成为新的最优值。即是不管后续子节点得到怎样的估值,其结果B2的最优值小于等于7。A是极大点,A点已经有一个当前最优值8,那么A点的最优值肯定大于等于8,既然B2的最优值不会超过7,对于A点来说B2就没有意义,继续搜索B2的子节点也就毫无意义[15]。C5、C6不必搜索,而直接返回A点,继续A点,在搜索C8剩余的子节点时,凡是估值低于14的C8都不会考虑,一旦有值大于14,就会取代14成为新的最优值。也就是不管在后续子节点得到怎样的估值,其结果就是C8的最优值大于等于7。B3是极小值点,且已经有一个当前最优值10,那么B3点的最优值肯定小于等于10,既然C8的值不会低于14,对于B3点来讲,C8就没有意义,继续搜索C8的后续节点也就毫无意义。D2、D3不必搜索,直接返回B3点,继续B3点后续节点的搜索。同理D6也不必搜索。

4 结语

本文基于Qt的中国象棋棋理算法的研究与设计,采用Qt中的QPainter类中的画笔来进行绘制棋盘,用一个有32个数据元素的数组来存储棋子的ID,利用穷举法生成马、将、士、相、车、炮、兵等的走法,实现了人人对战,再加上TCP通信在其基础上实现了网络对战和人机对战。采用极大值极小值算法与优化-剪枝算法对棋局的局面进行评估。实验结果表明,该系统具有实时性、稳定性高、灵活性高等特点,达到了方案预期效果。

参考文献

[1]王天睿.智能棋盘的研究与设计[J].电子产品世界,2019,26(02):52-54.WANG Tianrui.Research and Design of Intelligent Chess⁃board[J].The Word of electronics,2019,26(02):52-54.

[2]雷舒昊,何欢.Android环境下的中国象棋设计与实现[J].科技视界,2018(30):266-268.LEI Shuhao,HE Huan.Chinese Chess Design and Imple⁃mentation in Android Environment[J].Technology hori⁃zon,2018(30):266-268.

[3]郭晓霞,韩燮,赵融.基于知识库的象棋机器博弈搜索算法研究[J].中国科技论文,2018,13(20):2394-2400.GUO Xiaoxia,HAN Xie,ZHAO Rong.Research on Chess Game Search Algorithm Based on Knowledge Base[J].China Science and Technology Paper,2018, 13(20):2394-2400.

[4]肖秀春,刘泽伟,陈柏桃.中国象棋博弈系统实现的关键技术探索[J].电子技术与软件工程,2018(15):89-91.XIAO Xiuchui,LIU Zewei,CHEN Baitao.The Key Tech⁃nology Exploration of Chinese Chess Game System[J].Electronic Technology and Software,2018(15):89-91.

[5]王丹.基于cocos2d_x引擎的中国象棋手机游戏的设计与实现[D].长春:吉林大学,2018.WANG Dan.Design and Implementation of Chinese Chess Mobile Game Based on cocos2d_x Engine[D].Changc⁃hun:Jilin University,2018.

[6]沈旭,梁文.基于Android的中国象棋手机APP设计与实现[J].软件导刊,2018,17(04):104-106.SHEN Xu,LIANG Wen.Design and Implementation of Chinese Chess Mobile Phone APP Based on Android[J].Software Guide,2018,17(04):104-106.

[7]郭晓峰,王耀南,周显恩,等.中国象棋机器人棋子定位与 识 别 方 法[J].智 能 系 统 学 报 ,2018,13(04):517-523.GUOXiaofeng,WANGYaonan,ZHOU Xianen,et al.Chi⁃nese Chess Robot Chess Piece Location and Identification Method[J].Journal of Intelligent Systems,2018,13(04):517-523.

[8]刘淑琴,刘淑英.基于博弈树搜索算法的中国象棋游戏的设计与实现[J].自动化与仪器仪表,2017(10):96-98.LIU Shuqin,LIU Shuying.Design and Implementation of Chinese Chess Game Based on Game Tree Search Algo⁃rithm[J].Automation and Instrumentation,2017(10):96-98.

[9]郝卿,黎利辉.基于Android的中国象棋局域网博弈平台的设计与实现[J].广西民族师范学院学报,2017,34(03):145-148.HAO Qing,LI Lihui.The Design and Implementation of the Chinese Chess LAN Game Platform Based on Android[J].Guangxi National Normal University Journal,2017,34(03):145-148.

[10]付强.基于激励学习的中国象棋研究[D].长沙:长沙理工大学,2006:6-7.FU Qiang.Chinese Chess.Research Based on Incentive Learning[D].Changsha:Changsha University of Science & Technology,2006:6-7.

[11]涂志坚.电脑象棋的设计与实现[D].广州:中山大学,2004:12-13.TU Zhijian.Design and Implementation of Computer Chess[D].Guangzhou:Sun Yat-sen University,2004:12-13.

[12]肖齐英,王正志.博弈树搜索与静态估值函数[J].计算机应用研究所,2008,36(2):74-76.XIAO Qiying,WANG Zhengzhi.Game Tree Search and Static valuation function[J].Institute of Computer Appli⁃cations,2008,36(2):74-76.

[13]王玲.分布估计算法在排考中的应用[D].长沙:湖南师范大学,2008.WANG Ling.The Application of Distributed Estimation Algorithm in Exam[D].Changsha:Hunan Normal Uni⁃versity,2008.

[14]谢艳茹.中国象棋计算机博弈数据结构与评估函数的研究和实现[D].西安:西安理工大学,2008.XIE Yanru.Research and realization of the data struc⁃ture and evaluation function of Chinese chess computer game[D].Xi'an:West Council University of Technology,2008.

[15]赵娟.中国象棋游戏的设计与实现[J].中国市场,2015(37):131-133.ZHAO Juan.Design and Implementation of Chinese Chess Games[J].Chinese market,2015(37):131-133.

Research and Design of Chinese Chess Man-Machine Game Based on Qt

ZHANG Na TAN Liang
(School of Electronic Information and Electrical Engineering,Shangluo University,Shangluo 726000)

Abstract Qt is a cross-platform C++application framework with good portability.In this paper,Qt is used as the platform to draw the chessboard with brushes in QPainter class.An array of 32 data elements is used to store the ID of the chessboard.The ex⁃haustive method is used to generate the movements of horses,generals,soldiers,phases,vehicles,artillery and soldiers,which re⁃alizes the human-to-human combat.In addition,TCP communication,maximum and minimum search algorithm and optimiza⁃tion-pruning algorithm are used to realize the man-to-machine combat.The system has the advantages of high stability and flexibili⁃ty.

Key Words Qt,Chinese chess,human-machine game,search algorithm

中图分类号 TP311.1 DOI:10.3969/j.issn.1672-9722.2019.12.048

∗ 收稿日期: 2019年6月12日,修回日期:2019年7月23日

基金项目: 2017年国家自然科学基金项目(编号:21703135);2018年商洛市科技局项目(编号:SK2018-21);2018年商洛学院科研项目(编号:18SKY017);2018年商洛学院根植地方行动项目(编号:gz201830)资助。

作者简介: 张娜,女,硕士研究生,讲师,研究方向:信号处理。谭亮,男,研究方向:信号处理。

Class Number TP311.1

标签:;  ;  ;  ;  ;  

基于Qt的中国象棋人机博弈的研究与设计∗论文
下载Doc文档

猜你喜欢