
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
项目共有4个模块组成
+ Image 模块
+ Main.py
+ chess.py
+ Image 模块
提供图片chess.gif 作为背景画布
模块简单介绍:
+ 主模块:main.py
+ dict_chessBtn = {} 字典的键:btn按钮 值:棋子对象
+ find_move_location(click_location):选择要移动的子之后,点击棋盘上的位置,棋子就会移动到该位置。
+ judge_king(chess,position):移动棋子,判断一下会不会被将军,如果被将军就暂时不能移动
+ warn(chess) :警告颜色(堵象眼,移动后被将军,超出边界),比如撇马腿时,要移动马时,马上面的颜色会变成紫色,表示此时不能移动.
+ click_chessboard(event):棋盘点击事件 点击要移动的棋子(选中),点击目标位置(棋盘上的位置),此时棋子原来的位置坐标
+ 更新为现在棋盘上的位置坐标.
+ remove_data_in_list_chess(old_chess):删除被吃掉的子,(从棋子列表中移除)
+ delete(chess):清除棋子按钮 ,删除列表中位置
+
黑方是由电脑下棋,根据棋子的 权重来判断 走哪一个,先吃哪一个(红方权重大的),或者哪一个先跑(自己权重大的).权重为棋子对象的一个属性
+ 权重 车:100,炮:90 马:80 相:30 士:40 将:200 卒:1
+ 判断输赢
+ 如果对方的将在自己的某个棋子的可移动位置,那么对方的将就被将军了,如果被将军,则遍历可走子位置循环找解将的方法,
+ 随机走一步不被将军的位置,如果循环完毕没解决则判定红方胜。
+ 重新开始
+ 从开始每走一步都会将此时的状态 深复制 一份到copy_list_chess 列表当中
+ 重新开始的时候,将状态重置为 刚开始复制的那一份(copy_list_chess[0])
+ 悔棋
+ 因为每走一步都会将此时的状态 深复制 一份到copy_list_chess 列表中,要悔棋时将当时的状态对象,删除(即把列表最后一项弹出去)
+ 然后,倒数第二项将变为最后一项了,将此时的状态重置即为悔棋(回到上一步了).
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与联系我们,我们会予以更改或删除相关文章,以保证您的权益!