Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Speedy category for Berserk Rook by _Chico_
def berserk_rook(berserker, enemies):
def can_capture(rook):
p1, p2 = min(berserker, rook), max(berserker, rook)
return (p1[0] == p2[0] and not any(p1 < e < p2 for e in enemies)) or \
(p1[1] == p2[1] and not any(p1[0] < e[0] < p2[0] for e in enemies if e[1] == p1[1]))
return max((berserk_rook(rook, enemies - {rook}) + 1 for rook in enemies if can_capture(rook)), default=0)
May 18, 2021