Peliohjelmointia

Materiaalit on lisensoitu Creative Commons BY-SA-lisenssillä, joten voit levittää niitä vapaasti, kunhan alkuperäisten tekijöiden nimiä ei poisteta. Jos teet muutoksia materiaaliin ja haluat levittää muunneltua versiota, se täytyy lisensoida samanlaisella vapaalla lisenssillä.

Alkuperäiset tekijät (2011, 2012): Emilia Hjelm, Antti Laaksonen, Pekka Mikkola, Arto Vihavainen

Osa 1: Grafiikka

Tehtäviä piirtämiseen

  1. Tee ohjelma, joka piirtää vihreän neliön.
  2. Tee ohjelma, joka piirtää talon. Talon runko on vihreä, mutta katto punainen.
  3. Tee ohjelma, joka piirtää auton. Saat itse päättää autossa käytetyt värit.

Tehtäviä omiin kuviin liittyen

  1. Piirrä peliisi sopiva pelihahmo ja tee ohjelma, joka näyttää sen ikkunassa.
  2. Piirrä myös toinen pelihahmo, ja lisää se edelliseen ohjelmaasi. Mitä tapahtuu, jos pelihahmot osuvat toistensa päälle?
  3. Piirrä pelille taustakuva. Ohjelmoi taustakuvan ja pelihahmojen piirtäminen siten, että hahmot eivät jää taustakuvan taakse piiloon.

Osa 2: Ohjelmointi

Tehtäviä muuttujiin ja syötteen lukemiseen liittyen

  1. Tee ohjelma, joka kysyy käyttäjältä nimen. Tämän jälkeen ohjelma kysyy käyttäjältä kaksi lukua. Lopuksi ohjelma tulostaa viestin, jossa tervehditään käyttäjää ja kerrotaan annettujen lukujen summa.
Mikä on nimesi? Arto
Anna ensimmäinen luku: 4
Anna toinen luku: 8

Hei Arto, antamiesi lukujen summa on 12

Tehtäviä vertailemiseen liittyen

  1. Tee ohjelma, joka laskee käyttäjän antamat kaksi lukua yhteen. Jos lukujen summa on pienempi kuin 100, ohjelma tulostaa "niukasti". Jos lukujen summa on suurempi tai yhtäsuuri kuin 100, ohjelma tulostaa "rutkasti".
  2. Tee ohjelma, joka kysyy käyttäjältä lukua. Jos luku on parillinen, käyttäjälle näytetään ikkuna, jossa on vihreä neliö. Jos luku on pariton, käyttäjälle näytetään ikkuna, jossa on sininen neliö. Voit tarkistaa onko luku pariton jakojäännöksen avulla. Esim. if luku % 2 == 0:.
  3. Tee ohjelma, joka kysyy käyttäjältä vuosilukua, ja kertoo onko se karkausvuosi. Vuosiluku on karkausvuosi, jos se on jaollinen neljällä tai neljälläsadalla, mutta ei sadalla.

Tehtäviä toistamiseen liittyen

  1. Tee ohjelma, joka tulostaa luvut yhdestä sataan.
  2. Tee ohjelma, joka tulostaa luvut sadasta yhteen.
  3. Tee ohjelma, joka tulostaa kysyy käyttäjältä kahta lukua, ja tulostaa kaikki niiden välillä olevat luvut.
  4. Tee ohjelma, joka tulostaa kysyy käyttäjältä kahta lukua, x- ja y-koordinaattia, ja piirtää 50 pikseliä leveän ja korkean neliön käyttäjän antamaan koordinaattiin.
  5. Tee ohjelma, joka tulostaa kysyy käyttäjältä kahta x-koordinaattia. Ohjelma piirtää 50 pikseliä korkean ja leveän neliön, joka siirtyy käyttäjän antamien x-koordinaattien välillä yksi pikseli kerrallaan.

