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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.