From 3eed93640ee61584583a82766321cffaf3233baa Mon Sep 17 00:00:00 2001 From: EliasAAradsson Date: Thu, 31 Oct 2024 21:40:19 +0100 Subject: [PATCH] Fine tune exercise 5.8 and add me to contributors "Fine tune" includes fixing all compilation errors in task 5.8 and small tweaks of LaTex. Code is tested and runs fine. --- compendium/modules/w05-classes-exercise.tex | 20 ++++++++++---------- contributors.tex | 3 ++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/compendium/modules/w05-classes-exercise.tex b/compendium/modules/w05-classes-exercise.tex index e1cf8964..93244751 100644 --- a/compendium/modules/w05-classes-exercise.tex +++ b/compendium/modules/w05-classes-exercise.tex @@ -567,20 +567,20 @@ //> using dep "se.lth.cs::introprog:1.4.0" package graphics -import introprog.PixelWindow -import java.awt.Color - -extension def toPixels(p: Point): Seq[Int] = - Seq(point.x.round.toInt, point.y.round.toInt) +extension (p: Point) def toPixels: Seq[Int] = + Seq(p.x.round.toInt, p.y.round.toInt) class PolygonWindow: + import introprog.PixelWindow + import java.awt.Color + val black = Color(0, 0, 0) val coolGreen = Color(0, 255, 111) val width = 500 val height = 500 val window = - PixelWindow(width, height, title = "Polygons", + PixelWindow(width, height, title = "Polygons", background = black, foreground = coolGreen) def draw(polygon: Polygon): Unit = @@ -591,13 +591,13 @@ window.line(from(0), from(1), to(0), to(1), lineWidth = 2) \end{Code} -Skapa en case-klass vid namn \code{Polygon} men en parameter \code{points: Vector[Point]} och ett attribut \code{val nbrOfCorners: Int}. Case-klassen \code{Polygon} ska också ligga i paketet \code{graphics}. +Skapa en case-klass vid namn \code{Polygon} med en parameter \code{points: Vector[Point]} och ett attribut \code{val nbrOfCorners: Int}. Case-klassen \code{Polygon} ska också ligga i paketet \code{graphics}. Likt klassen \code{Point} ovan ska också \code{Polygon} ha ett kompanjonsobjekt. -Kompanjonsobjektet ska ha en metod som skapar en regelbunden polygon vid namn \code{regular} med följande parametrar: \code{nbrOfCorners: Int, radius: Double, midPoint: Point}\\ +Kompanjonsobjektet ska ha en metod \code{regular} som skapar en regelbunden polygon. Metoden ska ha följande parametrar: \code{nbrOfCorners: Int, radius: Double, midPoint: Point}\\ Fundera över hur case-klassen \code{Polygon} och dess kompanjonsobjekt ska se ut för att koden ovan i \code{PolygonWindow} ska fungera som tänkt. Testa att allt fungerar i REPL. -\Subtask Kan man använda metoden \code{regularPolygon} för att rita cirklar? Kan man använda \code{Polygon} för att representera oregelbundna polygoner? +\Subtask Kan man använda metoden \code{regular} för att rita cirklar? Kan man använda \code{Polygon} för att representera oregelbundna polygoner? Testa i REPL. \SOLUTION @@ -646,7 +646,7 @@ Även en oregelbunden polygon går att skapa. Använd då konstruktorn till \code{Polygon} direkt. Till exempel likt nedan. \begin{REPL} scala> val irregular = - Polygon(Vector(Point(34,83), Point(16,42), Point(77,77), Point(100,138))) + Polygon(Vector(Point(1,8), Point(33,14), Point(99,87), Point(42,56))) scala> window.draw(irregular) \end{REPL} diff --git a/contributors.tex b/contributors.tex index 6bbfb0b2..a896ec38 100644 --- a/contributors.tex +++ b/contributors.tex @@ -1,7 +1,7 @@ % LIST OF CONTRIBUTORS to https://github.com/lunduniversity/introprog % Please contact bjorn.regnell@cs.lth.se if you think you should be % on this list, or make a pull request with an update of file briefly -% describing your contribtion in the commit text. +% describing your contribution in the commit text. % This work is licenced under CC-BY-SA-4.0. %!TEX encoding = UTF-8 Unicode %!TEX root = compendium/compendium.tex @@ -18,6 +18,7 @@ Casper Schreiter, Cecilia Lindskog, Dag Hemberg, +Elias Åradsson, Elliot Bräck, Elsa Cervetti Ogestad, Emelie Engström,