环境配置
- 语言: python3.5
- 库:python-chess
测试使用说明
使用命令行执行 py start.py
运行
- 在命令行界面,打印字符棋盘
- 对弈开始时, AI 接受一个输入(w/b),指示AI执白手或黑手
- 着子的输入输出依照修正后的标准代数记谱法SAN,如Nh3,表示马(Knight)跳到 h3 位置
- 其中一方被将死,结束对弈,退出程序。
使用测试平台 theChessBoard.exe
- 将theChessBoard相关的文件与代码文件放在同一文件夹下
- 点击“LEIPFONT.TTF”安装棋子数据文件
- 执行theChessBoard.exe
- 注意事项:在载入白方/载入黑方时,我方已Python脚本方式执行,因此第一行填入python,第二行为start.py文件所在地址;如果是exe可执行文件,直接在第一行填入exe文件的地址。
- 导入双方的脚本或可执行文件后,设置自动对弈。右侧窗口显示对弈进程,左侧下方记录历史棋步。基本界面如下:
整体设计结构
设计流程
根据国际象棋的规则,确定 AI 的基本工作流程图如下:
借助 python-chess 库函数board.legal_moves
获得我方所有合法着子的列表,在这个基础上开展搜索,辅以评估,最终得到对我方而言最优的着子。
其中搜索函数和评估函数分别从两个方面提升 AI 的“思考”能力:
- 评估函数:通过评价局面的优劣直接影响 AI 的选择
- 搜索方法:通过加快搜索速度,减少在加深搜索深度情况下的用时,
为加深搜索深度以提高 AI“思考”的长远性和全面性提供可能