You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Denne oppgaven handler som klasser for kortspill: Card (kort), CardDeck (kortstokk) og CardHand (korthånd), hvorav de to siste inneholder én eller flere Card-objekter.

I mange sammenhenger vil objekter av en klasse inneholde eller "eie" objekter av andre klasser, og de underordnede objektene vil kunne flyttes/overføres mellom de overordnede. Et eksempel er kortspill, hvor kortene starter i kortstokken, fordeles på korthender og til slutt ender i en kortbunke. Et kort kan bare være ett sted om gangen, og må overføres fra ett sted til et annet, f.eks. fra kortstokk til korthender i utdelingsfasen. I denne oppgaven skal du implementere logikk for kortstokk og korthender, både det å fylle opp kortstokken med kort i starten og overføring av kort til korthender. Nedenfor beskrives hver av klassene og metoden disse skal inneholde.

Card-klassen er en såkalt verdiklasse, som kodes slik at objektene ikke kan endres etter at de er opprettet. Et Card-objekt har en kortfarge, som er en av bokstavene 'S' (for spades), 'H' (for hearts), 'D' (for diamonds) og 'C' (for clubs), og tallverdi, som er et heltall mellom 1 (ess) og 13 (konge). Følgende metoder må implementeres:

  • Card(char, int) - konstruktøren initialiserer kortfarge og tallverdi med henholdsvis første og andre argument. Konstruktøren må utløse unntak av typen IllegalArgumentException hvis en (eller begge) av disse verdiene er ugyldige.
  • getSuit() - returnerer kortfargen som en char, en av 'S', 'H', 'D' eller 'C'.
  • getFace() - returnerer tallverdien som en int mellom 1 og 13 (inklusive)

CardDeck-klassen...

  • No labels