The checkers board ------------------ A checkers board is a NxN board with alternating black and white squares. The most common versions have N=8, but there are versions with N=10 and, hey, why can't invent larger boards? Create a class CheckerBoard that implements these operations: - an initialization given N, that creates the empty board. - add_piece(x,y,c) that adds a checker of color c (say, W,B) to square (x,y). Note that to keep with the rules of checkers, you can only place pieces in black squares. - setup_game with a parameters m that places pieces of the the first m rows of either sides, of opposite colors. You know what I mean. It probably calls add_piece repeatedly. - play(x,y,dir) that moves the checker at place (x,y) (assuming there is one) in the direction d, forward right or forward left. Remember that it can take enemy's pieces by jumping over them. - print() that prints how the board looks like at the moment (possibly after add_piece() and play's). There are several variants of checkers, actually, that differ in how pieces can move, how they capture each others. Implement the one that you are familiar with. Implementing the notion of "queen" or "king" when a piece moves to the last row of the enemy is optional. The class looks therefore as: class CheckerBoard(object): def __init__(self,N): ... def add_piece(self,x,y,c): ... def setup_game(self,m): ... def play(self,x,y,dir): ... def print(self): ...