Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


PlantUML Macro
class HighscoreList {
	int maxSize
	Collection<Integer> results
	HighscoreList(int)
	int size()
	int getElement(int)
	void addResult(int)
	addHighscoreListListener(HighscoreListListener)
	removeHighscoreListListener(HighscoreListListener)
}

interface HighscoreListListener {
	listChanged(HighscoreList, int)
}
HighscoreList -right-> "*" HighscoreListListener: highscoreListListeners

class HighscoreListProgram {
	HighscoreList highscoreList
	void init()
	void run()
}
HighscoreListListener <|.. HighscoreListProgram

Klassediagrammet viser hvordan klassene henger sammen, og vårt forslag til metoder.

Lag en hovedprogramklasse kalt HighscoreListProgram, som tester at HighscoreList-klassen din virker som den skal. La den opprette en HighscoreList-instans, lese inn tall fra konsollet (f.eks. med en Scanner og nextInt-metoden) og legge disse inn i lista. Sørg for at HighscoreListProgram implementerer HighscoreListListener-grensesnittet og registrerer seg som lytter på HighscoreList-instansen. La lyttermetoden listChanged skrive ut informasjon og resultatene i HighscoreList-instansen og posisjonsargumentet, slik at du ser at alt virker som det skal.

Vi foreslår følgende metoder og oppførsel:

  • void init() - oppretter en ny HighscoreList og registrerer seg selv (altså HighscoreListProgram-instansen) som lytter
  • void run() - leser inn tall (resultater) fra konsollet og legger dem til i listen
  • void listChanged(HighscoreList, int) - observerer endringer i HighscoreList-instansen og skriver ut posisjonsargumentet, samt selve listen, til konsollet

 

Ekstraoppgave

Implementer en HighscoreList som håndterer resultater for TicTacToe, Sokoban, Sudoku eller ditt selvvalgte spill. Etter hvert ferdige spill skal spilleren få mulighet til å legge inn resultatene i en highscore-liste, som består av navn på spilleren og antall trekk. Hvert resultat lagres som et eget objekt, og denne resultatobjektklassen må implementere Comparable-grensesnitt. Resultatene legges inn i highscore-listen, som printes etter at spilleren har fått mulighet til å registrere sitt resultat.


Include Page
Bunntekst for oppgaver
Bunntekst for oppgaver

...