itertools - 2点之间的所有整数点

时间:2013-07-14 19:41:25

标签: python tuples

我正在用python写一个国际象棋游戏。当检查国王时,我需要过滤掉可能的动作,阻止检查或移动国王。我想编写一个函数来返回可能的阻塞动作,以阻止检查。函数将如下所示:

def getBlockingCheckMoves(pieceField,kingPos)

对于一个车来说,一个很长的解决方案看起来像这样:

  
      
  1. 查看x坐标是否相同,返回由y的范围组成的元组,并使用正确的增量。
  2.   
  3. 如果y坐标相同,则返回由x的范围组成的元组。
  4.   

使用itertools是否有更多的pythonic方法来实现这一目标?

编辑:我的长版

if pieceField[0] == kingPos[0]:
    if pieceField[1] < kingPos[1]:
        return [(pieceField[0],x) for x in range(pieceField[1],kingPos[1])]
    else:
        return [(pieceField[0],x) for x in range(pieceField[1],kingPos[1],-1)]
if pieceField[1] == kingPos[1]:
    if pieceField[0] < kingPos[0]:
        return [(x,pieceField[1]) for x in range(pieceField[0],kingPos[0])]
    else:
        return [(x,pieceField[1]) for x in range(pieceField[0],kingPos[0],-1)]

0 个答案:

没有答案