Python
 Computer >> コンピューター >  >> プログラミング >> Python

女王がPythonでチェス盤の特定のセルを攻撃できるかどうかを確認します


チェス盤に女王と対戦相手の2つの座標があるとします。これらのポイントはそれぞれQとOです。女王が相手を攻撃できるかどうかを確認する必要があります。女王は同じ行、同じ列、斜めに攻撃できることがわかっています。

したがって、入力がQ =(1、1)O =(4、4)のようである場合、Qは対角線上(4、4)になる可能性があるため、出力はTrueになります。

女王がPythonでチェス盤の特定のセルを攻撃できるかどうかを確認します

これを解決するには、次の手順に従います-

  • QのxがOのxと同じである場合、
    • Trueを返す
  • QのyがOのyと同じである場合、
    • Trueを返す
  • if | x of Q-x of O | Qの|y-O|のyと同じで、
    • Trueを返す
  • Falseを返す

理解を深めるために、次の実装を見てみましょう-

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

  1. クラス属性がPythonの特定のクラスで定義または派生したかどうかを確認するにはどうすればよいですか?

    以下のコードは、属性fooがクラスAおよびBで定義または派生したかどうかを示しています。 例 class A:     foo = 1 class B(A):     pass print A.__dict__ #We see that the attribute foo is there in __dict__ of class A. So foo is defined in class A. print hasattr(A, 'foo') #We see that class A has the attribute but it is

  2. PythonでAがBのスーパークラスであるかどうかを確認するにはどうすればよいですか?

    クラスAとBは次のように定義されています- class A(object): pass class B(A): pass 例 Aは次の2つの方法でBのスーパークラスであることが証明できます class A(object):pass class B(A):pass print issubclass(B, A) # Here we use the issubclass() method to check if B is subclass of A print B.__bases__ # Here we check the base classes or super classes of B 出力