JOOH OHJELMOINTIPROJEKTI

PYTHON-PROJEKTITYÖ: Kivi, paperi ,sakset

TEHTÄVÄNANTO

Tehtävänä oli suunnitella tietokoneella pelattava Python-kielinen Kivi-paperi-sakset -peli. 
Pelin ideanan oli että pelaaja pelaa tietokonetta vastaan valitsemalla kivi-paperi-sakset. tietokone valitsee oman vaihtoehtonsa ja ilmoittaa voiton, häviön tai tasapelin.

MITÄ TEHTÄVÄSSÄ ODOTETTIIN:
Ohjelman tulee kysyä pelaajalta minkä aseen hän valitsee, kivi, paperi tai sakset. Ohjelman tulee kertoa pelaajalle minkä aseen kone on valinnut. Tämän jälkeen ohjelman tulee kertoa pelaajalle kumpi voitti.

1. TYÖN VAIHEET

Projektini vaiheet voidaan tiivistetysti esittää näin.
1. Tehtävänannon lukeminen ja projektin aikataulun tarkistaminen (takaraja 13.10.2019)
2.Asiakastyönvaatimusten määrittäminen
3. Lisätiedon etsiminen vastaavistta peleistä, jotka on tehty Python-kielellä.
4. ohjelmoinnin suunnitteleminen
5. Ohjelmoinnin toteutus 
6. Ohjelman testaus ja korjaus
7. Raportin kirjoittaminen

Aloitin projektin muistelemalla millainen peli "Kivi, paperi, sakset" on. Sen jälkeen lähdin etsimään tietoa pelin suunnittelusta Pythonilla.

OHJELMAN SUUNNITTELUN KULKU
Käytin tämän pelin ohjelmointialustana onLine Trinket Python3 -editoria.
Lähdin suunnitelmassani alkuun siitä, mitä tietoja tarvitaan ja mitä pitää syöttää.

- tarvitaan pelaajan valinta , joka saadaan input käskyllä
- tarvitaan koneen valinta
- tarvitaan koneen valinnalle lista vaihtoehdoista
- tarvitaan random-käsky satunnaiselle valinnalle edellä mainitusta listasta

Toiseksi aloin miettiä miten näitä tietoja käytetään, jotta saadaan selville voitto tai häviö.
Helpointa oli ratkaista ensin tasapeli kun pelaajan vaihtoehto = koneen arpoma vaihtoehto
Tämän jälkeen ohjelma vertailee jos - niin rakenteella pelaajan ja koneen tuloksia. Tähän käytin if- ja else if -rakennetta.
Halusin myös, että ohjelma toistaa peliä esim viisi kertaa, mikä toteutui while-rakenteella.

Ohjelman toteutuksen aikana tuli esille seuraavaa:
Ohjelma ottaa vastaan pelaajan valinnan ja arpoo hyvin koneelle oman valinnan. Myös tasapelin ilmoittaminen toimii oikein. If ja Elsif-rakenteissa ohjelma ei kahdessa tapauksessa ilmoita voittoa tai häviötä, vaikka silmukka on joka vaihtoehdossa sama. 

2.MITEN SAMA TEHTÄVÄ VOISI TOIMIA OPPILASTEHTÄVÄNÄ

Tehtävä vaatii Pythonin perustietoja paljonkin, vaikka nätytttää, että siihen aluksi riittää inputin ja printin hallitseminen. Tästä voidaan kuitenkin lähteä hyvin liikkeelle. Jaetaan tehtävä palasiin.
VAIHE1. 
Ajatellaan, että pelaaja syöttää valitsemansa aseen, mutta koneelle valitaan vakio ase. Silloin ei tarvita randomia eikä listaakaan.
Testataan toiminta
VAIHE2.
Lisätään Random ja siihen tarvittava lista
Testataan toiminta.

VAIHE3.
Vertailuun tarvitaan If ja Elsif -rakenne.

TEHTÄVÄNANTO

Kivi, paperi, sakset -peli
Pythonilla

Asiakastyö:

Ohjelma kysyy minkä aseen pelaaja valitsee: kivi, paperi, sakset.
Ohjelma kertoo minkä aseen tietokone valitsi.
Ohjema keroo kumpi voitti.


https://trinket.io/python3/ae47840617

lisätty koodia:

https://trinket.io/python3/33c2437f6c


Palauta tehtävään liittyen:

  • Valmis koodi (esimerkiksi copypastella tai screenshotina).
  • Lyhyt kirjoitelma, joka sisältää seuraavat kaksi osaa:
  1. Kuvaus työn vaiheista esimerkiksi vuokaaviona. Mistä lähdit liikkeelle? Keneltä pyysit tukea, missä vaiheessa? Millaisia vaiheita ratkaisuun sisältyi?
  2. Pohdinta siitä, kuinka vastaava tehtävä voisi toimia oppilaiden kanssa käytettävänä. Mitä tulisi muistaa ottaa huomioon, jotta projektityön vaiheet onnistuisivat halutulla tavalla?

Kirjoitelman ei tarvitse ylittää pituudeltaan yli yhtä sivua. Tärkeintä on napakka pohdinta siitä, kuinka samankaltainen tehtävä soveltuisi käytettäväksi oppilaiden kanssa.

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä