IB111- Domácí úkol 2 Skupina 28 (pondělí 12:00-13:50) 19.10.2016 22:00 Simulátor hry „Člověče, nezlob se!" (maximum 15 b): Ve druhé domácí úloze se budeme zabývat simulátorem hry „Člověče, nezlob se!". Vaším výstupem budou tři funkce. Jedna bude simulovat samotnou hru a zbylé dvě budou počítat statistiky nad několika partiemi. Naprogramujte proceduru game (length), kde parametr length určuje velikost hracího pole. Hrací pole se skládá ze startovního pole, length polí hracího plánu a jednoho pole pro domeček. Celá hra bude obsahovat právě jednu figurku, která se zpočátku nachází na startovním políčku. Dokud na hrací kostce nehodíme šestku, figurka nemůže odstartovat. První hozená šestka figurku posune na první políčko hracího plánu. Hra končí ve chvíli, kdy se figurka dostane do domečku. Pokud se figurka nachází n polí před domečkem a na hrací kostce padlo číslo větší než n, figurka zůstane stát na místě. Hrací kostku budeme simulovat pomocí generátoru pseudonáhodných čísel. Použijeme klasickou kostku, na které mohou padnout čísla od jedné do šesti. Pokud padne šestka, automaticky hážeme ještě jednou (i v případně, že jsme na startovním políčku). Funkce game (length) vypíše na obrazovku tolik řádků, kolikrát bylo taženo figurkou. (Mezi dvěma výpisy může být hozena několikrát po sobě šestka a právě jednou jiné číslo.) Na každý řádek vypíšete stav celé hry. Nejprve vypíšete součet čísel, která padla na kostce, potom bude následovat schéma hracího plánu se zakreslenou figurkou na správném políčku. Grafické/textové zpracování nechávám na vaší kreativitě. Na konci hry fuknce game (length) vrátí celkový počet tahů v celé hře. Výpis na obrazovku funkce game(3) může vypadat například takto: 5 *-...-F 7 S-.*.-F 4 S-.*.-F 2 S-...-* Dále naprogramujte funkci average(count, length), která odsimuluje count partií na hracím plánu délky length a vrátí průměrný počet tahů. Na obrazovku se v tuto chvíli vůbec nic nevypisuje. Závěrem naprogramujte proceduru statistics(count, maxLength), která vypíše na obrazovku průměrné počty tahů v jednotlivých partiích, které používají různou délku hracího plánu. Budete postupovat od hracího plánu délky 1 až po hrací plán délky maxLength včetně. Pro každou délku hracího plánu vypíšete na samostatný řádek délku plánu a průměrný počet tahů spočítaný z count partií. Výpis po zavolání procedury statistics (10, 3) může vypadat třeba takto: 1 6 2 5 3 7 1 Jako bonus se zkuste zamyslet nad tím, proč vám statistiky vycházejí tak, jak vycházejí. Své případné komentáře prosím pište jako komentář přímo do zdrojového kódu. Komentář, který nesouvisí přímo s kódem dejte před začátek nebo za konec programu. Odevzdávejte tentokrát jeden jediný soubor s příponou *.py. Poznámka: Závěrem jen připomenu, že řešení odevzdáváte do příslušné odevzdávárny v ISu podle vaší skupiny. Za pěkná řešení vám rád udělím bonusové body. Do odevzdávárny můžete svá řešení nahrát vícekrát, počítá se poslední odevzdání. Hlídejte si prosím termín i čas uzavření vaší odevzdávárny. Před termínem odevzdání za mnou můžete po domluvě přijít na konzultaci. Když mi ukážete nebo pošlete svoje řešení s předstihem, tak vás rád upozorním na případné nedostatky, za které bych ve finální verzi strhnul nějaké body. Nenechávejte to na poslední chvíli a neopisujte. Chtěl bych pochválit dva studenty, kteří se mnou konzultovali minulou domácí úlohu. Myslím, že se to pozitivně projevilo v kvalitě a v jejich bodovém hodnocení. 2