Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
recursion solution in Clear category for Berserk Rook by David_Jones
GRADIENTS = ((0,-1), (0,1), (-1,0), (1,0))
def berserk_rook(berserker, enemies):
targets = []
for (dx,dy) in GRADIENTS:
letter, digit = berserker
while 'a' <= letter <= 'h' and '1' <= digit <= '8':
letter, digit = chr(ord(letter)+dx), chr(ord(digit)+dy)
if letter+digit in enemies:
targets.append(letter+digit)
break
if not targets:
return 0
return 1 + max(berserk_rook(target, enemies-{target}) for target in targets)
June 12, 2019
Comments: