五子棋人机对弈
采用Tkinter图像界面,通过类实现。 将棋盘封装成一个类Chessboard,这个类可以实现的功能有:两种下棋模式 get_chessOneplayer和get_chessTwoplayer;进行棋盘估值value_chessboard(主要用于人机对弈);进行棋局输赢评判check_win。下面对其进行一一说明: 1.下棋的实现: 通过鼠标事件绑定获得棋子的横纵坐标,并通过一定计算算出其准确行列位置,绘制棋子(点击位置偏离过多则不予绘制),用self.color=[‘white’, ’black’]来控制是下黑棋还是白棋。 2. 进行棋局输赢评判的实现 在__init__(self)中创建一个2维数组self.board用于记录棋盘每个点的落子情况,初始值为0,当落黑子时赋值1,白子时赋值-1。 当用户每落下一个棋子时,以这个棋子为起点,从8个方向根据self.board的数值情况判断是否满足5子相连,满足则结束游戏,不满足则继续游戏。 3.进行棋盘估值 在__init__(self)中创建一个2维数组self.score记录棋盘上每个点的得分情况,初始值为0。 对落子情况进行五连、活四、死四、活三、死三、活二、死二的分类并递减给分,玩家每落 一子,先判断一遍黑子情况,再判断一遍白子情况,将2种情况每个点的得分相加,机器选取得分最高的一点自动落子,实现人机交互。
用户评论