Kabe Kabelaual on 8x8 ruutu, mustad ja valged ruudud kordamööda. Nupud asuvad mustadel ruutudel. Vasak alumine ruut on must. Siin ülesannetes tähistatakse valget kivi (kabenuppu) tähega v ning musta kivi tähega m. Tühjad mustad ruudud on tähistatud punktiga. Laua kirjeldusele järgneva vaba rea järel on tähega kirjas, millist värvi nupu kord on käia. Algseis näeb välja selline. m m m m m m m m m m m m . . . . . . . . v v v v v v v v v v v v v Ülesandeid * Loe seis failist mällu, massiivi. * Trüki valgete kivide arv. * Trüki mälus olev seis vastusefaili. * Märgi valge kõik võimalikud käigud sümboliga '1', trüki tulemus. * Tee valgega üks juhuslik käik võimalikest. Trüki tulemus faili. * Märgi kõik kohad, kuhu valgel on võimalik võtta sümboliga '2'. Trüki tulemus faili. Võtmiseks peab diagonaalis kõrval olema must kivi ning selle taga tühi ruut. * Tee olemasolev võtmiskäik koos musta nupu eemaldamisega, trüki tulemus. * Loetakse seis failist, kontrollitakse faili lõpus määratud värviga nuppude võtmis- ja käiguvõimalusi. Kui võtmine võimalik, tehakse juhuslik võtmiskäik. Muul juhul kui käimine võimaik, tehakse juhuslik käimiskäik. Tulemus kirjutatakse samasse faili, järgmiseks käijaks määratakse vastasvärv. * Võrreldes eelmisega lisatakse eraldi faili käikude logi. Koduseks nuputamiseks üks järgnevatest ülesannetest: * Saadakse hakkama ka mitme nupu järjestikuse võtmisega * Näita kõik valge võimalikud käigud. Arvestatakse ka võimalust, kus kivi on muutunud kabeks (tammiks). Valge tammi tähis on suur V. * Taasta logi järgi seis soovitud käikude arvu järel. * Valge valib käimise korral võimaluse korral käigu, kus must valge nuppu ei löö. * Valge valib käimise korral võimaluse korral käigu, kus satub serva ning pole ise löödav. * Teatatakse, kas pärast tehtavat käigupaari on üks pool võitnud. * Näidatakse, kui leidub seis, kus on võimalik nupu ette käimise teel vastase kaks nuppu lüüa. * Näidatakse, kas ning kuidas on võimalik järgneva käiguga kabestuda (tammiks muutuda) * Teatatakse, kas tegemist on olukorraga, kus nupud on olemas, kuid ühtki käiku pole võimalik teha (peldik). * Teatatakse, kas tegemist on olukorraga, kus ühtki käiku pole võimalik teha ilma, et vastane käidud nuppu lööks. * Näidatakse, kas tegemist on "tammilõksuga". St., et tamm (kabe) satub võtmise teel olukorda, kus vastase nupp saab teda lüüa. Grupitöö Põhiülesanne: koostada programm, mis loeks failist sisse seisu, teeks reeglitele vastava ja võimalikult aruka käigu ning salvestaks seisu pärast käiku samasse faili. Töö valmimise käigust ning saadud tulemustest tuleb igal grupil valmistada esitlus (~5 min) ning see järgneval esmaspäeval ette kanda. Pärast esitlust toimub turniir gruppide kabeprogrammide vahel. Turniiri käigus hinnatakse lisaks saavutatud mängutulemusele ka oskust selgitada oma rakenduse töö aluseks olevate algoritmide toimimist mängu käigus ette tulevate olukordade näitel. Alamülesandeid * Valige oma grupi liikmete kodutööde hulgast välja programmeerimiskeel ja koodipõhi, mille peale asuda kabemängu looma. * Lisage kodutööna valminud mänguolukordade lahendused aluseks võetud põhjale. * Koostage loetelu võimalikest olukordadest, mida üks kabeprogramm saaks kontrollida ja arvestada. * Hinnake iga olukorra arvestamise tähtsust ja keerukust vähemalt kolmepallisel skaalal. * Valige välja võimalused, mida asute oma grupis realiseerima. * Jagage liikmete vahel, kelle (või millise paari) ülesandeks millise võimaluse realiseerimine jääb. * Pange arutelu käigus tekkinud ideed ja lahendusalgoritmid slaididele. * Hoolitsege, et slaidil oleks vähemalt ühe algoritmi kirjeldus teemal "Kuidas teha võimalikult hea käik". * Testige valminud programmi. Hoolitsege, et programm saaks kindlasti ja reeglite vastu eksimata hakkama kividega mängus. * Mõelge läbi esitlus ning proovige, et see jääks 4-5 minuti piiridesse.