keskiviikko 27. huhtikuuta 2016

Satunnaismuuttuja - lottopeli 0.1

Tällä tunnilla teemme lottokoneen versio 0.1:

1. Tee koodi, joka kysyy sinulta seitsemän veikkaustasi loton oikeaksi riviksi. 


Olemme aikaisemmin oppineet, että voimme syöttää muuttujille arvoja input-funktiolla. '

Esimerkiksi:
arvaus = input('Veikkaa numeroa')

Koska lottopelissä valitaan seitsemän numeroa, voimme toki tehdä seitsemän muuttujaa ja antaa näille seitsemän arvoa. Mutta on olemassa helpompikin tapa: lista.

Listassa yhdelle muuttujalle annetaan seitsemän eri arvoa ja arvot on indeksoitu numerojärjestyksessä. Ensimmäinen indeksi -järjestysnumero on aina 0. Esimerkiksi muuttuja[1] = 4 tarkoittaa, että muuttujan toinen indeksi on saanut arvon 4. Ei kuitenkaan pidä sekoittaa indeksiä ja muutujan arvoa toisiinsa.

Teemme nyt listan:

lista = [0,0,0,0,0,0,0] 

Tämä tarkoittaa, että muuttujalle lista on seitsemän eri arvoa ja ne kaikki ovat tällä hetkellä 0. Jos haluaisimme nyt esimerkiksi antaa muuttujalle lista seitsemän eri arvoa voisimme kirjoittaa:

lista[0]=4
lista[1]=5
lista[2]=29 ...

Lista näyttäisi tämän jälkeen tältä:
lista = [4,5,29,0,0,0,0]

Nyt kyselijämme saa siis muodon:

for i in range (6)
      lista[i] = input('Arvaa oikea numero');

for-silmukka toistaa kysymyksen seitsemän kertaa aloittaen 0:sta ja antaen muuttujalle i aina kyseisen kyselykerran arvon eli 0, 1, 2, 3, 4, 5, 6.

Tämän jälkeen voimme kirjoittaa

print lista[i];

Tämä tulostaa kulloisenkin for-silmukan mukaisen listan arvon sen mukaan minkä olet itse lista- muuttujalle antanut.

2. Tee koodi, jolla kone arvoo jonkun satunnaisen luvun väliltä 0-39:

Seuraavaksi laitamme koneen arpomaan satunnaisesti lukuja väliltä 1-39.

Ensin kutsumme random-kirjastoa, jotta saamme koneen arpomaan satunnaisesti:

import random; #kutsuu import kirjaston

Sen jälkeen teemme jälleen listan, johon tallennamme koneen arpomat seitsemän lukua. Tämä edustaa oikeaa riviä.

satunnainen_arvo = [0,0,0,0,0,0,0];
for ii in range(6):
      satunnainen_arvo[ii] = random.randint(1, 39); #antaa satunnaisen arvon muuttujalle satunnainen_arvo

3. Tee koodi, jolla kone vertailee sinun antamaasi numeroa ja koneen arpomaa numeroa, arvasitko numeron oikein?

Ensiksi, määrittele muutuja, joka laskee kuinka monta arvausta sait oikein.

oikein = 0
kierros = 0

Sen jälkeen teet for-silmukan, jolla tarkistat, että onko arvauksesi oikein. Nyt tarvitset avuksesi vielä yhden muuttujan eli kierroksen. Kierros-muuttuja on sellainen, jolla varmistat, että silmukka ottaa ensin yhden arvauksesi ja vertaa sitä kaikkiin koneen arpomiin lukuihin. Vain jos arvauksesi on oikein niin se lisää oikein muuttujan arvoa yhdellä.

for iii in range(7):
    if int(lista[iii]) == int(satunnainen_arvo[kierros]):
        print 'oikein'
        oikein = oikein +1;
    kierros = kierros+1;
    
print 'Sait lotto pelissä oikein ', oikein

4. Pelimme eteenpäin kehittäminen

Peli on nyt valmis, mutta sitä voi kehittää vielä eteenpäin.

  1. Peli ei estä arvaamasta eikä arpomasta samoja lukuja useaan kertaan. Tämä pitäisi oikeassa lotopelissä estää. Miten sen tekisit?
  2. Peli on pelkkä tekstipeli. Seuraava vaihe on luonnollisesti grafiikka...
             






Ei kommentteja:

Lähetä kommentti