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 vsb.cz.
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í).