Improves Board#initialize to allow for custom board sizes
Improves readability of class constants
Adds Board#check_size to raise an error if custom size is too small or not even
Fixes style error for Board#[] and Board#[]=
Adds @size ivar to Board
Adds Board#make_board to populate the board with nil values
Adds Board#populate_board and take responsibility of setting position from Piece#initialize
Exchanges Piece::JUMP_MOVES for Piece::ONE_AWAY; Exchanges erroneous returns for errors raised
Adds Piece#perform_moves! to perform a sequence of moves
Rearranges methods in Piece class to make sense
Adds empty Piece#valid_move_sequence?
Adds Board#all_pieces to collect all pieces of a color in an array
Adds Board#correct_piece_board to change all board properties of duplicated pieces to new board
Adds Board#dup to deep duplicate the board and set the new board properties of the pieces.
Removes 'p's for inspection in Board#populate_board
Completes Piece#valid_move_sequence?
Fixes bug in Piece#perform_moves\!
Implements proper error handling with InvalidMoveError