Simulering
Å la et system utvikle seg steg for steg etter faste regler: for hvert steg regner du ut neste tilstand ut fra den nåværende. Game of Life og spredning av skogbrann er klassiske rutenett-simuleringer. Neste generasjon må bygges i et nytt rutenett, ikke endres på plass.
Slik kan du tenke om det
- Alle ser det samme fotografiet I hvert steg bestemmer alle cellene sin neste tilstand ut fra det samme gamle rutenettet, som om de ser på ett felles fotografi. Derfor leser du fra det gamle og skriver til et nytt, og bytter først når alle er ferdig beregnet. Endrer du på plass, smitter endringene videre i samme steg.
Vanlige feil
- Du oppdaterer rutenettet mens du regner Du tror du kan endre cellene i rutenettet etter hvert som du går gjennom dem. Men når du teller naboer, bruker du da noen celler som allerede er oppdatert til neste generasjon og noen som fortsatt er gamle — og resultatet blir feil. Du må regne ut HELE neste generasjon i et nytt rutenett, og først bytte til det når alle cellene er ferdig beregnet.
Øv på dette
- Finn feilen: blinkeren som ikke blinker
- Øving: tell levende naboer
- Sjekk: hva teller midtcella?
- Neste generasjon: oppdater på plass eller bygg nytt?
- Flom: når er alt under vann?
- Begrepssjekk: Rutenett-simulering
- Lage: en skogbrann-simulering
- Diskuter: hvorfor nytt rutenett og én klasse?
- Prosjekt: skogbrannen
- Fra tom fil: epidemi i rutenettet
- Fra tom fil: trafikk-kø på en ringvei
- Fra tom fil: skogplanting og hogst