Versions Compared

Key

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

...

Vi tar i denne oppgaven utgangspunkt i en Card-klassen fra kortoppgaven om objektstrukturer Innkapsling - Card-oppgave. Et Card-objekt har en kortfarge (av typen char) og verdi (int), og sortering gjøres på disse verdiene, ved at en først sorterer på kortfarge og så på verdi. Siden Java har sortering innebygget, så trenger vi ikke bry oss om selve sorteringsalgoritmen, men fokuserer her på logikken for sammenligning av Card-objekter.

Exercise-panelet

Bruk av Exercise-panelet er obligatorisk for denne øvingen. Du må ha panelet åpent med CardComparison.ex-filen (tests > interfacesCardComparison.ex) i før du begynner med oppgaven. For mer informasjon/hjelp, se nederst på forrige side, altså hovedsiden for Øving 6.

Del 1

La Card-klassen implementere Comparable med følgende sammenligningslogikk

...

Skriv testkode som sorterer kort i en liste vha. Collections.sort og Comparable-logikken, så dere ser at det virker som forventet.

Del 2

For å kunne sortere Card-objekter med annen logikk, så kan en bruke grensesnittet Comparator, som er et objekt som kan sammenligne objekter parvise. Implementer en Comparator (dvs. lag en klasse som implements Comparator) kalt CardComparator, som kan konfigureres (stilles inn) til å sortere med ess som høyeste kort og med en bestemt kortfarge som trumf, altså en kortfarge som regnes som høyere enn de andre.

...

Skriv testkode som sorterer kort i en liste vha. Collections.sort og Comparator-logikken, så dere ser at det virker som forventet.

Ekstraoppgave

Utvid CardComparator slik at den kan konfigureres med en annen rangering av kortfargene, f.eks. slik at kløver er høyere enn ruter. Merk at denne fortsatt skal overstyres av evt. trumf. Nytten er altså at en kan endre rangeringsrekkefølgen på alle på én gang.

 

JExercise-testkode for Testkode for del 1 og del 2 finner du her: interfaces/CardComparatorTest.java. Originalkoden (jextest) for testen finner du her: interfaces/CardComparator.jextest.ex for bruk med Exercise-panelet finner du her: CardComparison.ex.

Include Page
Bunntekst for JExercise- oppgaver
Bunntekst for JExercise- oppgaver