Farebné lúče
Zadanie
Plátno má rozmer 400 × 400. Po každom kliknutí nakresli čiaru (lúč) zo stredu plátna (200, 200) do miesta kliknutia. Farba lúča závisí od štvrtiny, do ktorej si klikol: vľavo hore red, vpravo hore blue, vľavo dole green a vpravo dole orange.
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 kliky = [(100, 100, "red"), (300, 100, "blue"), (100, 300, "green"), (300, 300, "orange")] for x, y, farba in kliky: okno.click(x, y) ciary = okno.items("line") okno.check("styri kliky, styri luce", len(ciary) == 4, f"ciar: {len(ciary)}") for ciara, (x, y, farba) in zip(ciary, kliky): konce = {(round(ciara.coords[0]), round(ciara.coords[1])), (round(ciara.coords[-2]), round(ciara.coords[-1]))} okno.check(f"luc do ({x}, {y})", konce == {(200, 200), (x, y)} and okno.rgb(ciara.fill) == okno.rgb(farba), f"konce {sorted(konce)}, farba {ciara.fill}")Očakávaný výstup
styri kliky, styri luce: OK luc do (100, 100): OK luc do (300, 100): OK luc do (100, 300): OK luc do (300, 300): OK
Po odoslaní riešenie overí ešte 1 skrytý test: kliky blízko stredu.
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.