Arvutiteaduse instituut
  1. Esileht
  2. Python koolis
EN
Logi sisse

Python koolis

  • Sissejuhatus
  • Teemad
  • PyGame
  • ÜLESANDED

1 Käsurida, muutujad
2 Sisend, väljund, tingimus
3 Tsükkel
4 Järjend
5 Sõnastik
6 Funktsioon
7 Failioperatsioonid
8 Moodulid
9 Pygame: aken
10 PyGame: pildid, tekst
11 PyGame: animeerimine
12 PyGame: juhtimine klaviatuuriga
13 PyGame: juhtimine hiirega
14 PyGame: heli kasutamine
15-16 PyGame: mängu loomine

9. Ülesanded: PyGame: aken, värvid, joonistamine

Teooriapeatükid:

  • PyGame: aken
  • 2. PyGame: Värvid, koordinaadid
  • PyGame: joonistamine

Ülesanne 1

Loo uus aken enda jaoks sobiva taustavärviga, mille pealkirjaks (caption, akna ülaservas olev tekst) on "Minu aken". Seadista aken sulguma (akna üleval nurgas olevast nupust).

Ülesanne 2

Defineeri muutujad valge, punane, sinine, kollane, must, roheline, mille väärtusteks on vastavad värvid. Täienda eelmist programmi selliselt, et akna tausta värvi saaks valida. Kasutajalt küsitakse näiteks, mis värvi akent ta soovib avada, ning seejärel avatakse vastavat värvi aken.

Ülesanne 3

Joonista eelmises ülesandes loodud aknasse ühte ritta 8 ruutu. Tee seda tsükliga: joonista üks ruut tavalisel moel, asenda esimene koordinaat muutujaga ja väärtusta see eelnevalt, lisa tsükkel ümber ruudu joonistamise käsu ning lisa tsükli sisse ka muutuja suurendamise käsk. Ilmselt peaks esimene e. x-koordinaat muutuma vähemalt ruudu laiuse võrra (muidu joonistataks ruudud üksteise peale), samas võib olla ka veidi suurem, et ruutude vahele jääks näha ka veidi tausta.

Täienda lahendust nii, et selliseid ridu joonistataks samuti 8 e. tulemuseks oleks 8*8 ruudustik. Vajame topelttsüklit ja samuti peame muutma nüüd ka vertikaalset e. y-koordinaati.

Kuidas võiks saada ruudustikku malelaua taoliseks, s. t. ruute oleks kaht värvi ning iga ruuduga külgnev ruut oleks teist värvi?

Ülesanne 4

Koosta programm, kus avanevas aknas on lumememm (kolm lumepalli, torukübar, silmad, nina, nööbid, luud).

Ülesanne 5

Proovi programmi täiendada selliselt, et ekraanile joonistatakse kolm lumememme. Muidugi on mõistlik seda teha tsükliga, mitte käsitsi koodi kopeerides.

Ülesanne 6

Joonista aknasse 100 juhusliku asukoha, värvi ja raadiusega ringi. Ringi joonistamiseks loo funktsioon. Kuidas arvad: kas parem on koostada funktsioon, mis enda sees leiab juhuslikud väärtused, või funktsioon, millele antakse vastavad suurused argumentidena ette? Või sõltub lahendus sellest, kuidas soovime seda funktsiooni tulevikus teistes programmides kasutada?


Creative Commons litsentsiga Autorile viitamine + Mitteäriline eesmärk 3.0 Eesti (CC BY-NC 3.0 EE) - https://creativecommons.org/licenses/by-nc/3.0/ee/

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused