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

# Example

 For `cell1 = "A1" and cell2 = "C3"`, the output should be `true`.
 For `cell1 = "A1" and cell2 = "H3"`, the output should be `false`.

# Input/Output

 - `[input]` string `cell1`
 
 - `[input]` string `cell2`
 
 - `[output]` a boolean value

    `true` if both cells have the same color, `false` otherwise.

Difficulty: EASY

Starter code:
def chess_board_cell_color(cell1, cell2):
	

Solutions:
def chess_board_cell_color(a, b):
	return (ord(a[0]) + int(a[1])) % 2 == (ord(b[0]) + int(b[1])) % 2


def chess_board_cell_color(cell1, cell2):
	return sum(map(ord, cell1)) % 2 == sum(map(ord, cell2)) % 2


def chess_board_cell_color(cell1, cell2):
	is_black = lambda c: (c[0] in 'BDFH') ^ (c[1] in '1357')
	return is_black(cell1) == is_black(cell2)


(b, chess_board_cell_color) = (lambda c: sum(map(ord, c)) & 1, lambda c, d: b(c) == b(d))


def chess_board_cell_color(cell1, cell2):
	return (ord(cell1[0]) + int(cell1[1])) % 2 == (ord(cell2[0]) + int(cell2[1])) % 2


black = lambda cell: (cell[0] in {'A', 'C', 'E', 'G'}) ^ int(cell[1]) % 2
chess_board_cell_color = lambda a, b: black(a) == black(b)


def check(c):
	if c[0] in 'ACEG':
		if int(c[1]) % 2 == 0:
			return 'W'
		else:
			return 'B'
	elif c[0] in 'BDFH':
		if int(c[1]) % 2 == 0:
			return 'B'
		else:
			return 'W'

def chess_board_cell_color(cell1, cell2):
	return check(cell1) == check(cell2)


def chess_board_cell_color(cell1, cell2):
	file1 = cell1[0]
	rank1 = cell1[1]
	file2 = cell2[0]
	rank2 = cell2[1]
	row = abs(ord(file1) - ord(file2))
	col = abs(int(rank1) - int(rank2))
	same_color = (row + col) % 2 == 0
	return same_color


def Color(cell):
	return ('ABCDEFGH'.index(cell[0]) + '12345678'.index(cell[1])) % 2

def chess_board_cell_color(cell1, cell2):
	return Color(cell1) == Color(cell2)


def chess_board_cell_color(cell1, cell2):
	return sum((ord(c) + int(d) for (c, d) in (cell1, cell2))) % 2 == 0


def chess_board_cell_color(c1, c2):
	return len(set((x[1] in '1357' if x[0] in 'ACEG' else x[1] in '2468' for x in [c1, c2]))) == 1


def chess_board_cell_color(c1, c2):
	return isWhite(c1) == isWhite(c2)

def isWhite(c):
	i = ('ABCDEFGH'.index(c[0]) + 1) % 2
	return i != 0 if int(c[1]) % 2 == 0 else i == 0


def chess_board_cell_color(cell1, cell2):
	return get_colour(cell1) == get_colour(cell2)

def get_colour(cell):
	letters = 'ABCDEFGH'
	if letters.index(cell[0]) % 2 == 0:
		if int(cell[1]) % 2 == 1:
			return 'b'
		else:
			return 'w'
	elif int(cell[1]) % 2 == 1:
		return 'w'
	else:
		return 'b'


def chess_board_cell_color(cell1, cell2):
	(r1, c1) = cell1
	(r2, c2) = cell2
	return abs(ord(r1) - ord(r2)) % 2 == (int(c1) - int(c2)) % 2


def chess_board_cell_color(cell1, cell2):
	return True if (ord(cell1[0]) - ord(cell2[0])) % 2 == (ord(cell1[1]) - ord(cell2[1])) % 2 else False


def chess_board_cell_color(cell1, cell2):
	return int(cell1, 35) % 2 == int(cell2, 35) % 2


def chess_board_cell_color(cell1, cell2):
	board = {'A': 'BW' * 4, 'B': 'WB' * 4, 'C': 'BW' * 4, 'D': 'WB' * 4, 'E': 'BW' * 4, 'F': 'WB' * 4, 'G': 'BW' * 4, 'H': 'WB' * 4}
	return board[cell1[0]][int(cell1[1]) - 1] == board[cell2[0]][int(cell2[1]) - 1]


def chess_board_cell_color(cell1, cell2):
	dark = ['A1', 'C1', 'E1', 'G1', 'B2', 'D2', 'F2', 'H2', 'A3', 'C3', 'E3', 'G3', 'B4', 'D4', 'F4', 'H4', 'A5', 'C5', 'E5', 'G5', 'B6', 'D6', 'F6', 'H6', 'A7', 'C7', 'E7', 'G7', 'B8', 'D8', 'F8', 'H8']
	x = 0
	y = 0
	if cell1 in dark:
		x = 1
	if cell2 in dark:
		y = 1
	if x == y:
		return True
	else:
		return False


def chess_board_cell_color(cell1, cell2):
	strings = 'ABCDEFG'
	ce1 = 0
	ce2 = 0
	for (i, let) in enumerate(strings):
		if let == cell1[0]:
			ce1 = i + 1
		if let == cell2[0]:
			ce2 = i + 1
	if int(cell1[1]) % 2 == 0 and ce1 % 2 == 0 or (int(cell1[1]) % 2 == 1 and ce1 % 2 != 0):
		color1 = 'r'
	else:
		color1 = 'w'
	if int(cell2[1]) % 2 == 0 and ce2 % 2 == 0 or (int(cell2[1]) % 2 == 1 and ce2 % 2 != 0):
		color2 = 'r'
	else:
		color2 = 'w'
	if color1 == color2:
		return True
	else:
		return False