Let try to answer the question using the package mdframed
. (Github-version: https://github.com/marcodaniel/mdframed -- newer)
The provided command \boxpar
has the following syntax:
\boxpar[<number of lines>]{Text}[<width of the box>]
You can the the number and the width are optional.
mdframed
cant split across pages using a simple
\vspace`. Therefor the loop is needed.
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}
\newcounter{tempcount}
\NewDocumentCommand \boxpar { O{3} m O{\linewidth} }{%
\begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3]
\setcounter{tempcount}{0}
\loop\ifnum\value{tempcount}<#1
\rule{0pt}{\baselineskip}\\[2pt]
\stepcounter{tempcount}
\repeat
\ifx\relax#2\relax\else#2\fi
\end{mdframed}%
}
\begin{document}
\lipsum[1]
\boxpar{}
\lipsum[2]
\boxpar[10]{}[8cm]
\boxpar[6]{3 Points}[8cm]
\end{document}

If you want to modify the style of the frame you can do this by options of mdframed
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{boxpar}{linewidth=2pt,backgroundcolor=gray!10,roundcorner=10pt,}
\usepackage{lipsum}
\newcounter{tempcount}
\NewDocumentCommand \boxpar { O{3} m O{\linewidth} }{%
\begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3,style=boxpar]
\setcounter{tempcount}{0}
\loop\ifnum\value{tempcount}<#1
\rule{0pt}{\baselineskip}\\[2pt]
\stepcounter{tempcount}
\repeat
\ifx\relax#2\relax\else#2\fi
\end{mdframed}%
}
\begin{document}
\lipsum[1]
\boxpar{}
\lipsum[2]
\boxpar[10]{}[8cm]
\boxpar[6]{3 Points}[8cm]
\end{document}
If you want horizontal lines you can use:
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{boxpar}{linewidth=2pt,backgroundcolor=gray!10,roundcorner=10pt,}
\usepackage{lipsum}
\newcounter{tempcount}
\NewDocumentCommand \boxpar { O{3} m O{\linewidth} }{%
\begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3,style=boxpar]
\setcounter{tempcount}{1}
\loop\ifnum\value{tempcount}<\numexpr#1+1\relax
% \rule{0pt}{\baselineskip}\\[2pt]
\the\value{tempcount}\rule{\linewidth}{.8pt}\\[2pt]
\stepcounter{tempcount}
\repeat
\ifx\relax#2\relax\else#2\fi
\end{mdframed}%
}
\begin{document}
\lipsum[1]
\boxpar{}
\lipsum[2]
\boxpar[10]{}[8cm]
\boxpar[6]{3 Points}[8cm]
\end{document}

You can also add a title:
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\mdfdefinestyle{boxpar}{linewidth=2pt,backgroundcolor=gray!10,roundcorner=10pt,frametitle=Room for your answer,frametitlerule=true}
\usepackage{lipsum}
\newcounter{tempcount}
\NewDocumentCommand \boxpar { O{3} m O{\linewidth} }{%
\begin{mdframed}[align=center,innertopmargin=.4cm,userdefinedwidth=#3,style=boxpar]
\setcounter{tempcount}{0}
\loop\ifnum\value{tempcount}<#1
\rule{0pt}{\baselineskip}\\[2pt]
\stepcounter{tempcount}
\repeat
\ifx\relax#2\relax\else#2\fi
\end{mdframed}%
}
\begin{document}
\lipsum[1]
\boxpar{}
\lipsum[2]
\boxpar[5]{}[8cm]
\boxpar[6]{3 Points}[8cm]
\end{document}

\documentclass{...}
and ending with\end{document}
.