【发布时间】:2015-06-23 10:13:01
【问题描述】:
我有三个数组,
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 数组,其中填充了名为 whiteMoves 和 blackMoves 的 False。我想要的是一个函数
def getEnemyMoves():
global chess, whiteMoves, blackMoves
doSomethingToWhiteMoves()
doSomethingToBlackMoves()
例如这些:
- 如果 chess[5][0](或 a3)中有一个敌方棋子,whiteMoves[5][0] 应该变为 True,因为 chess[7][1] (b2) 中的棋子可以吃掉它。
- 如果黑皇后在 chess[7][0] (a1) 中,而国王在 chess[7][1] (b1) 中,则 blackMoves[7][1] 应为 True。
- 如果 chess[0][0] (a8) 中有黑子处于危险中,则 whiteMoves[0][0] 应为 True。
我尝试了许多不同的方法来做到这一点,但它们都非常复杂,而且没有一个能完全发挥作用。这是我的棋局结束前唯一要做的事情。
【问题讨论】:
-
也许你应该考虑一个更好的数据表示。您的角色很难在程序中使用,并且作为输出信息量不大。