Racket ohjelmointia II. Tiina Partanen 2015

Samankaltaiset tiedostot
Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia II. Tiina Partanen 2015

Bootstrap / HTDP2 / Realm of Racket. Vertailu

Racket ohjelmointia. Tiina Partanen 2014

Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia I

Tiina Partanen. Koodaamassa Matikantunnilla

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

Adafruit Circuit Playground Express

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Alkuun HTML5 peliohjelmoinnissa

KODU. Lumijoen peruskoulu

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje)

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Ohjelmoinnin perusteet Y Python

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Ohjelmoinnin perusteet Y Python

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Lupa opetuskäyttöön pyydettävä. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö

Jypelin käyttöohjeet» Ruutukentän luominen

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

Sukelluskeräily. Pelihahmon liikuttaminen. Aarre ja pisteet

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

OHJELMOINTILAITE 10/50

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Osa 7: Hahmojen ohjelmointi ja hienosäätö

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3

Ampumahiihto. Hiihto. Pelihahmon piirtäminen. Jos tahdot animoida hiihtämisen, Peli muodostuu kahdesta erilaisesta osasta: ensin

Varmista, että seuraavat vaiheet on tehty:

Helppokäyttöisyyttä Windows Vista käyttöjärjestelmän asetuksilla

Labyrintti. Pelihahmon toiminta. Piirrä pelihahmo (älä piirrä esim. sivusta, ettei hahmon tarvitse

Ohjelmoinnin perusteet Y Python

BL40A1810 Mikroprosessorit, harjoitus 1

Ohjelmoinnin perusteet Y Python

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Kodu Ohjeet. Jos päivityksiä ei löydy niin ohjelma alkaa latautumaan normaalisti.

TAMK Ohjelmistotekniikka G Graafisten käyttöliittymien ohjelmointi Herkko Noponen Osmo Someroja. Harjoitustehtävä 2: Karttasovellus Kartta

OHJ-1160 Laaja Ohjelmointi 2

Lähtölaukaus koodaukseen! Arto Hietapelto, kevät Innokas All Rights Reserved

Ohjelmoinnin perusteet Y Python

Jypelin käyttöohjeet» Ruutukentän luominen

Pikaopas KUBO CODING+

Posterin teko MS Publisherilla

1. Taustatietoa näppäimistönkuuntelusta

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen

YLEISTÄ ALOITUS. Laitteen kuvaus. Näytön kuvaus. Laitteen käynnistäminen ja sammuttaminen UP = YLÖS DOWN = ALAS BACK = TAKAISIN

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Scratch ohjeita. Perusteet

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Ohjelmoinnin peruskurssien laaja oppimäärä

Windows 8.1:n vaiheittainen päivitysopas

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi

Harjoitus 2 (viikko 45)

Ohjelmoinnin perusteet Y Python

elearning Salpaus Elsa-tutuksi

Ohjelmoinnin perusteet Y Python

Flash ActionScript osa 4

CROSSTRAINER (Model E 7000P)

Facebook-sivun luominen

Luento 5. Timo Savola. 28. huhtikuuta 2006

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Ohjelmoinnin perusteet Y Python

ES01-KA

Ohjelmoinnin peruskurssien laaja oppimäärä

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Ohjelmoinnin peruskurssien laaja oppimäärä

Laske Laudatur ClassPadilla

Rämpytysralli. Pelikehys sisältää GameObject luokan, Scene luokan, SceneManager luokan, InputListener luokan, StaticImage luokan

eportfolio ammatillisen kasvun ja oman osaamisen kuvaaminen

Jypelin käyttöohjeet» Miten lisään ohjaimet peliin

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Oppitunti 1 Mitä ohjelmointi tarkoittaa?

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

VIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN

Python-ohjelmointi Harjoitus 5

Näin teen uuden kurssialueen (työtilan) moodleen

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

OHJELMOINTIA MONIPUOLISESTI MATEMATIIKAN OPETUKSESSA LUMA-PÄIVÄT, TAMPERE

Luvuilla laskeminen. Esim. 1 Laske

Ohjelmoinnin perusteet Y Python

39DLL by 39ster. Nettipeli Tutorial by Lauri Paavolainen heinäkuuta ) Intro :

Backup Premium Pikakäyttöopas

Harjoitus 4 (viikko 47)

Opetussuunnitteluprosessi WebOodissa - OpasOodi

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

Transkriptio:

Racket ohjelmointia II Tiina Partanen 2015

Sisältö 1) Peli I Yksinkertainen peli, jossa kerätään kohteita ja väistellään vaaroja Pitkälle viety koodi, johon täydennetään vain puuttuvat palat Ei tarvita tietorakenteita Koodi Bootstrap-projektilta 2) Peli II Peli, jota voi laajentaa kuinka paljon tahansa Vaatii tietorakenteiden hallitsemisen 2

Peli I : Tuunaa peligrafiikat Lataa Peli_1.zip ja pura se kotihakemistoosi Tuunaa peligrafiikat TITLE TITLE-COLOR BACKGROUND DANGER TARGET PLAYER define Testaa pelin ulkonäkö REPL:ssä: > SCREENSHOT

Peli I: Ohjelmoi kohteen ja vaaran liike Täydennä koodia niin, että kohde (TARGET) ja vaara (DANGER) liikkuvat Valitse suunta (oikealta vasemmalle tai päinvastoin) (define (update-danger x) x) + - * / (define (update-target x) x) 4

