diff -r 244df77507c2 -r 253d1ccb65de cws/resit2.tex --- 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