Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Oppgave a) - Felt og konstruktører (6 poeng)En Dice-instans skal ha informasjon om (verdien til) et visst antall terningerog en poengverdi(score). Terning-verdiene settes ved initialisering (på ulike måter), mens poengverdien kan settes ved initialisering eller senere. Skriv kode for felt og konstruktører, samt metoden randomDieValuesiht. API-beskrivelsen. Bruk random-metoden i Math-klassen, som er beskrevet som følger: public static double random() Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range.
Oppgave b) - Dice som tekst (8 poeng)Skriv standardmetodensom brukes for å lage en tekstlig representasjon av et Dice-objekt på formatet som er angitt i API-beskrivelsen. Skriv også valueOf-metoden, som brukes for å lage et nytt Dice-objekt med spesifikke terningverdier og evt. en poengverdi fra en Stringpå samme format.
Formatet er "[t1, t2,... tn]=poeng", hvor t1- tner terningverdier og poeng er poengverdien. Poeng-delen, altså " =poeng" skal ikke være med hvis poeng er -1 (ennå ikke satt). Eksempel: Hvis et Dice-objekt har terningverdiene 1, 1 og 3 og poengene ikke er satt (= -1), så vil den tekstlige representasjonen være "[1, 1, 3]". Dersom terningene er tre 6-ere som har gitt 600 poeng, så vil teksten være "[6, 6, 6] = 600".
Oppgave c)- Terningverdier (5 poeng)Skriv metodene getDieCount, getDieValueog getValueCountiht. API-beskrivelsen.
Oppgave d)
Oppgave e)
Oppgave f)
Oppgave d) - Poeng (score) (3 poeng)Skriv metodene getScoreog setScore iht. API-beskrivelsen.
Oppgave e) - Iterable (3 poeng)Dice-klassen implementerer Iterable<Integer>-grensesnittet. Implementer metoden(e) som da er nødvendig. Skriv også kode som eksemplifiserer hvordan man ved bruk av Dicekan dra nytte av at den implementerer nettopp dette grensesnittet.
Oppgave f) - add og remove (8 poeng)Skriv metodene add og remove, som alle tar et Dice-objekt som eneste argument. Merk at ingen av disse endrer på verken this-objektet eller argumentet, og poengverdien(e) benyttes ikke.
Her er noen eksempler på bruken av disse metodene, hvor tekst-formatet i API-beskrivelsen brukes for å representere Dice-objekter: [1, 2].add([1, 4]) returnerer [1, 2, 1, 4] // merk at rekkefølgen ikke spiller noen rolle [1, 1, 2].remove([1, 4]) gir [1, 2] // merk at rekkefølgen ikke spiller noen rolle Merk at remove ikke har samme logikk som Collectionsin removeAll-metode.
|
Expand | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
Oppgave a)
Oppgave b)
Oppgave c)
Oppgave d)
Oppgave e)
Oppgave f)
|
Expand | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
Oppgave a)
Oppgave b)
Oppgave c)
Oppgave d)
Oppgave e)
Oppgave f)
|