Peli I: Palauta ne takaisin ruudulle Täydennä koodia niin, että huomataan milloin kohde tai vaara ovat menneet ruudun ulkopuolelle (define (safe-left? x) true) >, <, <=, >=, =, and, or (define (safe-right? x) true) (define (onscreen? x) true) 5

Peli I: Liikutellaan hahmoa nuolinäppäimillä Täydennä koodia niin, että pelihahmo reagoi nuolinäppäimiin up ja down (define (update-player y key) y) (cond [(..)(..)] [else..]) 6

Peli I: Tutkitaan törmääkö hahmo johonkin Täydennä koodia niin, että saadaan selville onko hahmo riittävän lähellä vaaraa tai kohdetta (define (line-length a b) 0) (define (distance px py cx cy) 0) (define (collide? px py cx cy) false) sq, sqrt, abs, <=, >= 7

Peli I: Animaatio etäisyyden laskemista varten Jotta oppilaille on helpompi selvittää mitä linelength ja distance-funktiot oikein laskevat voit aktivoida animaation kirjoittamalla: (define *distances-color* "yellow") 8

Peli II Jos haluaa tehdä minkä tahansa pelin on opeteltava tietorakenteiden käyttö (struct) sekä peliä pyörittävän big-bang:in käyttö Ufo-animaatio on hyvä alku harjoittelulle 9

Määrittele peligrafiikat #lang racket (require 2htdp/image) (require 2htdp/universe) (define LEVEYS 500) (define KORKEUS 300) (define KENTTÄ (empty-scene LEVEYS KORKEUS)) (define UFO ) (define ASKEL 5) (define YLÄREUNA 0) (define ALAREUNA KORKEUS) (define VASENREUNA 0) (define OIKEAREUNA LEVEYS) Kuvan lisääminen DrRacket:ssä: Valitse Insert Insert image Lataa ufokuva tästä. 10

Tilamuuttujat? Miten ufo saadaan menemään ylös, alas, vasemmalle ja oikealle? Tarvitaan tietorakenne, johon voidaan tallentaa sekä x että y-koordinaatit. Sijainti x y

Sijainti - struct MÄÄRITELLÄÄN TIETORAKENNE: (define-struct sijainti (x y)) LUODAAN TIETORAKENNE ja tallennetaan lähtötilanne: (define LÄHTÖ (make-sijainti (/ LEVEYS 2) sijainti (/ KORKEUS 2))) LÄHTÖ 250 0

Piirrä-peli Kirjoita funktio, joka pelin tilanteen ruudulle ;; piirrä-peli : sijainti kuva -> kuva (define (piirrä-peli tila) (place-image UFO (sijainti-x tila) (sijainti-y tila) KENTTÄ))

Päivitä-peli Kirjoita funktio, joka päivittää pelin tilanteen (sen mitä tapahtuu automaattisesti) ;; päivitä-peli : sijainti -> sijainti (define (päivitä-peli tila) (make-sijainti (sijainti-x tila) (+ (sijainti-y tila) ASKEL)))

Hoida-näppäimet Jotta ufoa voi ohjata näppäimillä oikealle ja vasemmalla, tarvitsemme funktion, joka hoitaa näppäimen painallukset Cond-rakenteella koodi saadaan haarautumaan ;; hoida-näppäimet : sijainti merkkijono -> sijainti (define (hoida-näppäimet tila näppäin) (cond [(key=? näppäin up ) (make-sijainti (sijainti-x tila) [(..) (..)] [else tila])) (- (sijainti-y tila) ASKEL))] 15

Lopeta? Nyt kun ufo leijuu, se pitää saada pysymään ilmassa niin, ettei se kosketa mihinkään seinään. Lopetusehdon voi laatia käyttämällä loogista operaattoria or. (define (lopeta? tila) (define x (sijainti-x tila)) (define y (sijainti-y tila)) (or (<= x YLÄREUNA) (>= x ALAREUNA) (<= y VASENREUNA) (>= y OIKEAREUNA))) Lokaalit apumuuttujat tekevät koodista luettavampaa.

Animaatiot ja pelit (big-bang) big-bang funktio mahdollistaa interaktiiviset pelit ja animaatiot. Se kutsuu ohjelmoijan itsensä kirjoittamia funktioita, kun jotakin tarvitsee tehdä. (big-bang LÄHTÖ (to-draw..) (on-tick..) (on-key..) (stop-when..)) piirrettävä näytölle aika kuluu käyttäjä painoi näppäintä lopetusehto

2htdp/universe : big-bang (on-tick..) big-bang (on-key..) (to-draw..) (stop-when..)

Omat funktiot liitetään bigbang:iin lähtötila (big-bang LÄHTÖ (to-draw piirrä-peli) (on-tick päivitä-peli) (on-key hoida-näppäimet) (stop-when lopeta?)) (define (piirrä-peli tila )..) (define (päivitä-peli tila )..) (define (hoida-näppäimet tila key)..) (define (lopeta? tila )..)

Lisää harjoituksia Koodauksen ABC - blogi http://koodauksenabc.blogspot.fi Blogin kautta jaossa materiaalia: DrRacket - piirtäminen DrRacket - animaatio Opettajien Racket-kurssi osa 1 Opettajien Racket-kurssi osa 2 20

Koodausta kouluun Koodausta kouluun projektissa on tarkoitus tehdä oppimateriaalia ohjelmoinnin opettamiseen peruskoulussa (matematiikan ehdoilla) Haluatko olla mukana ideoimassa tai testaamassa, tai kaipaatko apua Racket-ohjelmointiin? Liity Koodausta kouluun facebook ryhmään se on sinua varten! 21