Initialize classes
Initialize the board
Check if move is on the board
Get the color of player on given position
Check if position is empty
Check for obstructions
Check if pieces are of the same color
Check if pawn moves in the right direction
Return valid moves for Piece