14-习题
8.6 习题
1.为井字棋程序添加单元测试,确保属性 legal_moves 、 is_win 和 is_draw 能正常工作。
2.为四子棋程序的极小化极大算法创建单元测试。
3.tictactoe_ai.py和connectfour_ai.py的代码几乎完全相同。将其重构为对两种游戏都适用的两个方法。
4.修改connectfour_ai.py的代码,让计算机能与自己捉对厮杀。第一个玩家获胜还是第二个玩家获胜?每次都是同一个玩家获胜吗?
5.你能为connectfour.py中的评分函数找到一种优化方案(利用现有代码或其他方式),使其在相同时间内能够达到更大的搜索深度吗?
6.利用本章开发的 alphabeta() 函数以及能够生成合法棋步及维护棋盘状态的Python库,开发一个国际象棋AI。
[1] Connect Four是Hasbro公司的注册商标。本书仅用于描述问题。