Malý projektJednoduchá20 XPÚloha 5/8

Rad štvorcov

Zadanie

Nakresli rad aspoň 8 štvorcov zľava doprava, ktoré sa postupne zväčšujú a menia farbu - každý štvorec má inú farbu (stačia aj rôzne odtiene jednej farby, napríklad od svetlomodrej po tmavomodrú). Štvorce sa neprekrývajú, stoja vedľa seba. Ak chceš, nech pribúdajú postupne po jednom.

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(10000)
    stvorce = [r for r in okno.items("rectangle")
               if abs(abs(r.coords[2] - r.coords[0]) - abs(r.coords[3] - r.coords[1])) < 1]
    stvorce.sort(key=lambda s: min(s.coords[0], s.coords[2]))
    okno.check("aspon 8 stvorcov", len(stvorce) >= 8, f"stvorcov: {len(stvorce)}")
    strany = [round(abs(s.coords[2] - s.coords[0])) for s in stvorce]
    okno.check("zvacsuju sa zlava doprava", all(a < b for a, b in zip(strany, strany[1:])), f"strany: {strany}")
    okno.check("kazdy ma inu farbu", len({s.fill for s in stvorce}) == len(stvorce) and all(s.fill for s in stvorce))
    okno.check("stoja vedla seba", all(min(b.coords[0], b.coords[2]) >= max(a.coords[0], a.coords[2]) - 1
                                      for a, b in zip(stvorce, stvorce[1:])))

    Očakávaný výstup

    aspon 8 stvorcov: OK
    zvacsuju sa zlava doprava: OK
    kazdy ma inu farbu: OK
    stoja vedla seba: 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.