AI Chess有效动作

Ive*_*lin 1 validation performance chess

我想写AI国际象棋,我有一个问题.我准备好了碎片移动规则,我正在尝试删除无效的移动(让国王受到检查等).我写了这样的话:

ValidateMove(board);
{
for(i=0;i<64;i++)
if(board[i]==king.opposite) kingpos=board[i];

createmoves(board);

if (moves.contains(kingpos)) return false;
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用minimax + alpha beta,验证使我的搜索速度非常慢.

Mar*_*ers 5

只是设置失去你的国王以给予无穷大的分数并结束游戏,然后算法将永远不会选择允许国王丢失的移动,除非没有选项,而不是检查"检查".

请注意需要特殊处理的僵局,因为根据上述算法会导致损失,但根据标准的国际象棋规则,它被称为平局.