1 任务设计书
本项目要实现的是五子棋人机版,通过制定棋型的评分表使机器能够对棋盘局势评估。五子棋玩家双方分别称为“人”、“机器” ,当人落子后,机器对棋盘扫描获取可行棋的位置集合,然后遍历该集合,利用评估函数对每个空位依次估分,得分最高的位置即为机器要落子的位置,在使用评估函数对空位打分时,为了避免机器只攻不守,需要使用“换位思考”的思想,也就是说打分时不仅考虑自身,还要考虑对方。
2 类与对象的设计
2.1 类
2.1.1 位置实体类Location
Location类封装棋盘上的一个位置,AI对局势分析时会对位置打分,所以位置实体类应该有个字段保存位置分数,Location类的设计如图1所示。
public Location(int x, int y)
构造函数。x:横坐标,y:纵坐标
public Location(int x, int y, int player)
构造函数。x:横坐标,y:纵坐标,player:位置所有者
public Location(int x, int y, int player, int score)
构造函数。x:横坐标,y:纵坐标,player:位置所有者,score&#