IB111-Domácí úkoU (25 b) Skupina 28 (pondělí 12:00 - 13:50) 28.11.2016 12:00 Ve čtvrté domácí úloze se budeme zabývat upravenou verzí hry piškvorky, která se v angličtině nazývá Obstruction. Pravidla této hry jsou uvedena například na této stránce: http://www.papg.com/show?2XMX Podobně jako u piškvorek se střídají dva hráči, první má kolečka a druhý křížky. Vždy začíná hráč, který má kolečka. Každý hráč může pokládat svá kolečka nebo křížky na libovolné místo na hrací ploše, ale nesmí se dotýkat jiného kolečka nebo křížku ani hranou ani rohem. Hráč, který už nemůže položit svůj symbol na hrací plochu prohrává. Vaším úkolem je napsat simulátor této hry pro dva hráče pomocí želví grafiky. Můžete se nechat inspirovat grafickým zpracováním na zmíněné webové adrese, můžete si vymyslet vlastní vzhled. Hra začne, když uživatel zavolá funkci startGame(wiďth, height), kde width je šířka hracího pole a height je jeho výška. Tato funkce vykreslí hrací plán pomocí želví grafiky. Hru budeme simulovat postupným voláním funkce playTurn(x, y), kde x a y jsou souřadnice nového symbolu číslované od nuly. Automaticky se budou na tahu střídat kolečka a křížky počínaje kolečkem. Pokud z nějakého důvodu nebude možné položit symbol na hrací plochu (obsazené políčko, sousedství s jiným symbolem), funkce vrátí Falše a tah ignoruje. Pokud je všechno v pořádku, funkce vykreslí daný symbol pomocí želví grafiky a vrátí True. Pokud hra skončila (již nelze položit nový symbol na volné políčko), tak funkce playTurn napíše, kdo vyhrál. Může to provést pomocí funkce print nebo pomocí želví grafiky. Od této chvíle bude funkce playTurn vracet vždy Falše a bude ignorovat všechny další tahy. Bonus: Bonusové body budu udělovat pouze v případě přidání funkce autoTurnO, která vygeneruje právě jeden tah za hráče, který je právě na tahu a vrátí True. Pokud už nelze položit další symbol, funkce autoTurnO vrátí Falše a hráč, který je právě na tahu, prohrál. V případě prohry opět vypíše, kdo vyhrál. Nápověda: Funkce autoTurnO by měla volat funkci playTurn(x, y). Testy: Vaše funkce budu testovat mimo jiné na těchto programech: startGame (1 , 1) playTurn (0 , 0) playTurn (0 , 0) startGame (3 , 3) playTurn (0 , 0) playTurn (2 , 0) playTurn (0 , 2) playTurn (2 , 2) playTurn (1 , 1) 1 startGame (3 , 1) playTurn (0 , 0) playTurn (1 , 0) playTurn (2 , 0) playTurn (1 , 0) startGame (0 , 0) playTurn (0 , 0) #Bonus : startGame (1 , 1) autoTurn () autoTurn () startGame (10 , 10) while True : if autoTurn () = False: break Do odevzdávárny vkládejte právě jeden soubor s příponou .py. 2