Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Create columns list - to identify columns diagonal below solution in Creative category for Pawn Brotherhood by frankiser
def safe_pawns(pawns: set) -> int:
"""
You are given a set of square coordinates where we have placed white pawns.
You should count how many pawns are safe.
:param Placed pawns coordinates as a set of strings.
:return: The number of safe pawns as a integer.
"""
safe_pawn = 0
COLUMNS = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
for pawn in pawns:
column = pawn[0]
row = int(pawn[1])
index_column = COLUMNS.index(column)
col_left_below = 'Null'
col_right_below = 'Null'
if index_column > 0:
col_left_below = index_column - 1
pawn_left_below = COLUMNS[col_left_below] + str(row-1)
if index_column < 7:
col_right_below = index_column + 1
pawn_right_below = COLUMNS[col_right_below] + str(row-1)
if ( ((col_left_below is not 'Null') and (pawn_left_below in pawns)) or
((col_right_below is not 'Null') and (pawn_right_below in pawns)) ):
safe_pawn += 1
return safe_pawn
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!")
March 6, 2019