Closed kira-yamatoo closed 3 years ago
即本回合方无论如何移动棋子都会被吃掉将军
确实棋子一旦移动就局势就变了。
先 merge,可以后续再慢慢优化;
先 merge,可以后续再慢慢优化;
这块我的需要再想想 将死的判断条件是:本回合方无论如何移动棋子都会被吃掉将军,这个范围还是比较大的 另外的话,我想新增一些image给棋子和棋盘 以及根据chessStep增加步数记录和FEN串
将死的判断条件是:本回合方无论如何移动棋子都会被吃掉将军,这个范围还是比较大的
这个应该还好,比较有限,只设置一步即可(就是设置的人机对战中的 AI 的最后一步骤,你可参考下);当时就是这种思路 给 AI 模拟下棋,进而得出最优解
getAllPossibleMoveStep 略作修改即可,然后击杀的为 “将” ID 为目标,而不是我那种加权的击杀,优选分数大的击杀;然后还有一个 getAllPossibleMoveStepAndNoKill ; https://github.com/xmuli/chinessChess/blob/aa8966ad6b57da41da189b594d63f447a212d0fe/MachineGame.cpp#L83-L109
将死的判断条件是:本回合方无论如何移动棋子都会被吃掉将军,这个范围还是比较大的
这个应该还好,比较有限,只设置一步即可(就是设置的人机对战中的 AI 的最后一步骤,你可参考下);当时就是这种思路 给 AI 模拟下棋,进而得出最优解
略作修改即可,然后还有一个 getAllPossibleMoveStepAndNoKill https://github.com/xmuli/chinessChess/blob/aa8966ad6b57da41da189b594d63f447a212d0fe/MachineGame.cpp#L83-L109
好滴
- 可以的, 图片注意版权和大小;可以优先 svg;unsplash.com 里面版权基本没问题,质量也很高;不多多是背景图等。
- 想到既然做了悔棋功能; 再用一个 QVector<> 将所有的棋子步骤(包括悔棋)都保存下来,然后设定间隔时间;就可以放(精对弈复现)功能了
界面上的优化可以先不急,我先做逻辑
一晃又转点了;第二天了
一晃又转点了;第二天了
还有两天才到周末,加油!
听会歌,睡觉;晚安
优化isGeneral()函数,用于判断是否将军 我按照上个思路去做了将死(即本回合方无论如何移动棋子都会被吃掉将军),发现好像任意一个棋子移动后都可能发生变数,所以不能以将军的可移动位置来判断 例如:黑方中炮,红方士象全且未移动过,依照之前的思路将军此时只能向上移动,而移动后的位置依旧会被将军,然而红方直接上士或者上相就无效了将军。所以需要重新构建一下思路