Napíš programZákladná10 XPÚloha 6/8

Domček

Zadanie

Nakresli domček: štvorcové telo (create_rectangle) a nad ním strechu v tvare trojuholníka (create_polygon alebo create_line). Základňu strechy tvoria horné rohy štvorca a jej vrchol je nad domom.

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
    
    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]
    okno.check("dom ma stvorcove telo", len(stvorce) >= 1)
    if stvorce:
        s = stvorce[0]
        lavy, pravy = sorted([s.coords[0], s.coords[2]])
        horny = min(s.coords[1], s.coords[3])
        body = [(round(x), round(y)) for i in okno.items() if i.kind in ("line", "polygon")
                for x, y in zip(i.coords[0::2], i.coords[1::2])]
        okno.check("strecha zacina v hornych rohoch", (round(lavy), round(horny)) in body and (round(pravy), round(horny)) in body)
        okno.check("strecha ma vrchol nad domom", any(lavy < x < pravy and y < horny for x, y in body))

    Očakávaný výstup

    dom ma stvorcove telo: OK
    strecha zacina v hornych rohoch: OK
    strecha ma vrchol nad domom: 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.