DEV Community

Stanley Zheng
Stanley Zheng

Posted on


my solution to this code fights problem

generates an odd and even offset board and checks their reference values

Given two cells on the standard chess board, determine whether they have the same color or not.

Enter fullscreen mode Exit fullscreen mode


def chessBoardCellColor(cell1, cell2):
[fooa, foob] = cell1
[bara, barb] = cell2

fooa = ord(fooa) % 2 
foob = int(foob) % 2

bara = ord(bara) % 2 
barb = int(barb) % 2

board = [[(i+1)%2 for i in range(0,9)], [i%2 for i in range(0,9)]]

return True if board[fooa][foob] == board[bara][barb] else False
Enter fullscreen mode Exit fullscreen mode


Top comments (1)

eisenach profile image
Domenico Barra

Given that there are mathematical ways to compute their equality, you could probably skip the part where you generate the board.
A solution could be to just look at the cell indexes and how they relate to each other:

def color_equal(c1, c2):
    return ((c1[0] + c1[1]) % 2) == ((c2[0] + c2[1]) % 2)

>>> color_equal((1,1),(3,3))
>>> color_equal((1,1),(3,4))