public boolean checkShot(int row, int col) {
        /* invalid board position */
        if(row < 1 || col < 1 || row > (this.boardHeight-1) || col > (this.boardWidth-1))
            return false;

        /* We have a hit! */
        if(this.board[row][col] == 'S') {
            this.board[row][col] = 'X';
            this.numShips--;

            return true;
        }
        /* Did they really shoot at the same spot again? */
        else if(this.board[row][col] == 'X' || this.board[row][col] == 'O') {
            /* do nothing, penalize them for their foolish double shot! */
            return this.board[row][col] == 'X' ? true : false; // return whatever was already there
        }
        /* The must have missed then */
        else {
            this.board[row][col] = 'O';
            return false;
        }
    }