22 - Dvojitý cyklus
Dnes si vyrobíme generátor vodnej hladiny. Matrixovské písmo.
Na začiatok úloha na osvieženie pamäte, ale budeme na ňu neskôr nadväzovať:
Úloha 1
Napíšte skeč, ktorý na náhodnú pozíciu x
,y
na obrazovke nakreslí obrazec ako keď kameň spadne do vody. Je to 5
sústredných kružníc, najmenšia má priemer 5
px a každá ďalšia je o 20
väčšia.

Úloha 2
Váš program z Úlohy 1 vyzerá možno takto nejak:
size(400, 400);
background(#0A8FFF);
noFill();
stroke(255);
float x = random(width);
float y = random(height);
for (int i = 0; i < 5; i++)
{
circle(x,y, 5 + i * 20);
}
Ako by sme program zmenili, keby sme chceli, aby sa takto nakreslilo 10
obrazcov na rôzne náhodné miesta:

Použijeme znovu cyklus for
. Do tela cyklu zavrieme to, čo chceme, aby sa opakovalo:
vygenerovanie náhodných súradníc
x
,y
existujúci cyklus
for
, ktorý vykresľuje5
sústredných kružníc
Ale pozor!
Tento nový, vonkajší cyklus, nemôže používať cyklovaciu premennú s názvom i
.
Tá sa už používa vo vnútornom cykle.
Preto použite namiesto i
premennú s názvom j
.
Úloha 3
Upravte program tak, aby nebola náhodná iba pozícia obrazcov, ale aj:
Každý obrazec má inú priesvitnosť.
Počet kružníc v obrazci je náhodný od
5
do10
.Každý obrazec má náhodný rozostup kružníc, od
10
do20
.

Úloha 4
Napíšte skeč, ktorý pomocou jedného cyklu for
vykreslí vedľa seba 10
krúžkov náhodnej farby:

Zavrite tento prvý cyklus for
do druhého cyklu for
.
Vnútorný cyklus for
nastavuje horizontálnu súradnicu krúžkov a vertikálna súradnica sa nemení.
Upravte parametre príkazu circle
tak, aby vonkajší cyklus nastavoval vertikálnu súradnicu.

Úloha 5
Upravte program tak, aby nebola farba náhodná pre každý krúžok v každom riadku, ale len pre riadok.

Úloha 6
Vytvorte program, ktorý pod seba vypíše 20
náhodných písmen:

Pridajte druhý cyklus for
, ktorý tento stĺpec znakov zopakuje 30x vedľa seba:

Vytvorte premennú vyska
, ktorej hodnota je náhodné celé číslo v rozsahu 0 až 20. Upravte program tak, aby počet znakov v stĺpci bol rovný tejto premennej a aby sa vyska
nastavovala náhodne pred vykreslením každého stĺpca:

Úloha 7
Vyrobíme program na vykreslenie mriežky.
Vytvorte premenné riadkov
a stlpcov
, ktoré označujú počet riadkov a počet stĺpcov.
A tiež premenné sirka
a vyska
, ktoré budú určovať širku a výšku jedného políčka v mriežke.
Nastavte riadkov
a stlpcov
na nejaké hodnoty. Napríklad 7
a 4
.
Pomocou týchto premenných a systémových premenných width
a height
vypočítajte hodnoty premenných w
a h
.
Následne dvojitým cyklom vykreslite mriežku na celú obrazovku:

riadkov=7
a stlpcov=4
.Vyskúšajte, či váš program funguje aj pre iné rôzne hodnoty r
a s

riadkov=12
a stlpcov=6
.Úloha 8
Vytvorte program, ktorý vykreslí stĺpec, pozostávajúci zo štvorcov na sebe. Ich počet je náhodný od 3 do 10. Stĺpec začína na dolnom okraji obrazovky.
Rozšírte tento program na stĺpce vedľa seba. Každý má svoju vlastnú náhodnú výšku:

Úloha 9
Upravte pomocou podmienky if
program tak, aby len prvých 6 štvorcov v stĺpci bolo zelených, ostatné sú oranžové:

A upravte ešte program tak, aby štvorec, ktorý je desiaty, bol červený:

Úloha 10
Pomocou dvojitého cyklu vytvorte generátor diskotékových laserov. Každý laser má svoju farbu a vykresľuje náhodné lúče zo svojej pozície.
Takto napríklad vyzerá výstup pre 3 lasere po 30 lúčov každý:

Last updated