Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Using complex numbers, fabulously. solution in Clear category for Pawn Brotherhood by AymaneLazarus
import numpy as np
def safe_pawns(pawns: set):
L=["a", "b", "c", "d", "e", "f", "g", "h"]
d=np.sqrt(2)
Safe=set()
CP=set()
r=0
mag=0
for i in pawns:
r=int(i[1])-1
mag=L.index(i[0])
CP.add(np.complex(r,mag))
for c in CP:
for bro in CP :
if bro!=c and np.real(bro)>np.real(c) and np.absolute(bro-c)==d:
Safe.add(bro)
return len(Safe)
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert safe_pawns({"b4", "d4", "f4", "c3", "e3", "g5", "d2"}) == 6
assert safe_pawns({"b4", "c4", "d4", "e4", "f4", "g4", "e5"}) == 1
print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")
May 3, 2020
Comments: