{"id":360,"date":"2011-05-26T15:36:15","date_gmt":"2011-05-26T12:36:15","guid":{"rendered":"http:\/\/python.pingviinitiivul.ee\/?p=360"},"modified":"2011-05-26T17:01:10","modified_gmt":"2011-05-26T14:01:10","slug":"kolmkummend-uks","status":"publish","type":"post","link":"https:\/\/python.pingviinitiivul.ee\/?p=360","title":{"rendered":"Kolmk\u00fcmmend \u00fcks"},"content":{"rendered":"<p>Eelmisel korral j\u00f5udsime p\u00e4ris kaugele ja &#8220;kivide&#8221;kukutamisega tegelev programm t\u00f6\u00f6tab edukalt. Mainisin juba otsapidi ka, et lisaks otseselt n\u00e4htavale peab programmeerides m\u00f5tlema ka veidi kaugemale&#8230;<\/p>\n<p>&#8220;Kivide kukutaja&#8221; algsel versioonil oli n\u00e4iteks komme veaga programm l\u00f5petada kui osade &#8220;ekraanilt m\u00f6\u00f6da&#8221; kukkunud kivide koordinaadid l\u00e4ksid liiga suureks. Selle vastu tegutsemiseks sai lisatud kontroll:<br \/>\n<code><br \/>\n&nbsp;&nbsp;&nbsp;    for kivi in kivid:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if kivi.y > 795 :<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kivi.y=799<br \/>\n<\/code><\/p>\n<p>Nii ei saa kivid &#8220;kukkuda&#8221; l\u00f5putult.<\/p>\n<p>J\u00e4rgnev video n\u00e4itab, et ka kivide arvu t\u00f5us ei pruugi olla hea:<br \/>\n<iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"http:\/\/www.youtube.com\/embed\/Gnj-RDkQaHs\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>T\u00e4nap\u00e4eva arvutitel on v\u00e4ga palju m\u00e4lu, kivi objekt (kolm numbrit &#8211; koordinaadid ja kukkumiskiirus) ei v\u00f5ta palju m\u00e4lu, aga kui iga m\u00f5ne sekundi tagant kive juurde lisatakse, siis on kive varsti k\u00fcmneid, sadu ja poole tunni p\u00e4rast tuhandeid. See on juba m\u00e4rgatav kogus. Kujutleme n\u00fc\u00fcd ette, et unustame arvuti seda programmi pikalt n\u00e4itama v\u00f5i teeme sellest programmist &#8220;ekraanis\u00e4\u00e4stja&#8221; &#8230; j\u00f5uetum arvuti (nagu meil koolis) on varsti \u00fclekoormatud, v\u00f5ib j\u00e4\u00e4da aeglaseks ja suisa ebanormaalseks.<\/p>\n<p>Seep\u00e4rast lisame kivide eemaldamise m\u00e4ngule.<\/p>\n<p>Mida edasi?<\/p>\n<p>V\u00f5ime lisada m\u00e4ngule &#8220;v\u00f5itmise&#8221;.<\/p>\n<p>Selleks on kaks v\u00f5imalust:<\/p>\n<p>1. Ajaline limiit &#8211; kui m\u00e4ngija suudab &#8220;ellu j\u00e4\u00e4da&#8221; ehk kivita mitte pihta saada mingi aja, siis on ta esimese taseme v\u00f5itnud.<br \/>\n2. Kokku kukkunud kivide arvu limiit &#8211; selleks peame peale kivide kustutamise lisamist tegema eraldi kokku kukkuma pandud kivide loenduri. Kui loendur j\u00f5uab mingi suurema ilusa arvuni &#8211; n\u00e4iteks 1000 &#8211; siis on m\u00e4ngija v\u00f5itnud.<\/p>\n<p>Kokkuv\u00f5ttes erilist vahet ei ole &#8211; kuigi kuna kivisid pannakse kukkuma juhuslikult, siis m\u00e4ng on igakord veidi erinev m\u00f5lemal juhul.<\/p>\n<p>Et m\u00e4ngu p\u00f5nevamaks teha, siis v\u00f5iks lisada mitu taset (levelit). Igal tasemel v\u00f5iksid erineda kivide v\u00e4limus ja suurus (teised pildid), kukkumiskiirus ja\/v\u00f5i kukkuvate kivide arv olla suuremad, kolmandal v\u00f5i neljandal tasemel v\u00f5iks lisada v\u00f5imaluse osadel kividel kukkuda veidi viltu &#8211; vasakule v\u00f5i paremale kaldu.<\/p>\n<p>Kui programmeerimise poolest \u00f5igesti teha, siis levelite kirjeldused v\u00f5iksid olla eraldi konfiguratsioonifailis (vastava taseme piltide nimed, kiirusandmed, suvaliste numbrite alumised ja \u00fclemised limiidid jne).<\/p>\n<p>Proovimiseks ja uurimiseks m\u00f5ned n\u00e4ited: lihtsam &#8220;banaanipommidega&#8221; <a href=\"http:\/\/www.pygame.org\/project-Gorilla.py-1677-.html\">n\u00e4ide<\/a>, <a href=\"http:\/\/www.pygame.org\/project-SpaceFight-1350-.html\">kosmoses\u00f5da<\/a> ja keerulisem &#8220;kahuritule&#8221; <a href=\"http:\/\/www.pygame.org\/project-Shell+Fire-1325-.html\">programm<\/a>.<\/p>\n<p>Meie programmi m\u00f5nede <a href=\"http:\/\/python.pingviinitiivul.ee\/wp-content\/uploads\/2011\/05\/kivid.tar.gz\">muutustega versioon<\/a> (kukub kuni 100 kivi ja kui suudad pihta saamata toime tulla, siis v\u00f5idad).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eelmisel korral j\u00f5udsime p\u00e4ris kaugele ja &#8220;kivide&#8221;kukutamisega tegelev programm t\u00f6\u00f6tab edukalt. Mainisin juba otsapidi ka, et lisaks otseselt n\u00e4htavale peab programmeerides m\u00f5tlema ka veidi kaugemale&#8230; &#8220;Kivide kukutaja&#8221; algsel versioonil oli n\u00e4iteks komme veaga programm l\u00f5petada kui osade &#8220;ekraanilt m\u00f6\u00f6da&#8221; kukkunud &hellip; <a href=\"https:\/\/python.pingviinitiivul.ee\/?p=360\">J\u00e4tka lugemist <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-360","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=\/wp\/v2\/posts\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=360"}],"version-history":[{"count":6,"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=\/wp\/v2\/posts\/360\/revisions"}],"predecessor-version":[{"id":367,"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=\/wp\/v2\/posts\/360\/revisions\/367"}],"wp:attachment":[{"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/python.pingviinitiivul.ee\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}