Funktsioonid
-----------------------
Kordamine. Eelmise tunni kodutööd
1. Pane Pykkar kõndima mööda seina ääri, nii et ta teeks maailmale tiiru peale
2. Loo suurem Pykkari maailm, kus on 3-4 koonust ja Pykkar peab nende ümbert mööda jalutama. - Vaata lahendust (variant 1 - Ave (?) kood ja variant 2 kood)
-----------------------
Funktsioonide defineerimine
Joonistame Turtle'iga ruudu:
##########################
from turtle import *
pikkus=100
nurk=90
mitmes_kylg = 1
while mitmes_kylg <= 4:
forward(pikkus)
left(nurk)
mitmes_kylg = mitmes_kylg + 1
exitonclick()
##########################
##########################
from turtle import *
pikkus=100
nurk=90
mitmes_kylg = 1
while mitmes_kylg <= 4:
forward(pikkus)
left(nurk)
mitmes_kylg = mitmes_kylg + 1
exitonclick()
##########################
-----------------------
Ülesanded 1
-----------------------
Funktsioon
Funktsiooni saab defineerida näiteks nii:
##########################
def ruut():
pikkus=100
nurk=90
mitmes_kylg = 1
while mitmes_kylg <= 4:
forward(pikkus)
left(nurk)
mitmes_kylg = mitmes_kylg + 1
##########################
Defineerisime funktsiooni nimega ruut()
Funktsioon ei hakka tööle iseenesest, vaid see tuleb sobivas kohas välja kutsuda ehk tööle panna.
Funktsiooni välja kutsumiseks ja tööle panekuks tuleb Pythonis kirjutada funktsiooni nimi lihtsalt sobivasse kohta koodis: ruut()
Näide:
up()
forward(200)
down()
ruut()
-----------------------
Ülesanded 2
3. Salvesta arvutisse pallipilt oma Pythoni failide kausta (paremklahviga klõps pildil ja "Save Picture As" / "Salvesta pilt nimega")
4. Uude Pythoni faili kirjuta kood palli kuvamiseks Tkinteri aknas:
##########################
from tkinter import *
raam = Tk()
raam.title("Tahvel")
tahvel = Canvas(raam, width=600, height=600, background="white")
tahvel.grid()
# x ja y, palli koordinaadid:
x = 50
y = 50
# pildi kuvamisel on vaja kõigepealt laadida pilt ja panna see tahvlile:
pall = PhotoImage(file="pall.gif")
pallipilt1 = tahvel.create_image(x, y, image=pall)
raam.mainloop()
##########################
-----------------------
Ülesanded 3
5. Muuda eelmise ülesande palli programmi nii, et defineerid funktsiooni, mille ülesanne on joonistada Tkinteri aknasse pall.
VIHJE: Kuna funktsioon ei pane palle kohe otse aknale, vaid alles siis, kui ta käivitatakse, tuleb pall senikauaks kuhugi "hoiule panna" (muidu Tkinter viskab pallipildi minema). Selleks on vaja tekitada palli hoiustamiseks n-ö riiul ehk massiiv, kus pallipilti hoitakse, kuni seda vaja läheb.
Masiivi tekitamiseks on Pythonis käsk: set(). Paneme riiulile ehk massiivile nimeks näiteks "pildiriiul". Sel juhul tuleks kirjutada koodi lause: pildiriiul = set()
pildiriiul = set() - loob massiivi nimega pildiriiul
Pallipildi massiivi ehk "riiulile" panemiseks tuleb see lisada käsuga:
pildiriiul.add(pall)
Vaata lähemalt: https://programmeerimine.cs.ut.ee/tkinter.html#moned-lisanipid
Lahendused:
Lahendus 1 (ilma funktsioonita)
Lahendus 2 (funktsiooniga ja kommentaaridega)
-------------------
6. Muuda eelmise ülesande palli programmi nii, et programm joonistab aknasse 5 palli, suvalistesse kohtadesse.
VIHJE: Selleks tuleks importida juhuarvude moodul:
import random
Palli koordinaadid tuleks muuta juhuslikeks arvudeks, näiteks nii:
x = random.randint(0, 600)
See kood tekitab palli, mille x koordinaat on ekraanil vahemikus 0 kuni 600.
Lahendused: Lahendus 1
-------------------
7. Loo programm 1 palliga. Pane pall ekraanil hiirevajutuse peale suvalisse kohta hüppama.
VIHJE:
Hiireklõpsudele reageerimise kohta leiad infot:
https://programmeerimine.cs.ut.ee/tkinter.html#hiireklopsudele-reageerimine
Palli saab liigutada Canvasel nimega "tahvel" käsuga: tahvel.coords(pallipilt, x, y)
https://programmeerimine.cs.ut.ee/tkinter.html#animatsioon
NB! Üks variant seda ülesannet lahendada, on defineerida vaid üks funktsioon, mis "kuulab" hiirevajutusi: def hiireklikk(event)
Sel juhul soovitav funktsiooni sees defineerida globaalsed koordinaadid, ehk:
def hiireklikk(event):
global x, y
LAHENDUS
-------------------
8. Lisa ekraanile ka värav. Kui pall läheb väravasse, tuleb teade "Värav!" - print("Värav!")
Värava võid otsida Googlest või salvesta endale arvutisse Pythoni failide kausta allpool olev pilt:
-----------------------
Kodused tööd
1. Tee ära ülesanded, mida tunnis ei jõudnud
LISAÜLESANDED
2. Pane pall ekraanil järgnema hiirele (kuhu hiirega vajutad, sinna tuleb ka pall) -
LAHENDUS
3. Pane pall hiirevajutuse peale üles põrkama ja seepeale alla kukkuma. Vajadusel saab abi:
https://programmeerimine.cs.ut.ee/02_lihtlaused.html
https://programmeerimine.cs.ut.ee/tkinter.html#animatsioon
2. Pane pall ekraanil järgnema hiirele (kuhu hiirega vajutad, sinna tuleb ka pall) -
LAHENDUS
3. Pane pall hiirevajutuse peale üles põrkama ja seepeale alla kukkuma. Vajadusel saab abi:
https://programmeerimine.cs.ut.ee/02_lihtlaused.html
https://programmeerimine.cs.ut.ee/tkinter.html#animatsioon
Kommentaare ei ole:
Postita kommentaar