Tehtäviä listarakenteisiin

  1. Tee ohjelma, joka lisää luvut yhdestä sataan listarakenteeseen. Tulosta tämän jälkeen listasta kaikki parittomat luvut.
  2. Tee ohjelma, joka kysyy käyttäjältä kysyttävien lukujen määrää. Tämän jälkeen ohjelma kysyy käyttäjältä halutun määrän lukuja, ja tallentaa jokaisen niistä listaan. Tulosta luvut lopuksi.
  3. Tee ohjelma, joka kysyy käyttäjältä kysyttävien lukujen määrää. Tämän jälkeen ohjelma kysyy käyttäjältä halutun määrän lukuja, ja tallentaa jokaisen niistä listaan. Tulosta lopuksi listarakenteen pienin ja suurin luku.
  4. Tee ohjelma, joka kysyy käyttäjältä hahmon x- ja y-koordinaatteja, tallentaa annetut x- ja y-koordinaatit listarakenteeseen, ja piirtää käyttäjän antamaan sijaintiin vihreän ympyrän, jonka säde on 10.
  5. Tee ohjelma, joka tulostaa kysyy käyttäjältä kahden eri ympyrän x- ja y-koordinaatteja, ja piirtää ympyrät. Piirrä toinen ympyrä vihreänä, ja toinen punaisena, ja käytä ympyröiden koordinaattien tallentamiseen listoja.

Tehtäviä funktioita varten

  1. Tee funktio kolmen_summa, joka laskee kolmen luvun summan, ja tulostaa sen. Testaa funktiota pääohjelmafunktion avulla.
  2. Tee funktio tulosta_lista, joka saa parametrina listan, ja tulostaa sen sisällön.
  3. Tee funktio piirra_nelio, joka piirtaa nelion. Neliön leveys ja korkeus on 100, ja sen vasen yläkulma on pisteessä [15, 50].
  4. ...
        # piirtää neliön
        piirra()
    ...
    
  5. Tee funktio piirra, joka saa parametrina listan, jossa on x- ja y-koordinaatit. Funktio piirtää ympyrän annettuihin koordinaatteihin.
  6. ...
        # piirtää ympyrän annettuun koordinaattiin
        piirra([33, 15])
    ...
    

Osa 3: Pelin rakentaminen

Pelit koostuvat käytännössä aina kolmesta osasta. Kontrollista, eli käyttäjän syötteiden lukemisesta, logiikasta, eli pelin tilanteen päivittämisestä, sekä piirtämisestä, eli pelin piirtämisestä ja näyttämisestä käyttäjälle. Jokaiselle näille kannattaa rakentaa oma funktio.

Tehtäviä pelirunkoa varten

  1. Tee hahmo pelirunkoa varten.
  2. Muuta peliä siten, että hahmo liikkuukin vasemmalle. Nappi vasemmalle liikkumiselle on pygame.K_LEFT.

Tutkitaan seuraavaksi hieman tarkem seuraavaksi kontrolliin hieman tarkemmin.

Tehtäviä näppäimistön käsittelyyn liittyen

  1. Lisää pelirungon pelille mahdollisuus hahmon kaikkiin suuntiin liikuttamiselle.
  2. Lisää peliin toinen hahmo.
  3. Lisää mahdollisuus toisen hahmon liikuttamiseen. Toista hahmoa voi liikuttaa näppäimillä w, a, s, ja d. Huomaa että joudut lisäämään myös pelirungon funktioille parametreja.

Tehtäviä animaatioon liittyen

  1. Lisää pelirunkoon kuva, joka liikkuu jatkuvasti vasemmalta oikealle.
  2. Lisää pelirunkoon tausta, joka liikkuu jatkuvasti vasemmalta oikealle.
  3. Lisää pelirunkoon hahmo, joka liikkuu jatkuvasti vasemmalta oikealle. Hahmoon liittyy kaksi erillistä kuvaa, ja niiden näyttämistä tulee vaihdella.

Tehtäviä hiiren käsittelyyn liittyen

  1. Toteuta ohjelma, joka tulostaa aina print-komennolla kohdan, jossa hiirtä on klikattu.
  2. Toteuta ohjelma, jossa hiirellä klikataan kuvaa. Aina kun hiiren klikkaus osuu kuvaan, print-komennolla tulostetaan "Osui!", muulloin tulostetaan "Ei osunut!"

Tehtäviä tekstin piirtämiseen liittyen

  1. Toteuta ohjelma, jossa on vasemmassa ylälaidassa teksti "Pisteet: ".
  2. Muuta ohjelmaa siten, että tekstiin "Pisteet: " lisätään pisteiden lukumäärä, esimerkiksi "Pisteet: 42". Pisteiden tulee kasvaa kerran sekunnissa.

Tehtäviä ääneen ja musiikkiin liittyen

  1. Toteuta ohjelma, jossa soitetaan valitsemasi ääni hiirtä klikattaessa.
  2. Lisää ohjelmaasi taustamusiikki, eli kappale jota toistetaan uudestaan ja uudestaan.

Osa 4: Lisätietoa

Linkkejä

Esimerkkejä