Informace
Veškeré informace k předmětu najdete na webu předmětu.
Body
Průběžný počet bodů.
Projekt
Zabalený projekt posílejte na e-mail branislav.holy
Jako předmět uveďte SPJA Projekt - LOGIN.
Termín odevzdání: 18.12.2016 23:59
Termín obhajoby: 9.1.2017 9:00 (PorEB104 - vlastní notebook sebou)
Cvičení
Cvičení 12
Django: formuláře.
Cvičení 11
Django: views, templates.
Cvičení 10
Django: modely, administrace, shell.
Cvičení 9
Práce s XML-RPC: zadání úkolu.
Cvičení 8
Práce s XML-RPC: zadání úkolu.
Cvičení 7
Práce s XML: zadání úkolu.
Cvičení 6
Práce se třídami.
1. úkol (3 body)
- Stáhněte si archív playground2.zip.
- Pracovat budeme se souborem template.py v archívu playground2.zip. Soubor playground2.py zajišťuje vytvoření gui a timeru. V časových intervalech je volána metoda tick(), kterou naleznete v souboru template.py. Vizte poznámky v souboru template.py.
- Na rozdíl od předchozího cvičení je možno atomům přiřazovat různé barvy. Příklad je uveden v metodě tick().
- V příkladu je implementována třída Atom, která reprezentuje jeden atom v prostředí, který se umí odrážet od stěn.
- V třídě RamdomWorld postupně implementujte metody random_atom(), get_list_of_atoms(), random_color(), random_atoms(), které generují atomy náhodných barev, poloh a smerů rychlostí.
- Nezapomeňte inkrementálně postupovat při vývoji skriptu.
2. úkol (2 body)
-
Přidejte novou třídu FallDownAtom, která reprezentuje atom, na který působí gravitace. Třída bude obsahovat dvě třídní proměnné: gravity a damping.
- gravity - určuje gravitační zrychlení, které můžete pro podmínky naší simulace zvolit 0.3.
- damping - určuje útlum při odrazu kuličky od podložky tak, aby se odrazila pouze několikrát. Výška odskoku se tak snižuje.
- Hint: Gravitace působí na y-ovou složku vektoru rychlosti. V každé iteraci voláním metody apply_speed().
- Hint: FallDownAtom je specializací třídy Atom.
Cvičení 5
Práce se třídami.
1. úkol (0,5 bodu)
- Stáhněte si archív playground.zip
- Pracovat budeme se souborem example1.py v archívu playground.zip. Soubor playground.py zajišťuje vytvoření gui a timeru. V časových intervalech je volána metoda tick(), kterou naleznete v souboru example1.py. Vizte poznámky v souboru example1.py.
- Po spuštení example1.py uvidíte následující okno:

- Zkuste si přidat další kuličky s atributy x = 360, y = 50, radius = 15 a x = 100, y = 20, radius = 8.
- Hint: kulička je reprezentována trojicí hodnot uložených v tuple (x, y, radius), kde x, y jsou souřadnice a tato trojice se vrací ve funkci tick().
- Po vytvořeni kuliček by mohlo kreslící plátno vypadat následovně:

2. úkol (0,5 bodu)
- Rozpohybujte jednu libovolnou kuličku.
- Rozpohybování by mohlo vypadat následovně:

- Hint: Kuličku rozpohybujete vodorovně tak, že k její souřadnici x budete přičítat číselnou hodnotu. Proměnnou pro souřadnici x a proměnnou, která bude reprezentovat rychlost této kuličky vytvořte například v konstruktoru.
- Hint: Můžete vytvořit metodu rychlost(), která bude danou souřadnici inkrementovat - tuto metodu je potřeba volat v metode tick().
3. úkol (1 bod)
- V metodě rychlost() kontrolujte, zda se kulička dostala na hranici plátna.
- V okamžiku, kdy se kulička dostane za hranici plátna otočte směr jejího pohybu.
- Pohyb by mohl vypadat následovně:

4. úkol (1 bod)
- Pokuste se rozpohybovat i ostatní kuličky a to jak v souřadnicích x tak y.
- Pokud se kuličky dostanou na hranici hracího plátna, změnte jejich směr.
- Pro rozpohybování kuliček, můžete použít jejich reprezentaci pomocí objektu, jak je popsáno v následujícím bodě 5.
- Pohyb by mohl vypadat následovně:

5. úkol (2 body)
- Vytváření kuliček a jejich vlastností takto ručně není moc vhodné.
- Vytvořte tedy třídu Kulicka, která bude reprezentovat jednotlivé kuličky. Třída bude mít kostruktor s argumenty x, y, radius a tyto argumenty je treba uložit do odpovídajících proměnných.
- Ve třídě Kulicka vytvořte metodu vrat_trojici(). Metoda bude vracet tuple (x, y, radius).
- Třída Kulicka by se také mohla starat o pohyb kuliček. Konstruktor by poté měl i parametr reprezentující rychlost.
- V konstruktoru třídy Example1World vytvořte 5 instancí třídy Kulicka. Za pomocí metody vrat_trojici() zavolané na jednotlivé kuličky zajistěte jejich vykreslení.
Cvičení 4
Práce se třídami: zadání úkolu.
Cvičení 3
Práce se soubory: zadání úkolu, soubor taxi.txt.
Cvičení 2
Opakování úvodu: zadání úkolu.
Cvičení 1
Úvod do Pythonu (zadání).