博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
国际象棋AI设计(一)
阅读量:4231 次
发布时间:2019-05-26

本文共 663 字,大约阅读时间需要 2 分钟。

环境配置

  • 语言: python3.5
  • 库:

源代码下载

测试使用说明

方式一、使用命令行执行 py start.py运行
  1. 在命令行界面,打印字符棋盘
  2. 对弈开始时, AI 接受一个输入(w/b),指示AI执白手或黑手
  3. 着子的输入输出依照修正后的标准代数记谱法SAN,如Nh3,表示马(Knight)跳到 h3 位置
  4. 其中一方被将死,结束对弈,退出程序。
方式二(推荐)、使用测试平台 theChessBoard.exe
  1. theChessBoard相关的文件与代码文件放在同一文件夹下
  2. 点击“LEIPFONT.TTF”安装棋子数据文件
  3. 执行theChessBoard.exe
  4. 注意事项:在载入白方/载入黑方时,我方已Python脚本方式执行,因此第一行填入python,第二行为start.py文件所在地址;如果是exe可执行文件,直接在第一行填入exe文件的地址。
  5. 导入双方的脚本或可执行文件后,设置自动对弈。右侧窗口显示对弈进程,左侧下方记录历史棋步。基本界面如下:
    这里写图片描述

整体设计结构

设计流程

根据国际象棋的规则,确定 AI 的基本工作流程图如下:

这里写图片描述

借助 库函数board.legal_moves获得我方所有合法着子的列表,在这个基础上开展搜索,辅以评估,最终得到对我方而言最优的着子。

其中搜索函数和评估函数分别从两个方面提升 AI 的“思考”能力:

  • 评估函数:通过评价局面的优劣直接影响 AI 的选择
  • 搜索方法:通过加快搜索速度,减少在加深搜索深度情况下的用时,
    为加深搜索深度以提高 AI“思考”的长远性和全面性提供可能
你可能感兴趣的文章
Kafka,它为什么速度会这么快?
查看>>
zookeeper安装启动的一些问题
查看>>
rabbitmq命令执行报错command not found
查看>>
rabbitmq基础知识介绍及总结
查看>>
StackOverFlow异常记录
查看>>
SpringMvc4.1:注解JsonView与泛型返回类
查看>>
SpringMVC+Mybatis+事务回滚+异常封装返回
查看>>
计算机网络实验报告(三):Cisco Packet Tracer 实验
查看>>
嵌入式系统基础学习笔记(九):基于 SPI 协议在 0.96 寸 OLED上【平滑显示汉字】及【温湿度数据采集显示】
查看>>
嵌入式系统基础学习笔记(十):
查看>>
网络通信编程学习笔记(七):Java与MQTT
查看>>
人工智能与机器学习学习笔记(二)
查看>>
Java I/O
查看>>
SQL Server 2005 T-SQL Recipes: A Problem-Solution Approach
查看>>
Core Python Programming
查看>>
Creating Database Web Applications with PHP and ASP
查看>>
ASP.NET 2.0 Demystified
查看>>
Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects
查看>>
Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
查看>>
Database Programming with Visual Basic® .NET and ADO.NET: Tips, Tutorials, and Code
查看>>