yazdığınız kod da ufak değişiklikler yaparak cevabı bulduğuma inanıyorum kontrol edermisiniz?
import itertools
olasılıklar = itertools.combinations(range(64), 3)
class Taş():
__slots__ = ("x", "y")
def __init__(self):
self.x, self.y = 0, 0
def __repr__(self):
return f"Taş({self.x}, {self.y})"
t1, t2, t3 = (Taş() for i in range(3))
sonuç = []
for olasılık in olasılıklar:
t1.y, t1.x = divmod(olasılık[0], 8)
t2.y, t2.x = divmod(olasılık[1], 8)
t3.y, t3.x = divmod(olasılık[2], 8)
if t1.x==t2.x and abs(t1.y-t2.y)==1:
continue
if t1.x==t3.x and abs(t1.y-t3.y)==1:
continue
if t2.x==t3.x and abs(t2.y-t3.y)==1:
continue
if t1.y==t2.y and abs(t1.x-t2.x)==1:
continue
if t1.y==t3.y and abs(t1.x-t3.x)==1:
continue
if t2.y==t3.y and abs(t2.x-t3.x)==1:
continue
if abs(t1.x-t2.x)==1 and abs(t1.y-t2.y)==1:
continue
if abs(t1.x-t3.x)==1 and abs(t1.y-t3.y)==1:
continue
if abs(t2.x - t3.x) == 1 and abs(t2.y - t3.y) == 1:
continue
sonuç.append(olasılık)
print(len(sonuç))