Tagasi Snap!-le

Automaatne lilleaas

Scrachile sarnanev programmeerimis keskkond Snap! asub veebilehel https://snap.berkeley.edu/. Ava keskkond ja klõpsa Run Snap! now.

Uurides loodust avastame tihti, et seal on rohkesti matemaatikat ja kordusi, mida saame programmeerides hästi ära kasutada. Järgi allolevat piltidega juhist või lõpusolevat õpetusvideot ja proovi ise järele.


Alusta õie kroonlehe joonistamisest

Snapis on esmane sprait kilpkonn (noolekujuline sprait). Meie asendame kilpkonna õielehega. Selleks valime Costumes ja pintsli.

Joonista õie kroonleht. Vali raamjoone paksus, täitevärv. Soovi korral sisse kaunistus või varjustus.

Seejärel vali pöördepunkt. Selle ümber hakatakse õie kroonlehte pöörama.

Nüüd mine tagasi Scripts alla ja alusta programmeerimist. Lohista Pen jaotisest plokk nimega stamp. Sellele klõpsamine teeb kroonlehest klooni. Saad neid laval hiirega soovi korral liigutada.

Meil on vaja aeg-ajalt lava puhtaks teha. Selle jaoks teeme abiprogrammi clear (jälle Pen alt) ja selle alla Motion kategooriast go to  x0 ja y0. Sellele klõpsates tehakse lava puhtaks.


Automatiseeri õie kroonlehtede loomine

Stamp abil tehtud kroonlehed on kõik sama suunaga. Lohistame stamp alla turn 15 degree. Klõpsa ja näed, et nüüd kloonitakse iga järgnev kroonleht 15-kraadise nurga all ja kergesti moodustub lill.

Proovime seda tegevust automatiseerida. Ütleme, et meie lill koosneb 24st kroonlehest. Lohista programmile Control alt ümber repeat ja vali arvuks 24.

Võid katsetada ja teha programmist duplikaat. Kui panna repeat 2 ja 180 kraadi (ehk pool ringist), siis saame teineteisega peegelpildis õielehed. Kui panna repeat 4 ja 90 kraadi (ehk veerand ringist) saame 4 lehekesega õie, kui aga repeat 8 ja 45 kraadi, siis 8 kroonlehega õie.

Jätame programmi korduseks (ehk repeat) 8. 45 kraadi aga asendame operaatoriga 360 / 8 ehk jagame täisringi 8ks.


Erineva suurusega lilled

Kõik lilled on ühesuurused, proovime teha nii, et suurus erineks iga lille puhul. Selleks võtame appi muutuja, mis aitab määratleda programmis muutuva väärtusega osa. Sellsk võtame Variables alt script variable. Skripti muutujad on sedasorti muutujad, mis töötavad ainult selles skriptis, millega need on ühendatud. Klõpsame a peale ja anname muutujale nimeks suurus.

Nüüd määrame esmalt set … to … abil, et suurus on juhuslik arv vahemikus 15 kuni 30. Ja lisaks toome Looks alt ploki set size to … %. Selles olevasse lünka lisame suurus, mis määrab, et kroonlehe suurust mõõdetakse protsentides.

Nüüd kui oleme kohandanud muutujat suurus, lohistame selle alla eelnevad plokid, mis loob lille enda.


Erineva asukohaga lilled

Korduvalt programmile klõpsates näemegi eri suuruses lilli, aga need täpselt samas punktis. Lohistame programmi algusesse Motion alt go to random position, mis tekitab lille suvalisse kohta laval.

Lilled on nüüd iga kord eri suurusega ja eri asukohas. Võiksime lisaks varieerida õielehtede arvu, selleks peame looma veel ühe muutuja. Klõpsame script variable väärtuse suurus järel olevat musta kolmnurgakest ja anname muutujale nimeks kroonlehtede arv.


Erineva kroonlehtede arvuga õied

Lisame programmi set kroonlehtede arv ning valime ka seal pick random operaatori ja ütleme, et õie kroonlehti võiks olla vahemikus 4 kuni 8. Selleks, et programm jaotaks õie kroonlehti vastavalt nende arvu järgi, peame asendama korduses repeat arvu 8 muutujaga kroonlehtede arv. Samuti tuleb asendada turn plokis 8 muutujaga õielehtede arv. Nüüd on iga lill erineva arvu õielehtedega.


Erinevat värvi õied

Kas poleks lahedam kui õied ka värvilt veidi erineks? Võtame Looks alt set ghost efect ja muudame selle set color efect’iks ning lohistame oma programmi. Seejärel anname väärtuse operaatori pick random abil -10 to 10. Selline arvuline vahemik muudab õite värvi vaid pisut.


Erineva kujuga õied

Järgmisena teeme nii, et kasvaksid erinevat liiki lilled. Läheme Costumes alla ja joonistame uue õielehe. Kindlasti tuleb määrata pööramispunkt.

Seejärel tagasi Scripts alla ja lohistame repeat ploki alla ploki next costume.


Automaatne programm 50 õiega

Et me saaksime väljatäie erinevaid lilli automaatselt tekkima panna, tuleb kogu programm panna omakorda repeat ploki sisse ja määrata mitu korda lill luuakse. Selles näites teeme 50 lille.

Kui tahaks tegevust käivitada näiteks klaviatuurilt, siis peaks panema programmi algatamiseks when … key pressed. Sama moodi võib määrata mõne klahvi, millega lavalt lilled kustutatakse. Mina kasutan näites tühikut ja enterit.

Tulemuseks on automaatselt lilledega täituv virtuaalne lilleaas.

Videojuhis


Allikad:

  • Codeweek. Kasvatage virtuaalne lilleaas. https://codeweek.eu/challenges/virtual-flower-field