我有三个数组,
chess = [["c","d","e","f","g","e","d","c"],
["b","b","b","b","b","b","b","b"],
["a","a","a","a","a","a","a","a"],
["a","a","a","a","a","a","a","a"],
["a","a","a","a","a","a","a","a"],
["a","a","a","a","a","a","a","a"],
["h","h","h","h","h","h","h","h"],
["i","j","k","l","m","k","j","i"]]
存储棋子的位置,(' a'是空的,' b'是黑棋子等)和另外两个8x8阵列填充False名为whiteMoves和blackMoves 。我想要的是一个功能
def getEnemyMoves():
global chess, whiteMoves, blackMoves
doSomethingToWhiteMoves()
doSomethingToBlackMoves()
例如:
我尝试了许多不同的方法来做到这一点,但它们非常复杂,并且没有一个完全有效。这是我的国际象棋比赛结束前唯一要做的事情。
答案 0 :(得分:1)
迭代棋盘上的碎片。对于每件作品,根据该作品的移动规则缩小目标方块:
对于每个这样的候选移动,测试附加约束是否阻止候选移动:
如果将这两个传递合并为一个传递,则可以节省一些CPU周期:
这些 复杂的东西。例如。在最终决定采取行动之前,你必须检查国王是否在接受检查。