ChessBY icon indicating copy to clipboard operation
ChessBY copied to clipboard

Qt实现中国象棋

Qt实现中国象棋

这是用人工智能算法实现人机对战的莪一个小例子,其中用到了最大最小值算法,和优化-剪枝算法。算法的实现在singlegame类中 从 函数computer开始。

Qt中国象棋 目前实现了人机对战,后续会添加网络对战,和人人对战,并会移植到Android平台上。程序包含以下几个部分:

  1. Board类,这个类主要用来实现棋盘和棋子的绘制以及走棋的规则。
  2. Stone类,这个类是棋子类,定义了棋子的属性。
  3. Step类,这个类是步数类,用来保存记录棋子的移动,以便悔棋用。
  4. SingleGame类,这个类是人机对战类,继承自Board类,实现了简单的神经网络算法。
  5. Ctrlpanel类,这个类是控制面板类,监听back(返回)操作。
  6. MainWnd类,主窗口类,这个类实现总的窗口。
  7. ChooseDlg类,这个类是选择对话框类,实现用户的选择对战的类型。

优化枚举走棋步骤算法。

time: 2016/04/09

scription:

  1. 原来的算法把整个棋盘遍历,效率太低。
  2. 根据棋子走棋规则的特点,优化遍历的边界,减少遍历的次数

添加网络对战

time: 2016/04/13

scription:

添加网络对战类,实现了,网络对战

程序运行图:

选择对战类型

界面

人机对战