Livets spill

Hele eksamen, alle hjelpemidler

Livets spill

I denne oppgaven skal du lage et program som simulerer livssyklusen til celler, altså hvordan celler oppstår, lever og dør, og hvordan én generasjon med celler gir opphav til en ny.

Programmet skal bygges opp som et todimensjonalt rutenett med celler som alle kjenner til sine naboceller. Cellene kan veksle mellom tilstandene levende og død. Celler reproduseres eller dør basert på de fire følgende regler for liv og død:

  • Enhver levende celle med færre enn to levende naboer dør, som ved underpopulasjon.
  • Enhver levende celle med to eller tre naboer lever videre til neste generasjon.
  • Enhver levende celle med flere enn tre levende naboer dør, som ved overpopulasjon.
  • Enhver død celle med akkurat tre levende naboer blir vekket til live, som ved reproduksjon.

Nedenfor oppgavepunktene ser du eksempler på hvordan en generasjon celler blir til neste generasjon celler når reglene ovenfor gjelder.

Programmet skal utvikles som et objektorientert program med nødvendige klasser og metoder. Du kan svare på oppgaven stegvis eller som ett samlet program, akkurat som du selv ønsker. Ta utgangspunkt i disse stegene:

Hjelpemiddelkrav: Krever PC

Lag et spillebrett med et startoppsett av levende og døde celler, såkalt generasjon 0, der hver celle på spillebrettet har 1/3 sjanse til å starte som levende.

Hjelpemiddelkrav: Krever PC

Implementer muligheter for å

endre alle cellene til døde, slik at du får et «tomt» brett

bytte om statusen til en enkeltcelle fra død til levende og omvendt, ved å klikke på den

Hjelpemiddelkrav: Krever PC

Utvid programmet med funksjonalitet som automatisk oppdaterer tilstanden til hver celle i spillebrettet fra gjeldende generasjon til den neste, basert på de fire reglene som er beskrevet ovenfor. Alle cellene skal oppdateres samlet.

Eksempel på startoppsett

Et rutenett med et tilfeldig antall levende og døde celler kan for eksempel se slik ut:

Rutenett med tilfeldig plasserte levende (svarte) og døde (hvite) celler

Levende celler er markert som svart rute og døde celler er markert som hvit rute.

Eksempel 1

Om man starter med følgende levende celler som generasjon 0,

Generasjon 0 med tre levende celler på rad vannrett

vil den etterfølgende serien med generasjoner bli slik:

Generasjon 1 til 5, der de tre cellene veksler mellom å stå loddrett og vannrett

Nedenfor ser du en repeterende GIF som viser hvordan generasjonene gjentar seg:

Animasjon av hvordan de to generasjonene veksler

Eksempel 2

Levende celler er markert som svart rute, døde celler er markert som hvit rute.

Om man starter med følgende levende celler som generasjon 0,

Generasjon 0 med fire levende celler formet som en T

vil den etterfølgende serien med generasjoner bli slik:

Bilder av 10 generasjoner av celler

De siste to generasjonene gjentar seg akkurat som i eksempel 1. Nedenfor ser du en repeterende GIF som viser de 13 første generasjonene (0 til 12) for dette tilfellet:

Animasjon av de 13 første generasjonene

Sensorveiledning

Oppgaven gir til sammen 24 poeng

3,8 poeng

Startoppsett: Det er laget et startoppsett med brett og celler som kan ha tilstand levende eller døde. Levende celler: Cellene genereres med 1/3 sjanse for å være levende ved oppstart.

4,3 poeng

Tomt brett: Alle cellene settes til status død, når brukeren velger det. Veksle status: Det gis uttelling for at celler kan klikkes på og objektet oppfatter det, og at det byttes status.

10 poeng

Traversere: Det gis uttelling for å lage en metode som traverserer alle cellene i brettet. Det stilles ikke krav til hvordan kantcellene håndteres. Finne naboer: Det gis uttelling for å telle opp antall levende naboer til hver celle, eller tilsvarende løsning. Ny status: Det gis uttelling for å finne og ta vare på ny status til hver celle, eller tilsvarende løsning. Oppdatere status: Det gis uttelling for å samlet oppdatere visningen med den nye generasjonen celler.

Objektorientering (6 poeng): Det gis uttelling for at det er benyttet hensiktsmessig objektorientering i implementasjonen.

Forstå oppgaven med en KI

Du får en ferdig tekst du limer inn i den KI-chatboten du bruker. Teksten inneholder oppgaven og en instruks om at chatboten skal hjelpe deg å tenke selv — stille spørsmål, gi ett hint av gangen og la deg gjøre regningen.

Denne oppgaven har ikke løsningsforslag ennå, så chatboten må regne den ut selv. Da kan den ta feil — sjekk svaret nøye.

Hva du bør vite
  • Ingenting sendes herfra. Teksten kopieres bare til utklippstavla på enheten din. Det du limer inn i en chatbot, går til den tjenesten — og de har sine egne regler for hva de lagrer.
  • Ikke lim inn personopplysninger — navn, skole eller noe annet om deg selv eller andre. Oppgaveteksten holder.
  • KI kan ta feil, også i informasjonsteknologi. Sjekk alltid mot løsningsforslaget her på siden.
  • Er du usikker på om du har lov til å bruke KI på skolearbeidet ditt, spør læreren din først.

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som ferdig
S
Vis / skjul løsningsforslag
A
Legg til i liste
N
Skriv notat
Esc
Tilbake / avslutt