摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第一章 引言 | 第10-18页 |
1.1 选题的目的和意义 | 第10-11页 |
1.2 国内外相关课题研究发展情况 | 第11-17页 |
1.2.1 人工智能的基本概念 | 第11页 |
1.2.2 人工智能的历史和发展情况 | 第11-13页 |
1.2.3 人工智能的现状 | 第13-15页 |
1.2.3.1 人工智能现在的水平 | 第13页 |
1.2.3.2 人工智能现存的学派 | 第13-14页 |
1.2.3.3 强人工智能和弱人工智能 | 第14页 |
1.2.3.4 人工智能的快速发展给人类带来的思考 | 第14-15页 |
1.2.4 专家系统的基本概念 | 第15-16页 |
1.2.5 专家系统的现状 | 第16-17页 |
1.2.6 五子棋的发展情况 | 第17页 |
1.3 论文结构 | 第17-18页 |
第二章 相关知识介绍 | 第18-31页 |
2.1 主编程语言介绍 | 第18-22页 |
2.1.1 函数型语言的特点 | 第18-19页 |
2.1.2 Haskell语言中的的Lambda演算(Lambda λ-calculus) | 第19-21页 |
2.1.3 Haskell语言的其他重要特性 | 第21-22页 |
2.2 五子棋的相关介绍 | 第22-28页 |
2.2.1 五子棋棋盘 | 第22-23页 |
2.2.2 五子棋主规则 | 第23页 |
2.2.3 五子棋常见棋型 | 第23-25页 |
2.2.4 禁手 | 第25-26页 |
2.2.4.1 禁手特例 | 第26页 |
2.2.5 指定开局 | 第26-28页 |
2.2.6 其他规则 | 第28页 |
2.3 蒙特卡洛方法 | 第28-29页 |
2.4 数据库Sqlite介绍 | 第29-30页 |
2.5 本章小结 | 第30-31页 |
第三章 系统需求分析 | 第31-36页 |
3.1 系统功能需求分析 | 第31页 |
3.2 用户需求 | 第31页 |
3.3 开发环境 | 第31-32页 |
3.4 主程序与用户交互相关的流程 | 第32-35页 |
3.5 本章小结 | 第35-36页 |
第四章 系统设计与实现 | 第36-57页 |
4.1 数据库设计 | 第36-43页 |
4.1.1 settings表 | 第36页 |
4.1.2 games与steps表 | 第36-39页 |
4.1.3 fsom和fsomsteps_start表 | 第39-42页 |
4.1.4 数据库相关的关键程序代码 | 第42-43页 |
4.2 程序基础功能设计 | 第43-52页 |
4.2.1 棋盘基本结构的表示 | 第43-44页 |
4.2.1.1 单个棋子的表示 | 第43-44页 |
4.2.1.2 棋盘的表示 | 第44页 |
4.2.2 棋盘基本功能的实现 | 第44-46页 |
4.2.2.1 产生初始化棋盘 | 第44页 |
4.2.2.2 棋盘的控制台显示 | 第44-45页 |
4.2.2.3 棋盘中单个格子的操作 | 第45-46页 |
4.2.3 棋型的判断 | 第46-52页 |
4.2.3.1 棋型判断的具体代码 | 第48-52页 |
4.3 主算法设计 | 第52-55页 |
4.3.1 程序主算法流程 | 第52-53页 |
4.3.2 蒙特卡洛算法流程 | 第53-55页 |
4.4 五子棋程序控制台界面实际运行情况 | 第55-56页 |
4.5 本章小结 | 第56-57页 |
第五章 程序测试 | 第57-63页 |
5.1 程序特点 | 第57页 |
5.2 测试环境 | 第57页 |
5.3 测试流程 | 第57-62页 |
5.3.1 Haskell函数测试 | 第57-61页 |
5.3.1.1 棋盘基础函数测试 | 第57-58页 |
5.3.1.2 菜单相关函数测试 | 第58页 |
5.3.1.3 棋型相关函数测试 | 第58-60页 |
5.3.1.4 数据库相关函数测试 | 第60页 |
5.3.1.5 算法相关函数测试 | 第60-61页 |
5.3.2 程序的功能测试 | 第61-62页 |
5.3.2.1 程序功能测试总结 | 第62页 |
5.4 本章小结 | 第62-63页 |
第六章 结论 | 第63-65页 |
6.1 主要完成的工作 | 第63页 |
6.2 未来展望 | 第63-65页 |
致谢 | 第65-66页 |
参考文献 | 第66-68页 |