public void mouseReleased(MouseEvent event) {
			if (!gameOver) {
				message = "";
				
				// Calculate which square the user attempted to move the piece to
				BoardSquare destination = new BoardSquare(event.getX() / SQUARE_LENGTH,
						                                  event.getY() / SQUARE_LENGTH);
				
				// Check if the user attempted to move the piece off the board
				if (!board.insideBoard(destination)) {
					board.setCurrentPiece(null);
				}
				
				// Figure out what move the player intended to make
				CheckersPiece currentPiece = board.getCurrentPiece();
				if (null != currentPiece) {
					BoardSquare start = currentPiece.getPosition();
					
					// Check if the intended move is legal
					if (board.isLegalMove(start, destination, turn)) {
						// If the move is legal, make the move
						board.makeMove(new CheckersMove(start, destination), turn, true);
						board.setCurrentPiece(null);
						
						// If the move was a step or if the move was a jump and no further captures are available: switch turn
						if (1 == Math.abs(start.y - destination.y) || !currentPiece.areAnyCapturesPossibleForPiece()) {
							board.setRequiredPiece(null);
							
							// If the human player just made a move, make the computer move and then allow the human
							// player to make the next move
							if (Player.BLACK == turn){
								turn = Player.RED;
								repaint();
								checkIfAreAnyMovesPossible(turn);
								if (gameOver) {
									return;
								}
								board.makeAIMove(Player.RED);
								turn = Player.BLACK;
								repaint();
							} else {
								turn = Player.BLACK;
							}
							checkIfAreAnyMovesPossible(turn);
							
						// Otherwise: require additional capture(s)	if further captures are available and the move was a jump
						} else {
							board.setRequiredPiece(currentPiece);
							message = "Note: additional captures are required.";
						}
					} else {
						board.setCurrentPiece(null);
						
						// If the user attempted to make an illegal move, display a message
						if (!start.equals(destination)) { 
							message = "Illegal move. Try again.";
						}
					}
				}
				repaint();
			}
		}