我正在创建一个国际象棋引擎。当我创建了一个检查移动是否合法的函数时,首先我必须执行这个移动并检查它是否将我的国王置于被攻击状态,然后再撤销这个移动。
在考虑如何创建一个撤销移动的函数时,我决定更简单的方法是复制棋盘并在复制的棋盘上进行假想移动,这样就不会改变原始棋盘结构。
但我担心这可能是个坏主意,因为当我到达AI部分时,我必须完全复制棋盘,这可能会减慢我的引擎速度。这是真的吗?由于我对算法复杂性和相关知识不太了解,请您分享一下您的想法。
谢谢。
在考虑如何创建一个撤销移动的函数时,我决定更简单的方法是复制棋盘并在复制的棋盘上进行假想移动,这样就不会改变原始棋盘结构。
但我担心这可能是个坏主意,因为当我到达AI部分时,我必须完全复制棋盘,这可能会减慢我的引擎速度。这是真的吗?由于我对算法复杂性和相关知识不太了解,请您分享一下您的想法。
谢谢。