Kun pacmanin liikuttelu oli saatu hanskaan, ryhdyimme yhdessä miettimään miten olisi mahdollista tehdä pacman, joka voisi liikkua vapaasti sekä ylös, alas, vasemmalle että oikealle. Nythän se oli mahdollista vain yhteen suuntaan kerrallaan. Mitä tietoja tilaan pitäisi tallentaa x-koordinaatin lisäksi?
Mitä tietoa pitää tallentaa? |
Oppilaat löysivät helposti y-koordinaatin, mutta vaikeampaa oli jo tajuta, että myös suunta, johon pacman on liikkumassa pitäisi olla tallessa tilamuuttujana.
Tästä pääsimmekin hyvin siihen, että nämä kolme tietoa pitäisi saada tallennettua yhteen "säiliöön" joten esittelin heille tietorakenteen nimeltä struct.
Tallensimme tiedot sijainti-nimiseen structiin |
Aloitimme helpoimmaista päästä. Teimme definellä ensin LÄHTÖ-nimisen structin, johon tallensimme pacmanin lähtötilan.
(define LÄHTÖ (make-sijainti 0 0 OIKEALLE))
Myöskään piirrä-pacman - funktiota ei ollut vaikea muuttaa, muutimme sen ottamaan suunnan, x- ja y-koordinaatin ulos tila - muuttujasta
;; piirrä-pacman : sijainti -> kuva
(define (piirrä-pacman tila)
(place-image
(anna-pacman (sijainti-suunta tila))
(sijainti-x tila)
(sijainti-y tila)
KENTTÄ))
Suurin työmaa olikin sitten siirrä-pacman - funktion muutoksissa. Vaikka siinä käytettiin "vanhaa tuttua" cond:ia, ehdimme tehdä vain ensimmäisen ehdon kuntoon, ja osalla jäi vielä bugeja koodiin korjattavaksi seuraavalla kerralla.
Pacmanin toimintalogiikka |
Seuraavalla kerralla pääsemme ehkäpä liikuttelemaan pacmania jo nuolinäppäimillä?
Ei kommentteja:
Lähetä kommentti