UU | IT | OOP med Java våren 2025 Uppgifter
Uppgift 1 - Perpetum Mobile
Denna obligatoriska uppgift består av att modifiera ett existerande javaprogram. Kopiera först det aktuella programmet
BallWorld.java
till din egen dator.Beroende på din dator och annat kan det ibland bli strul med teckenkodningen så att de svenska bokstäverna inte blir rätt. I så fall kan du prova att högerklicka och välja "spara länk som ... ". Det kan också hjälpa att använda denna version av programmet:
BallWorld.java
(utf-8, för Mac).Alla ändringar ska göras i samma program—du behöver inte lämna in separata program för de olika deluppgifterna.
Du har väl läst den allmänna informationen om inlämningsuppgifter?
Deluppgift 1 — Fikapaus
Kompilera programmet medjavac BallWorld.java
och provkör det medjava BallWorld
. Beskriv med några få ord vad som händer.Deluppgift 2 — Färgblindhet
Byt färg på bollen (till t.ex. vit) utan att ändra i konstruktornBall()
där standardfärgen sätts. Däremot behöver du göra ett anrop till en metod som sätter färgen för en boll. Vilket anrop och var i koden den skall utföras ska du lista ut själv. Beskriv med några få ord vilka ändringar du gjorde.Deluppgift 3 — Fängslande
En "bounding box" är en rektangel som anger gränserna i vilken bollen studsar inom. Om du ändrar storleken på fönstret upptäcker du att området inom vilket bollen studsar är oförändrat. MetodenwasResized()
anropas då fönsterstorleken ändras. ModifierawasResized()
så att "bounding boxen" ändras till dess rätta storlek. Titta på andra ställen i koden för att få en uppfattning vilken metod som avses och hur den ska användas. Beskriv vilka ändringar du gjorde.Deluppgift 4 — Storlek
I klassenBall
finns metoder för att ändra färg respektive "bounding box", men det finns ingen metod för att sätta bollens storlek (diameter). Tillfoga en sådan metod och använd den sedan för att ändra storleken på bollen. Beskriv vilka ändringar du gjorde.Deluppgift 5 — Dubbelt så många
Lägg in en extra boll med annan färg, storlek och hastighet så att det finns totalt två bollar som studsar. Beskriv vilka ändringar du gjorde.Deluppgift 6 — Pulsarer
Låt bollarna omväxlande växa och krympa. För detta behöver du bestämma minimistorlek samt maximistorlek för bollar (dessa gränser väljs med förstånd). Du måste också lägga till en instansvariabel i klassen Ball som anger om bollen just nu krymper eller växer. Denna variabel ska vara av typenboolean
. Vidare behöver du kod som växlar variabelns värde då bollen når sin minimistorlek och maximistorlek.Modifiera metoden
action()
så att bollen får den pulserande egenskapen. Beskriv vilka ändringar du gjorde.