Náhody na oblohe

Do premennej vieme priradiť nejaké číslo:

cislo = -5

Takýto príkaz priradenia pri každom spustení programu priradí do premennej to isté číslo. Ako by sme mohli urobiť, aby číslo bolo s každým spustením iné?

Použijeme na to funkciu random():

random()

Funkcia random(300) vyrobí náhodné číslo, pričom vyberá z rozmedzia od 0 po číslo v zátvorke. Najväčšie číslo však nikdy nedosiahneme.

Náhodné čísla v premenných

A ako potom dáme náhodné číslo z funkcie do premennej?

cislo = random(10)                  # vygeneruj náhodné číslo od 0 do 10
print(cislo)                        # vypíše 5, inokedy 7 či 0

Po spustení tohto programu 3-krát po sebe v konzole uvidíme rôzne čísla (tvoje budú asi iné ako tieto, pretože náhoda):

2.7105140686
7.7266082786
5.9162845612
vysledok = 1 / (1 + random(200))                # príklad výrazu s použitím funkcie 

Čo keď nechceme desatinné číslo?

Funkcia random() nám vyrobí náhodné desatinné číslo. Ak chceme číslo celé, môžeme použiť funkciu floor(), ktorá dostane číslo a vyrobí z neho číslo zaokrúhlené nadol:

cislo = random(10)                  # vygeneruj náhodné číslo od 0 do 10
cislo = floor(cislo)                # zaokrúhli nadol
print(cislo)

Celá operácia sa dá zapísať aj na jeden riadok (skladanie funkcií):

cislo = floor(random(10))           # najprv vygeneruj náhodné číslo od 0 do 10
print(cislo)                        # potom ho zaokrúhli nadol a priraď do premennej

Teraz by sa pri trojitom volaní vypísali takéto celé čísla (opäť - nie presne tieto, lebo sú náhodné):

2
9
1

Čo keď chcem číslo v inom roymedzí?

Fukcia random() môže mať aj dva prametre, potom prvý bude dolná, a ten druhý horná hranica intervalu, z ktorého sa bude číslo vyberať.

cislo = floor(random(100, 150))     # náhodné CELÉ číslo od 100 do 150 (okrem 150)
print(cislo)                        

Výsledky:

118
123
149

Samozrejme, že hranicami môžu byť aj záporné čísla. Len vždy musí byť uvedené najprv to menšie z nich.

cislo = floor(random(-10, 10))      # náhodné CELÉ číslo od -10 do 10

Úloha 1: Naprogramuj simulátor nočnej oblohy :) Na čiernom pozadí budú postupne pribúdať hviezdičky rôznej veľkosti. Pri stlačení ľubovoľného klávesu sa zmaže pozadie do náhodnej farby.

Simulátor nočnej oblohy

Úloha 2: Naprogramuj efekt mozaiky - rôznofarebné obdĺžniky sa budú kresliť do pravidelnej "siete".