Python 实现皇后攻击棋盘上给定格子的检查


假设我们有皇后和对手在棋盘上的两个坐标。这些点分别是Q和O。我们必须检查皇后是否可以攻击对手。众所周知,皇后可以在同一行、同一列和对角线上攻击。

因此,如果输入类似于Q = (1, 1) O = (4, 4),则输出为True,因为Q可以对角线移动到(4, 4)。

为了解决这个问题,我们将遵循以下步骤:

  • 如果Q的x坐标与O的x坐标相同,则
    • 返回True
  • 如果Q的y坐标与O的y坐标相同,则
    • 返回True
  • 如果|Q的x坐标 - O的x坐标| 等于 |Q的y坐标 - O的y坐标|,则
    • 返回True
  • 返回True

让我们看看下面的实现,以便更好地理解:

示例

 在线演示

def solve(Q, O):
   if Q[0] == O[0]:
      return True
   if Q[1] == O[1]:
      return True
   if abs(Q[0] - O[0]) == abs(Q[1] - O[1]):
      return True
   return False
Q = (1, 1)
O = (4, 4)
print(solve(Q, O))

输入

(1, 1), (4, 4)

输出

True

更新于:2020年12月29日

613 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告