Institute of Computer Science
  1. Main page
  2. Python koolis
ET
Log in

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/

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment