个人选题项目
基于人工智能博弈树,极大极小(Minimax)搜索算法并使用Alpha-Beta剪枝算法优化实现的可人机博弈的AI智能五子棋游戏。
设计目标及主要内容
本系统是根据传统五子棋游戏的功能编写,其功能实现了基于AI人工智能算法实现智能的人机对弈五子棋。主要需实现如下目标:
(1)Python 3.6.8环境的下的Python语言编程
(2)五子棋棋盘的设计
(3)五子棋棋子的设计
(4)电脑智能落子的实现
(5)棋局进行时的退出功能
(6)棋局胜负的判定
(7)人工智能算法的设计
(8)人工智能算法的优化
开发环境
编程语言:Python语言
操作系统:Windows 11
开发工具:PyCharm 2022.2.3.0
程序开发模块
五子棋游戏是一款很符合现代人的休闲特点的益智类游戏,其是我国古代围棋的的衍生物,本系统主要实现基于AI智能算法的人机对战游戏。
人机对战模式实现的功能:选择人机对战,设置先手,实现玩家与电脑轮流落子,棋盘动态信息显示,判断输赢,重新开始游戏。
视图界面模块主要实现用户使用软件时的界面呈现,包括棋盘,棋子的绘制,游戏交互信息和弹窗提示信息等。
规则判定模块主要实现人机对弈时的裁判角色,判定游戏的规则以及游戏的输赢判定。
AI智能算法主要实现电脑对于当前棋局的分析,分析棋局情况,实现电脑智能判定最优落子的位置,做出像棋手一样的进攻,防守的落子目的。
功能部件模块主要实现程序的兼容性问题,以及理清各个功能模块在整个程序的逻辑关系,是程序可以正常运行的保障。
项目摘要
五子棋是起源于中国古代的黑白棋种之一,是一种简单的娱乐性较强的大众游戏,深受广大玩家的喜爱,但同时作为比赛,五子棋游戏还有着深奥的技巧。
本系统基于Python语言的程序设计,Python的版本为3.6.8,使用PyCharm(版本为2022.2.3.0)软件来实现程序的编译运行。本系统中游戏的每一个功能在程序中都是一个相对独立的模块,比如,视觉界面模块,规则判定模块,AI智能算法模块,功能部件模块等等在程序中都是独立的,但它们之间通过逻辑关系的链接又构成了一个可以使游戏正常运行的程序。
为实现AI智能人机对弈五子棋的程序设计功能,并使得游戏开发尽量的简单化,本系统需要达成以下目标:设计一个简洁的游戏运行界面;制定合法的游戏规则,使游戏能公正的进行,并且可以断定胜负;开发出AI智能算法支持人机对战模式,即电脑通过智能算法和合法规则选出最优的落子位置。
在AI算法的开发设计上,基于博弈树和启发式搜索的相关理论,首先,算法采用了Minimax搜索算法记录下人机博弈的落子点位;其次,依托设计的估值函数评价得出每个落子节点的价值,使电脑能够判断出下一步对自己最有利的落子位置,最后,为了优化搜索的过程,引入Alpha-Beta剪枝算法提高搜索的效率并节省内存的开销。
关键词:博弈树,启发式搜索,Minimax搜索算法,α-β 剪枝算法,评价函数。