16 hlabelformat=\arabic{ranklabel}, |
16 hlabelformat=\arabic{ranklabel}, |
17 vlabelformat=\arabic{filelabel}} |
17 vlabelformat=\arabic{filelabel}} |
18 |
18 |
19 \mbox{}\\[-18mm]\mbox{} |
19 \mbox{}\\[-18mm]\mbox{} |
20 |
20 |
21 \section*{Coursework 8 (Scala)} |
21 \section*{Part 8 (Scala)} |
22 |
22 |
23 \mbox{}\hfill\textit{``The problem with object-oriented languages is they’ve got all this implicit,}\\ |
23 \mbox{}\hfill\textit{``The problem with object-oriented languages is they’ve got all this implicit,}\\ |
24 \mbox{}\hfill\textit{environment that they carry around with them. You wanted a banana but}\\ |
24 \mbox{}\hfill\textit{environment that they carry around with them. You wanted a banana but}\\ |
25 \mbox{}\hfill\textit{what you got was a gorilla holding the banana and the entire jungle.''}\smallskip\\ |
25 \mbox{}\hfill\textit{what you got was a gorilla holding the banana and the entire jungle.''}\smallskip\\ |
26 \mbox{}\hfill\textit{ --- Joe Armstrong (creator of the Erlang programming language)}\medskip\bigskip |
26 \mbox{}\hfill\textit{ --- Joe Armstrong (creator of the Erlang programming language)}\medskip\bigskip |
27 |
27 |
28 \noindent |
28 \noindent |
29 This coursework is about searching and backtracking. You are asked to |
29 This part is about searching and backtracking. You are asked to |
30 implement Scala programs that solve various versions of the |
30 implement Scala programs that solve various versions of the |
31 \textit{Knight's Tour Problem} on a chessboard. The preliminary part is |
31 \textit{Knight's Tour Problem} on a chessboard. The preliminary part is |
32 due on \cwEIGHT{} at 4pm; the core part is due on \cwEIGHTa{} at 4pm. |
32 due on \cwEIGHT{} at 4pm; the core part is due on \cwEIGHTa{} at 4pm. |
33 Note the core, more advanced, part might include material you have not |
33 Note the core, more advanced, part might include material you have not |
34 yet seen in the first three lectures. \bigskip |
34 yet seen in the first three lectures. \bigskip |
157 setpieces={Ng7, Nb2}, |
157 setpieces={Ng7, Nb2}, |
158 boardfontsize=12pt,labelfontsize=9pt]} |
158 boardfontsize=12pt,labelfontsize=9pt]} |
159 |
159 |
160 \subsection*{Reference Implementation} |
160 \subsection*{Reference Implementation} |
161 |
161 |
162 This Scala assignment comes with three reference implementations in form of |
162 This Scala part comes with three reference implementations in form of |
163 \texttt{jar}-files. This allows you to run any test cases on your own |
163 \texttt{jar}-files. This allows you to run any test cases on your own |
164 computer. For example you can call Scala on the command line with the |
164 computer. For example you can call Scala on the command line with the |
165 option \texttt{-cp knight1.jar} and then query any function from the |
165 option \texttt{-cp knight1.jar} and then query any function from the |
166 \texttt{knight1.scala} template file. As usual you have to |
166 \texttt{knight1.scala} template file. As usual you have to |
167 prefix the calls with \texttt{CW8a}, \texttt{CW8b} and \texttt{CW8c}. |
167 prefix the calls with \texttt{CW8a}, \texttt{CW8b} and \texttt{CW8c}. |