Ehtolause, numeromuuttuja

Tehdään esimerkkinä numeromuuttujien käsittelystä klassinen lihapullansyöntihaaste. Pelistä saa muokata myös eettisesti kestävämmän kasvispullansyöntihaasteen.

Lautasella on 10 lihapullaa. Pelaaja saa syödä lihapullia yhden kerrallaan kunnes lautanen on tyhjä tai pelaaja saa tarpeekseen. Aloitetaan peli siis täydeltä lautaselta seuraavasti.

Jos pelaaja syö lihapullan, vähennetään lihapullien määrästä yksi. Näytetään taas lihapullien määrä, annetaan mahdollisuus syödä yksi tai luovuttaa.

Tässä tulee erinomaisesti esille muuttujien hienous. “Syö yksi” -linkki voi johtaa takaisin samaan kappaleeseen, jossa lihapullien määrää vähennetään yhdellä. Meidän ei tarvitse kirjoittaa kuin kaksi kappaletta vaikka lihapullia olisi syötävänä 10, 100 tai vaikka 1000.

Tehdään vielä Luovuta-kappale ennen kuin kokeillaan peliä.

Luovuta -kappaleen kanssa pelin rakenne näyttää tältä.

Kokeillaan peliä. Ensi meillä on 10 lihapullaa.

Kun syö yhden lihapullan, niiden määrä vähenee ihan oikein.

Ongelma tulee kun pelaaja syö yli 10 lihapullaa. Twine jatkaa laskemista negatiivisilla numeroilla eikä huomaa että lautanen on jo tyhjä.

Korjataan tämä ehtolauseella. If-makrolla testataan onko lihapullien määrä nolla eli lautanen tyhjä. Jos lautanen on tyhjä, onnitellaan haasteen voittamisesta ja annetaan mahdollisuus kokeilla uudelleen.

Jos lautanen ei ole vielä tyhjä, Twine näyttää pelaajalle else-makron hakasulkujen sisällä olevan lohkon, joka sisältää aiemmin kirjoittamamme sisällön. Siinä siis näytetään jäljellä olevien lihapullien määrä ja annetaan mahdollisuus syödä tai luovuttaa.

Testataan peliä vielä. Tällä kertaa peli loppuu, kun lautasella ei ole enää lihapullia.

Tässä esimerkissä tehty peli, jota voit kokeilla klikkaamalla tästä, on jo melkein tietokoneohjelmointia. Olet luonut toistorakenteen eli toistoalgoritmin, jota toistetaan haluttu määrä kertoja.