DEV Community

Stanley Zheng
Stanley Zheng

Posted on

chessBoardColorCalculator

my solution to this code fights problem
https://app.codesignal.com/arcade/intro/level-6/t97bpjfrMDZH8GJhi/description

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)

Collapse
 
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))
True
>>> color_equal((1,1),(3,4))
False