02. Práca s poliami
Niekoľko praktických trikov a postupov pre polia
Last updated
Niekoľko praktických trikov a postupov pre polia
Last updated
Ak nepotrebujeme vedieť, na ktorej položke sme, ak nepotrebujeme žiadne i
, tak môžeme for
cyklus napísať aj takto:
Tento program tiež na náhodné miesto na obrazovke vypíše každú položku z poľa kapely
. To sme už robili.
Ale namiesto zápisu cez for i
a potom kapely[i]
sa na konkrétnu položku v poli dostaneme tak, že takto zapísaný for
cyklus prechádza pole kapely
a položku po položke nám každú uloží do premennej k
a potom s tou položkou vykoná samotné telo cyklu. V tomto prípade výpis text(k, random(width), random(height))
.
draw()
Niekedy chceme prechádzať poľom nie celým naraz, ale postupne v animácii cez podprogram draw()
. Napríklad chceme, aby sa v každom frame zobrazilo iné slovo zo zoznamu:
Vtedy namiesto for
cyklu s indexom i
využijeme skutočnosť, že draw()
je vlastne tiež niečo ako cyklus. Tiež sa opakuje. A ako index použijeme počítadlo vykreslených snímkov, ktoré nám poskytuje Processing. Toto počítadlo sa volá frameCount
:
Ale po pár snímkoch program zhavaruje, lebo frameCount
vyrástol nad limit dĺžky poľa. Tomu pomôžeme fintou, že pomocou matematickej operácie %
"zacyklíme" hodnoty v rozsahu 0 až dĺžka poľa:
Povedzme, že máme paletu farieb uloženú v poli a chceme pri kliknutí myšou nakresliť krúžok náhodnou farbou vybratou z tejto palety:
Aby sme vybrali farbu z poľa potrebujeme vedieť index položky. A tento index má byť náhodný.
Vieme vygenerovať náhodné celé číslo z rozsahu 0 (vrátane) až dĺžka poľa (bez)?
Prípadne v tomto prípade, keď už nepotrebujeme tento náhodný index na nič iné, iba na vybratie farby z poľa, tak môžeme napísať aj skrátene. Teda ak sa nebojíte zátvoriek:
Pole nie je určené len na čítanie položiek, ale môžeme do neho aj zapisovať. To sa hodí vtedy, keď nevieme dopredu, čo bude v poli uložené. Kapely na festivale sme vedeli dopredu. Ale ak by sme chceli zobraziť náhodne vyžrebované čísla lotérie, tak tie dopredu nepoznáme. Ako na to?
Vytvoríme si prázdne pole s 5 položkami a uložíme do neho náhodne vygenerované čísla lotérie od 1 do 40. A potom ich už môžeme vypísať Takto: