Tic_Tac_Toe作业说明
1.任务
本编程作业要求实现基于MiniMaxSearch的tic_tac_toe问题解决方案。
2.程序框架
样例程序包含两个文件:m ain_tic_tac_toe.py以及tic_tac_toe.py
tic_tac_toe.py:
实现了GameJudge类,用于判断当前状态的输赢情况,这部分代码不需要修改;
实现了MiniMax_Search函数的基本流程,但是关键步骤的子函数代码(eg.min_value,
max_value,util ity函数)要求自己编写;
main_ tic_tac_toe.py:
测试文件,从tic_tac_toe.py中导入GameJudge和Minimax_Search,实现用户和电脑之间的博
弈过程。
完成tic_tac_toe.py文件之后,可以运行main_tic_tac_toe.py测试自己写的MinimaxSearch算法得到
的落子是否合理。一般情况下,如果MinimaxSearch算法实现合理,电脑和用户总是能下成平局。
3.MinimaxSearch算法实现说明
本作业要求实现MinimaxSearch算法,并要求有限搜索深度(depth=3)。实现过程中,为了保证程
序细节的一致性,我们事先做出以下约定:
1.电脑玩家(用1表示)使用circle,你(用1表示)使用cross;
2.电脑玩家是MAXuser,你是MINuser,也就是说电脑的落子要使utility最大,而你落子要使
utility最小;
3.MinimaxSearch的搜索深度限定为3(depth=3足够得到合理的落子),也就是你落子的时候会往
前多算两步;
4.你先落子;
MinimaxSearch算法的基本流程为,对于电脑玩家:
1.找出当前状态下所有可以落子的地方;
2.采用depthlimitedminimaxsearch方法估计每一个落子的地方的utility;
3.在utility最大的地方落子;
4.正确运行样例
评论0