Pokyny Odovzdávajte jeden súbor ​du5.py​ do odovzdávarne určenej pre vašu skupinu. Deadline je 10.12.2016 23:59 ● Používajte anglické premenné a názvy funkcií. ● Ku každej časti napíšte koľko vám zabrala (v minútach). ● Odovzdávajte aj čiastočné riešenia s komentárom prečo sa vám to nepodarilo ● Neodpisujte. ● Funkcie a parametre nemusia byť pomenované podľa zadania pokiaľ budete robiť nejaké rozšírenia. ● Odovzdaný skript by mal sám spustiť hru. ● V prípade otázok alebo nejasností mi napíšte mail. Arena game Vytvorte hru, v ktorej zápasia dvaja bojovníci. Na jednom počítači proti sebe hrajú dvaja hráči. Každý z nich ovláda jedného bojovníka, ktorý použitím rôznych útokov zadaných z klávesnice útočí na toho druhého. Hrdina (Hero) Každý bojovník má meno, zdravie, energiu a pozná niekoľko útokov. ● name ​- meno je ľubovoľný reťazec znakov - v rámci hry by malo by byť unikátne. ● health ​- zdravie je nezáporné celé číslo. Určuje body života. ● energy ​- energia je nezáporné celé číslo. Je potrebná pre vykonávanie útokov. ● attacks ​- je zoznam schopností typu Attack. Útok (Attack) Každý útok má názov, náročnosť, základnú silu, pravdepodobnosť kritického zásahu a násobiteľ kritického útoku. ● name ​- názov je ľubovoľný reťazec znakov - v rámci hry by malo by byť unikátne. ● attack_power ​- základná sila je kladné celé číslo. Určuje, koľko bodov života útok uberie tomu, koho útok trafí. ● energy_cost ​- náročnosť je kladné celé číslo. Je to počet bodov energie potrebných pre vykonanie útoku. Ak má útočník menej energie ako je náročnosť útoku, ktorý chce použiť, útok neprebehne, (ale útočník nestratí ťah, takže si môže zvoliť iný útok). ● critical_chance ​- pravdepodobnosť kritického zásahu je desatinné číslo v intervale (0;0.5] a udáva šancu, že útok zasiahne súpera kritickou silou. (0.5 predstavuje 50% šancu) ● critical_amplifier ​- násobiteľ kritického útoku je desatinné číslo v intervale (1;3] a udáva hodnotu, ktorou sa bude násobiť základný útok v prípade, že nastal kritický zásah. Súboj (Arena) V každom kole útočí jeden bojovník na toho druhého, pričom rola útočníka a obrancu (príjemcu útoku) sa po každom kole strieda. Obranca na začiatku kola odpočíva, (pridá sa mu 10 % celkovej energie a 10% celkového zdravia). Útočník si vyberie jeden útok zo zoznamu a zaútočí. Hra končí, keď jednému z bojovníkov klesne zdravie na 0 a prehrá. Jedno kolo hry môže vyzerať napríklad takto: + ------------------------- Round 1 ------------------------- + Pikachu energy regenerated to 150 Pikachu health regenerated to 300 Batman Health: 350/350 Energy: 175/175 Pikachu Health: 300/300 Energy: 150/150 Attacks available for Batman : 1 - 'Fist' power: 10 energy cost: 5 critical chance: 0.5 and critical amplifier: 1.4 2 - 'Hook fist combo' power: 40 energy cost: 18 critical chance: 0.3 and critical amplifier: 2.1 3 - 'Rampage' power: 280 energy cost: 175 critical chance: 0.1 and critical amplifier: 1.5 Choose attack: 565 Invalid index number. Enter again: sas Not a number Enter again: 3 Batman attacked Pikachu with Rampage Hit with 280 power. Batman energy regenerated to 17 Batman health regenerated to 350 Pikachu Health: 20/300 Energy: 150/150 Batman Health: 350/350 Energy: 17/175 Attacks available for Pikachu : 1 - 'Tail whip' power: 10 energy cost: 5 critical chance: 0.5 and critical amplifier: 3 2 - 'Electro ball' power: 50 energy cost: 24 critical chance: 0.3 and critical amplifier: 3 3 - 'Thunder shock' power: 300 energy cost: 150 critical chance: 0.1 and critical amplifier: 1.3 Choose attack: 3 Pikachu attacked Batman with Thunder shock Critical hit with 390 power. Hero Pikachu won! Požiadavky ● Doplňte kostru zadania. Pracujte po poradí a snažte sa využívať predtým vytvorené metódy ● Ak chcete dosiahnuť pekné zarovnanie do tabuľky, použite metódu format(). Dokumentáciu nájdete na: https://docs.python.org/2/library/string.html#format-string-syntax​. ● Aspoň dve triedy, ​Hero ​a ​Attack ​musia obsahovať metódu​ __str__(), ​ ktorá vráti ich textovú reprezentáciu ● Po splnení celej kostry - doplňte funkciu ​get_attack_from_computer ​ - ktorá bude obsahovať stratégiu pre single player ktorou bude hrať počítač. ○ na začiatok stačí aby vyberal útoky pre ktoré má dostatok energie ○ akékoľvek pokročilé techniky budú odmenené bodmi ● Doplňte ďalších hrdinov do vašej hry a naprogramujte spustenie kde užívateľovi dáte možnosť vybrať mód ■ mutliplayerom - dvaja hráči ■ singleplayerom - hráč vs počítač ○ A po výbere módu im umožníte vybrať hrdinu/(ov) Bonusy: Štýl výpisu aj koncept hry si môžete upravovať a rozširovať (až po splnení základného zadania). Jasne popíšte na začiatok vypracovanej úlohy v čom spočíva vaša zmena oproti zadaniu - ináč to bude posudzované ako odklonenie od zadania.