--- a/cws/resit2.tex Sun Sep 15 12:57:59 2024 +0100
+++ b/cws/resit2.tex Mon Jul 21 16:38:07 2025 +0100
@@ -52,9 +52,9 @@
\noindent
You are asked to implement a Scala program for playing the Shogun
-board game. The deadline for your submission is on 26th July at
+board game. The deadline for your submission is on 31th July at
16:00. Make sure you use \texttt{scala-cli} and Scala version \textbf{3.XX}
-for the resit---the same version as during the lectures. \medskip
+for the resit. \medskip
\IMPORTANTNONE{}
@@ -115,7 +115,7 @@
above. What sets Shogun apart from chess and checkers is that each
piece has, what I call, a kind of \textit{energy}---which for pawns is
a number between 1 and 4, and for kings between 1 and 2. The energy
-determines how far a piece has to move. In the physical version of
+determines how far a piece can move. In the physical version of
Shogun, the pieces and the board have magnets that can change the
energy of a piece from move to move---so a piece on one field can have
energy 2 and on a different field the same piece might have energy
@@ -136,7 +136,7 @@
\begin{itemize}
\item The energy of a piece determines how far, that is how many
- fields, a piece has to move (remember pawns have an energy between 1 --
+ fields, a piece can move (remember pawns have an energy between 1 --
4, kings have an energy of only 1 -- 2). The energy of a piece might
change when the piece moves to new field.
\item Pieces can move in straight lines (up, down, left, right), or in
@@ -251,7 +251,7 @@
Useful functions about pieces and boards are defined at the beginning
of the template file. The function \texttt{.map} applies a function to
-each element of a list or set; \texttt{.flatMap} works like
+each element of a list or a set; \texttt{.flatMap} works like
\texttt{map} followed by a \texttt{.flatten}---this is useful if a
function returns a set of sets, which need to be ``unioned up''. Sets
can be partitioned according to a predicate with the function
@@ -317,8 +317,8 @@
case object D extends Move // down
case object R extends Move // right
case object L extends Move // left
-case object RU extends Move // ...
-case object LU extends Move
+case object RU extends Move // right-up
+case object LU extends Move // ...
case object RD extends Move
case object LD extends Move
case object UR extends Move