Pokyny Odovzdávajte jeden súbor ​du4.py​ do odovzdávarne určenej pre vašu skupinu. Deadline je 19.11.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. Opäť bude námatková kontrola! ● Funkcie a parametre pomenujte presne podľa zadania. Overte, že sú možné spustenia uvedené v jednotlivých častiach. ● Odovzdaný skript nesmie nič spúšťať len musí mať definované spomínané funkcie. ● V prípade otázok alebo nejasností mi napíšte mail. Zadanie Vytvorte program, ktorý bude vedieť hrať hru "Jednorozmerné piškvorky" proti užívateľovi. Tato variácia sa hrá na jedno-rozmernom hracom pláne, tj. hrací plán je len zoznam políčok. Rovnako ako u bežných piškvoriek sa hráči striedajú a robia značky do neoznačených políčok tentokrát však majú obaja hráči rovnaký typ značiek. Vyhráva hráč, ktorý ako prvý označí 3 políčka vedľa seba. Základná varianta 15 bodov ● “Umelá inteligencia” dodržuje pravidlá, ale inak hrá náhodne. ● Hra umožňuje nastaviť : ○ rozmer hracieho plánu - ​game_plan_size ​- default 10 ■ rozmery plánu môžu byť od [5,40] ○ začína hráč alebo počítač - ​player_starts​- default True​. ● Hra kontroluje správnosť vstupov od užívateľa a vstupné parametre. Vzorové volania: game_three_in_row(​) game_three_in_row(game_plan_size=​10​, player_starts=​True) game_three_in_row(​10​,​True) Rozšírenie 1: 5 bodov Umožnite užívateľovi nastaviť dodatočné nastavenia pomocou parametrov: ● player_name - ​Meno hráča - bude sa používať pri výpisoch namiesto “Player” default “Player” ● empty_position_char - ​znak označeného políčka - default “ ” ● used_position_char - ​znak neoznačeného políčka - default “O“ Tieto nastavenia sa budú predávať ako parameter hry ​configuration​ (dátový typ slovník). Ak nebude hra spustená s parameterom ​configuration​ použite predvolené hodnoty, ak bude zadaný môžete predpokladať, že sú vyplnené všetky nastavenia. Vzorové volania: game_three_in_row(​) game_three_in_row(​) game_three_in_row(game_plan_size=​10​, player_starts=​True) game_three_in_row(​10​,​True) game_three_in_row(game_plan_size=​10​, player_starts=​True​, configuration={​"player_name"​: ​"Slavo"​, ​"empty_position_char"​: ​" "​, "used_position_char"​: ​"O"​}) Malý Bonus:​ Ošetrite aj to keď slovník predaný v parametri ​configuration​ neobsahuje všetky nastavenia. Vzorové volania: game_three_in_row(game_plan_size=​10​, player_starts=​True​, configuration={​"player_name"​: ​"Slavo"​,​"used_position_char"​: ​"X"​}) game_three_in_row(game_plan_size=​10​, player_starts=​True​, configuration={​"player_name"​: ​"Slavo"​}) Rozšírenie 2: 5 bodov Umelá inteligencia hrá spĺňa aspoň tieto podmienky: ● keď môže jedným ťahom vyhrať tak to zvládne ● nenahráva na výhru (ak sa dá vyhnúť) Veľký bonus: Naučte vašu “umelú inteligenciu” pokročilým stratégiám na výhru alebo vytvorte stromový priechod všetkých možností ako hrať hru. V komentári opíšte to, pre aké vstupy vaša stratégia funguje a čo je jej cieľom. Nápoveda​: Na hracom pláne nepárnej (lichej) veľkosti má výhernú stratégiu začínajúci hráč (a je relatívne jednoduchá). Hrať optimálne na hracích plánoch párnej (sudej) veľkosti už jednoduché nie je. Priklad hry game_three_in_row(game_plan_size=​10​, player_starts=​True​, configuration={​"player_name"​: ​"Slavo"​, ​"empty_position_char"​: ​" "​, "used_position_char"​: ​"O"​}) Slavo turn: 1 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 0 ##################### #O# # # # # # # # # # ##################### Computer turn: 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 0 ##################### #O# # # #O# # # # # # ##################### Slavo turn: 1 Wrong input try again: 666 Wrong input try again: 6a Wrong input try again: 6 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 0 ##################### #O# # # #O#O# # # # # ##################### Computer turn: 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 0 ##################### #O# # # #O#O#O# # # # ##################### Computer wins! GG