摘要:围棋,一种双人对抗的棋类游戏,十分的具有谋略性意义。近年来谈起人工智能,我们首先想到的应该就是围棋了,因为在2016的时候,在当时的人工智能圈和围棋圈发生了一件大事,谷歌的AlphaGo战胜了当时人类的最强棋手李世石,人工智能一时名声大噪,而普通百姓之间也一时间都在讨论着人工智能的话题。由于从小也学过围棋,再加上对于人工智能的爱好,所以我决定开发一个基于Java的围棋对弈系统。本系统采用JAVA中的Swing以及AWT组件来开发本系统的GUI,只需要使用少量的代码就可以利用Swing通用、灵活的功能和模块化组件来创建优雅的用户图形界面。游戏主要实现人机对战和玩家对战两个功能,人机对战中设置不同的难度等级,可以让用户根据自身的需求合理的选择与自己相符的电脑AI。本系统采用极大极小值搜索算法和Alpha-Beta剪枝算法方法,设计并实现了围棋AI的模块与功能,研究了围棋在电脑上的局面表示,走棋过程中走法生成和局面评估、博弈树搜索等一系列问题。通过本课题研究,对增强我们自己自身的思维逻辑能力,对于人工智能的研究也具有重要意义、价值。本次设计让我对算法的研究更加深入,同时对我未来研究人工智能方面也有很大的帮助。
关键词:围棋游戏,java,极大极小值搜索算法,Alpha-Beta剪枝算法
目录
摘要
Abstract
第1章 绪论-1
1.1 背景-1
1.2 国内外研究现状-3
1.3 系统建设目标-5
1.4 开发的意义-5
1.5 论文的组织结构-6
第二章 围棋对弈系统的需求分析-7
2.1 围棋系统概述-7
2.1.1 围棋定义-7
2.1.2 围棋的规则-9
2.2 围棋和Java的关系-9
2.3 极大极小值搜索算法-10
2.4 Alpha-Beta剪枝算法-11
第三章 围棋对弈系统的设计与实现-14
3.1 系统需求分析-14
3.1.1 围棋对弈系统流程图-14
3.1.2 开发围棋的任务目的-15
3.1.3 系统总体结构-16
3.2 界面设计-17
3.2.1 用户登陆界面图-17
3.2.2 系统主界面-19
3.3 Alpha-Beta剪枝算法-20
第四章 系统测试-22
4.1 软硬件环境-22
4.2 测试-22
4.3 测试总结-27
第五章 总结-28
参考文献-29
致谢-30