Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

in exercises w05, encourage students to try Pos.moved and reflect over results #679

Merged
merged 4 commits into from
Oct 1, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions compendium/modules/w05-classes-exercise.tex
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@
scala> p.moved(0,1)
val res1: blockbattle.Pos = Pos(1,3)
\end{REPL}
Testa även att anropa \code{moved} på klassnamnet, t.ex. \code{Pos.moved(0,1)}. Fungerar detta? Varför/varför inte? Hur skiljer sig anrop till metoder i singelobjekt respektive klassinstanser?

\Subtask Under laborationen är det smidigt att kunna representera vilka tangenter som motsvarar de olika riktningar som en användare kan styra sin mullvad i. Gör klart case-klassen \code{KeyControl} enligt nedan så att den fungerar enligt efterföljande REPL-tester. Metoden \code{direction} ska ge ett delta-steg i rätt \code{(x, y)}-riktning för ett givet tangentnamn. Metoden \code{has} ska ge \code{true} om tangentnamnet finns i någon av de fyra riktningstangenterna i denna denna \code{KeyControl}-instans, annars \code{false}.
\scalainputlisting[basicstyle=\ttfamily\fontsize{10}{12}\selectfont]{../workspace/w06_blockbattle/KeyControl.scala}
Expand Down Expand Up @@ -444,6 +445,8 @@

\TaskSolved \what Denna uppgift är laborationsförberedelse. Utvärdera dina lösningar genom egna tester i REPL.

\SubtaskSolved Det går inte att anropa \code{Pos.moved(0,1)}. Anledningen till detta är att \code{moved} inte existerar i kompanjonsobjektet \code{Pos}, därav felmeddelandet ''value \code{moved} is not a member of object \code{Pos}''. För att anropa en metod definierad inuti en klass måste man göra anropet på en instans av klassen.

\QUESTEND


Expand Down