Napíš programJednoduchá20 XPÚloha 2/8

Štvorec, ktorý mení farby

Zadanie

Vytvor program, v ktorom bude na plátne štvorec, ktorý mení farby: aspoň raz za sekundu dostane novú, náhodnú farbu (za pár sekúnd sa má ukázať aspoň 3 rôzne farby).

Použi časovač - buď funkciu, ktorá sa príkazom canvas.after(ms, funkcia) naplánuje znova, alebo cyklus s canvas.update() a canvas.after(ms).

Program beží v simulácii tkinteru priamo v prehliadači - po spustení uvidíš okno a môžeš doň klikať. Testy klikajú a kontrolujú, čo sa na plátne nakreslilo.

Príklady

  • Volanie

    from tkinter import _mente as okno
    
    okno.wait(5000)
    stvorce = [r for r in okno.created("rectangle")
               if abs(abs(r.coords[2] - r.coords[0]) - abs(r.coords[3] - r.coords[1])) < 1 and abs(r.coords[2] - r.coords[0]) >= 10]
    okno.check("na platne je stvorec", len(stvorce) > 0)
    zmeny = [(t, farba) for t, farba in okno.fills_over_time() if farba]
    farby = {farba for t, farba in zmeny}
    casy = sorted({t for t, farba in zmeny})
    okno.check("stvorec meni farby", len(farby) >= 3, f"roznych farieb: {len(farby)}")
    okno.check("farby sa menia postupne", len(casy) >= 3 and casy[-1] - casy[0] >= 1000, f"casy zmien: {casy[:4]}")

    Očakávaný výstup

    na platne je stvorec: OK
    stvorec meni farby: OK
    farby sa menia postupne: OK

Python sa spustí pri prvom spustení kódu.

Ctrl+Enter spustí program. Tab odsadí riadok. Esc a potom Tab opustí editor.

Vstup (stdin)

Každý riadok = jedno volanie input().

Výstup

Nápovedy

Najprv to skús sám. Každá nápoveda prezradí o niečo viac - a trochu zníži odmenu.

Bez prihlásenia sú nápovedy zadarmo - ale ani XP sa neudeľujú.

Riešenie

Riešenie sa odomkne po poslednej nápovede.