KOHTI PELIÄ

Tässä osiossa opetellaan toteuttamaan joitakin peleissä tärkeitä asioita Pythonilla.

Satunnaisuus

Saatat muistaa Scratch-kerhosta, miten esimerkiksi vihollisia voi Scratchilla sijoittaa satunnaisesti pelikentälle. Nyt opetellaan Pythonilla satunnaisluvun generoiminen valmista funktiota apuna käyttäen. Seuraavassa kuvassa on tapa jolla Scratchissa otetaan satunnaisluku väliltä 1-10.



Pythonissa saman toteuttamiseen tarvitaan random -kirjastoa. Se tuodaan ohjelmaan import random -käskyllä. random.randint(1, 10) tekee saman kuin Scratchin versio, siis arpoo satunnaisluvun väliltä 1..10.

import random

print(random.randint(1, 10))

Tehtävä 1: Nopan heittäminen

Tee ohjelma, joka heittää noppaa ja ilmoittaa silmäluvun.

Ohjelman mahdollisia tulostuksia ovat esimerkiksi seuraavat:

Silmäluku: 3
Silmäluku: 5

Tehtävä 2: Kolikon heittäminen

Tee ohjelma, joka heittää kolikkoa ja ilmoittaa tuloksen (kruuna tai klaava).

Ohjelman mahdolliset tulostukset ovat seuraavat:

Tulos: kruuna
Tulos: klaava

Tehtävä 3: Salasanan arpoja

Tee ohjelma, joka arpoo käyttäjälle salasanan. Salasana muodostuu merkeistä a-z ja siinä on 8 merkkiä.

Ohjelman tulostuksia ovat esimerkiksi seuraavat:

Salasana: zitbfsnt
Salasana: wlprcusq

Tehtävä 4: Sekoittaja

Tee ohjelma, joka sekoittaa listan sisällön. Sovella ohjelmassa satunnaisuutta haluamallasi tavalla.

Ohjelman runko on seuraava:

luvut = [1, 2, 3, 4, 5, 6, 7, 8]
sekoitaLista(luvut)
tulostaLista(luvut)

Tehtävä 5: Vihollisen sijainnit

Tee ohjelma, joka luo listan nimeltään vihollisenSijainnit ja arpoo 1000 kappaletta vihollisen sijainteja lisäten ne listaan. Vihollisen sijainti on merkkijonopari x,y. Esimerkiksi "5,16" on kelpo vihollisen sijainti. Sekä x- että y-koordinaatit voivat olla väliltä 0-100. Tulosta lopuksi lista jotta näet mitä se sisältää.

Vinkki: Muistathan että merkkijonoja yhdistetään plusmerkillä.
merkkijono = "a"
merkkijono += "bc"
print(merkkijono)  #tulostuu abc

Listan järjestäminen

Saatat tarvita peliä tehdessä listan järjestämistä esimerkiksi pisteiden tai etäisyyksien suuruusjärjestykseen laittamisessa. Seuraavassa esimerkissä määritellään, järjestetään lista valmista funktiota kutsumalla ja tulostetaan se. Jos olet kiinnostunut tarkemmin siitä miten järjestäminen toimii sort -funktion sisällä, googlaa esimerkiksi kuplalajittelu (bubble sort) tai lomituslajittelu (merge sort).

lista = [1, 3, 5, 4]
lista.sort()
print(lista) #tulostuu [1, 3, 4, 5]

Tehtävä 6: Pistelista

Tee ohjelma, joka kysyy käyttäjältä pelaajan nimen ja pisteet ja jatkaa tätä, kunnes käyttäjä antaa syötteen "lopeta" pelaajaa kysyttäessä. Tämän jälkeen tulostetaan parhaat pisteet ja niiden pelaaja.

Anna pelaaja: Pihla
Anna pisteet: 50
Anna pelaaja: Ada
Anna pisteet: 65
Anna pelaaja: lopeta

Pihla, 50