22 - Dvojitý cyklus
Last updated
Last updated
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ť:
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.
Váš program z Úlohy 1 vyzerá možno takto nejak:
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ľuje 5
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
.
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
do 10
.
Každý obrazec má náhodný rozostup kružníc, od 10
do 20
.
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.
Upravte program tak, aby nebola farba náhodná pre každý krúžok v každom riadku, ale len pre riadok.
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:
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:
Vyskúšajte, či váš program funguje aj pre iné rôzne hodnoty r
a s
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:
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ý:
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ý:
riadkov=7
a stlpcov=4
.riadkov=12
a stlpcov=6
.