Chess Piece Implementation

Added Piece, King, Queen, Bishop, Knight, Rook, and Pawn classes

**********

Piece Class: abstract superclass for all pieces

>Provides fields to hold a piece's side (black or white) and whether or
not it has moved before
>Provides concrete method to get a piece's side (getter method for
field)
>Provides concrete method to get whether or not the piece has moved
(getter method for field)
>Provides abstract method declaration for determining if a specific
move is valid for a piece
>Provides abstract method declaration for determining if a specific
capturing move is valid for a piece
>Provides concrete method to designate that the piece has moved (setter
method for field)

**********

King Class: concrete class to represent a King, extends Piece

>Provides King-specific implementation for superclass methods that
determine if a move or capture is valid for a King

**********

Queen Class: concrete class that represents a Queen piece, extends Piece

>Provides Queen-specific implementation for superclass methods that
determine whether a move or a capture is valid for a queen

**********

Bishop Class: concrete class to represent a bishop piece, extends Piece

>Provides Bishop-specific implementation for superclass methods that
determine whether or not a move or capture is valid for a bishop

**********

Knight Class: concrete class that represents a Knight piece, extends
Piece

>Provides Knight-specific implementation for superclass methods that
determine if a move or capture is valid for a Knight

**********

Rook Class: concrete class to represent a Rook piece, extends piece

>Provides Rook-specific implementation for the superclass methods that
determine whether or not a move or capture is valid for a rook

**********

Pawn Class: concrete class to represent a Pawn piece, extends Piece

>Provides Pawn-specific implementation for superclass methods that
determine whether or not a move or capture is valid for a pawn
Chess Board Implementation

Adds Board class

**********

Board Class: concrete class that controls the game and the board

>Provides two dimensional array field to represent a board
>Provides field to keep track of the turn number (used to determine
whose move it is)
>Provides method to set the board up with pieces in the correct
position to start a game
>Provides method to get the row in which a piece is located
>Provides method to get the column in which a piece is located
>Provides method to determine if a specific location on the board is
empty
>Provides method to determine if a location is a valid location on the
board (if it is within the bounds of the board)
>Provides method to move a piece
>Provides method to caste a king
>Provides method to upgrade a pawn when it reaches the other side of
the board
>Provides method to determine if there is piece blocking a straight
line path from one location to another
>Provides method to see if someone has won the game (if one of the
kings has been captured)
>Provides method to determine if a location is next to a king
(therefore opposing king cannot move there) NOTE: may throw an error in
some cases, will be fixed
>Provides method to convert piece objects to strings that will
represent the pieces in the GUI

NOTE: There are incomplete and unimplemented methods to check for
check, checkmate, and stalemate
Main Class and GUI Implementation

Adds Game class

**********

Game Class: concrete class that plays game and controls GUI

>Provides implementation for the creation of JTable to graphically
represent the chess board
>Provides method to add piece representations to JTable
>Provides main method which starts and runs a game