Consider your basic maze.  It has walls and pathways, and it has one (or
more) starting point(s) and one (or more) finish point(s).
Furthermore, one wall is just like another, and any open spaces (not
including start and finish) are also identical.  That
sounds like a job for\ldots enumerated types!

So, make an enumerated type \class{Square} that can represent those four
values.

Each one has an associated one-character representation:
\begin{center}
\begin{tabular}{lcl}
walls & \code{\#} & (hash mark) \\
open spaces & \code{.} & (period) \\
start & \code{o} & (lowercase `O') \\
finish & \code{*} & (asterisk)
\end{tabular}
\end{center}
Include in the enumerated type a \code{toString} method that returns a
one-character-long
string containing only the character corresponding to this
\class{Square}.  Also include a static method \code{fromChar} that
returns the \class{Square} associated with the given \code{char}.
(That is, a method with header
\code{public static Square fromChar (char ch)}
that, when provided with one of the four legal characters, returns one
of the \class{Square} values.  Any other input can generate an
\class{IllegalArgumentException}.)
