ChessBY
ChessBY copied to clipboard
Qt实现中国象棋
Qt实现中国象棋
这是用人工智能算法实现人机对战的莪一个小例子,其中用到了最大最小值算法,和优化-剪枝算法。算法的实现在singlegame
类中 从 函数computer
开始。
Qt中国象棋 目前实现了人机对战,后续会添加网络对战,和人人对战,并会移植到Android
平台上。程序包含以下几个部分:
-
Board
类,这个类主要用来实现棋盘和棋子的绘制以及走棋的规则。 -
Stone
类,这个类是棋子类,定义了棋子的属性。 -
Step
类,这个类是步数类,用来保存记录棋子的移动,以便悔棋用。 -
SingleGame
类,这个类是人机对战类,继承自Board
类,实现了简单的神经网络算法。 -
Ctrlpanel
类,这个类是控制面板类,监听back
(返回)操作。 -
MainWnd
类,主窗口类,这个类实现总的窗口。 -
ChooseDlg
类,这个类是选择对话框类,实现用户的选择对战的类型。
优化枚举走棋步骤算法。
time: 2016/04/09
scription:
- 原来的算法把整个棋盘遍历,效率太低。
- 根据棋子走棋规则的特点,优化遍历的边界,减少遍历的次数
添加网络对战
time: 2016/04/13
scription:
添加网络对战类,实现了,网络对战
程序运行图: