Textový mlynček
Zadanie
Program načíta text a počet opakovaní n a nakreslí z nich textový mlynček: n kópií textu, ktoré vychádzajú z jedného bodu a sú rovnomerne otočené - i-ta kópia o uhol i * 360 / n stupňov (i = 0, 1, …, n − 1).
Text otočíš parametrom angle v create_text. Aby lopatky mlynčeka nezačínali presne v strede, môžeš pred text pridať pár medzier alebo použiť anchor="w".
Text a počet môžeš načítať z konzoly (input), alebo z dvoch textových polí (Entry) po stlačení tlačidla - vtedy je prvé pole text a druhé počet.
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 if len(okno.entries()) >= 2 and okno.buttons(): okno.type("MENTE", entry=0) okno.type("8", entry=1) okno.press() texty = okno.items("text") okno.check("pocet textov", len(texty) == 8, f"na platne je {len(texty)} textov") okno.check("kazdy text je zadane slovo", texty and all(t.text.strip() == "MENTE" for t in texty)) uhly = sorted(round(t.angle % 360, 1) for t in texty) okno.check("texty su otocene rovnomerne", uhly == [round(i * 360 / 8, 1) for i in range(8)], f"uhly: {uhly}") okno.check("vychadzaju z jedneho bodu", len({(round(t.coords[0]), round(t.coords[1])) for t in texty}) == 1)Očakávaný výstup
pocet textov: OK kazdy text je zadane slovo: OK texty su otocene rovnomerne: OK vychadzaju z jedneho bodu: OK
Po odoslaní riešenie overia ešte 2 skryté testy: 7 lopatiek, jedna lopatka.
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.