INFO ERINEVATE PROGRAMMEERIMISE KURSUSTE KOHTA: LINK
Funktsioonid
Funktsioonid on programmeerimises nagu kappi pandud kodumasin. Masin seisab vaikselt, kuni sa teda tööle ei pane. Tööle panemiseks on vaja masin käivitada.
Programmeerimisel saame luua sarnaseid "masinaid", mis on mõeldud programmis mingi töö tegemiseks (näiteks ekraanile pildi joonistamiseks, ekraani puhastamiseks vms), kuid mis lähevad tööle alles siis, kui nad käivitada.
Sarnaselt masina ehitamisele tuleb ka funktsioon esmalt valmis teha ja anda talle mingid töökäsud, mida ta tegema peab.
Vaatame esmalt ühte näidet Turtle'iga kolmnurga joonistamiseks:
Photo by The Creative Exchange on Unsplash
Programmeerimisel saame luua sarnaseid "masinaid", mis on mõeldud programmis mingi töö tegemiseks (näiteks ekraanile pildi joonistamiseks, ekraani puhastamiseks vms), kuid mis lähevad tööle alles siis, kui nad käivitada.
Sarnaselt masina ehitamisele tuleb ka funktsioon esmalt valmis teha ja anda talle mingid töökäsud, mida ta tegema peab.
Vaatame esmalt ühte näidet Turtle'iga kolmnurga joonistamiseks:
##########################
from turtle import *
pikkus=100
nurk = 120
forward(pikkus)
left(nurk)
forward(pikkus)
left(nurk)
forward(pikkus)
exitonclick()
##########################
##########################
from turtle import *
pikkus=100
nurk = 120
forward(pikkus)
left(nurk)
forward(pikkus)
left(nurk)
forward(pikkus)
exitonclick()
##########################
-----------------------
Ülesanded 1
1. Joonista Turtle'ga kolm kolmnurka suvalistele kohtadele ekraanil.
-----------------------
Funktsioon
Selleks, et joonistada kolmnurgad erinevatesse kohtadesse ekraanil, võime tekitada n-ö kolmnurkade joonistamise "masina" ehk funktsiooni, mille ülesandeks on kolmnurkade tegemine. Masinale ja funktsioonile saame ette öelda, kus või millal ta tegevust (kolmnurkade joonistamine) sooritama peab.
Funktsiooni saab defineerida näiteks nii:
##########################
def kolmnurk():
pikkus=100
nurk = 120
forward(pikkus)
left(nurk)
forward(pikkus)
left(nurk)
forward(pikkus)
##########################
def kolmnurk():
nurk = 120
forward(pikkus)
left(nurk)
forward(pikkus)
left(nurk)
forward(pikkus)
##########################
Defineerisime funktsiooni nimega kolmnurk()
Funktsioon ei hakka tööle iseenesest, vaid see tuleb sobivas kohas käivitada ehk "välja kutsuda".
Funktsiooni välja kutsumiseks või tööle panekuks tuleb Pythonis kirjutada funktsiooni nimi lihtsalt sobivasse kohta koodi sees: kolmnurk()
See käivitab kolmnurga joonistamise funktsiooni.
Näide:
up()
forward(200)
down()
kolmnurk()
up()
down()
kolmnurk()
up() - tõstab pliiatsi üles, et saaks "õhus" edasi liikuda, ilma joont tegemata
down() - laseb pliiatsi alla, joonistamiseks.
Programmi lihtsustamiseks võib need up() ja down() panna ka funktsiooni sisse.
-----------------------
Ülesanded 2
1. Joonista Turtle'ga viis (või enam) kolmnurka suvalisse kohta ekraanil, kasutades funktsiooni defineerimist.
2. Tekita ekraanile konnapilt
2. Tekita ekraanile konnapilt
- Selleks kasuta käsitsi joonistatud konna asemel programmi sisse toodud konnapildi faili (näiteks kasuta mõnd faili selle peatüki allosas olevatelt linkidelt. Konnapilt salvesta oma arvutisse, oma Pythoni failide juurde. Pane konnapildi failile nimeks näiteks: konn1.gif)
- LAHENDUS
3. Tekita ekraanile mitu konna (või kivi) suvalistesse kohtadesse (kasuta selleks olemasolevaid konna ja kivi faile)
4. Võta ette oma eelmise tunni konna programm. Täienda seda nii, et konn hakkab hüppama hiirevajutuse peale. Pane konn hüppama sinna, kuhu sa hiirega vajutad. (Kasuta pildifaile)
LAHENDUS
LAHENDUS
Juhendeid piltdidega "mängimiseks":
Loo funktsioon hiireklõpsule reageerimiseks:
Uuri, kuidas konna koordinaate muuta - louend.coords(id, x0,y0,..., xn,yn)
või tahvel.coords(id, x0,y0,...,xn,yn ) abil:
5. Täienda programmi nii, et konn hakkab hüppamisel krooksuma
Selleks uuri, kuidas tkinteris helifaile mängida:
(Vihje: loo eraldi funktsioon konnakrooksude jaoks. Konnakrooksu funktsiooni tööle hakkamise võib siduda näiteks hiirenupu lahtilaskmise sündmusega ehk ButtonRelease: http://www.python-course.eu/tkinter_events_binds.php)
NB! Kes kodus proovib seda tööle saada, siis selleks, et konn alles PÄRAST hüppamist krooksuma hakkaks, kustutage oma koodist rida winsound.Beep(200, 200)
See rida koodis takistab hetkel teise helifaili mängimist õigel ajal.
ÜLESANDE LAHENDUS nr 1 (Windowsi oma tavalise heliga)
ÜLESANDE LAHENDUS nr 2 (krooksufailiga)
6. Täienda programmi nii, et konn hakkab hüppamisel krooksuma ja vettehüppamisel sulpsatusi tegema.
(Vihje: Täienda krooksu funktsiooni ka plärtsuga. Tee krooksufunktsioonist krooksplärts funktsioon. See funktsioon peaks kontrollima konna asukohta ja vastavalt sellele siis õiget helifaili mängima.)
7. Muuda programmi nii, et konn hakkab hiirevajutuse peale suvalisse kohta hüppama. Selleks on vaja importida random moodul (ehk juhuarvude genereerimine) ja seejärel panna konna uued koordinaadid hiirevajutuse funktsioonis võrduma juhuarvudega.
import random
konna_x = random.randint(0, 600)
8. Loo Tkinteris programm jalgpalli mängimiseks: impordi jalgpalli fail, lisa värav ja pane pall hiirevajutuse peale suvaliselt lendama. Kui pall lendab väravasse, karjub rahvas "GOAL!" või "VÄRAV!"
NB! Kes kodus proovib seda tööle saada, siis selleks, et konn alles PÄRAST hüppamist krooksuma hakkaks, kustutage oma koodist rida winsound.Beep(200, 200)
See rida koodis takistab hetkel teise helifaili mängimist õigel ajal.
ÜLESANDE LAHENDUS nr 1 (Windowsi oma tavalise heliga)
ÜLESANDE LAHENDUS nr 2 (krooksufailiga)
-----------------------
LISAÜLESANDED
6. Täienda programmi nii, et konn hakkab hüppamisel krooksuma ja vettehüppamisel sulpsatusi tegema.
(Vihje: Täienda krooksu funktsiooni ka plärtsuga. Tee krooksufunktsioonist krooksplärts funktsioon. See funktsioon peaks kontrollima konna asukohta ja vastavalt sellele siis õiget helifaili mängima.)
7. Muuda programmi nii, et konn hakkab hiirevajutuse peale suvalisse kohta hüppama. Selleks on vaja importida random moodul (ehk juhuarvude genereerimine) ja seejärel panna konna uued koordinaadid hiirevajutuse funktsioonis võrduma juhuarvudega.
import random
konna_x = random.randint(0, 600)
8. Loo Tkinteris programm jalgpalli mängimiseks: impordi jalgpalli fail, lisa värav ja pane pall hiirevajutuse peale suvaliselt lendama. Kui pall lendab väravasse, karjub rahvas "GOAL!" või "VÄRAV!"
-----------------------
KODUS
- Tee ära mõni ülesannetest, mida tunnis ei jõudnud. Kodutööd võib saata: katlin7@gmail.com
-----------------------
KONNAFAILID JA JALGPALLIFAILID:
VEEL LISAFAILIE:
- Pildifaile tasuta kasutamiseks: https://openclipart.org
- Helifaile tasuta kasutamiseks: http://www.freesoundeffects.com/free-sounds/animals-10013/ ja http://soundbible.com/tags-frog.html
Kommentaare ei ole:
Postita kommentaar