SASTĀDI PROGRAMMU PATS!

Piekta turnīra noteikumi.
Dalībniekiem piedāvā ieprogrammēt spēli, kuras noteikumi minēti zemāk, bet programmas spēlējot savā starpā noteiks, kura no tām ir labāka. Turnīrs noslēgsies 1995.gada decembrī.

Speles noteikumi. Spēles laukums ir kvadrāts ar 88 rūtiņam, kuras aizpildītas ar skaitļiem no 0 līdz 6 kā parādīts 1. zīmējumā.

0	6	6	2	3	5	1	6	
6	0	1	5	4	3	3	0	
0	6	3	4	4	4	6	4	
5	2	5	2	2	2	2	3	
1	1	0	0	4	3	3	3	
5	5	0	0	3	4	3	1	
5	1	2	1	4	4	2	5	
1	6	1	6	2	5	0	6	

1. zīm. Spēles laukums.

Vēl nepieciešams pilns domino spēles kauliņu komplekts. Visi 28 kauliņi parādīti 2. zīmējumā.

2. zīm. Domino kauliņu komplekts.

Spēlē divi spēlētāji - noteiktības dēļ sauksim viņus par A un B. Spēle sastāv no 2 posmiem.

1. posms. Pirmajā posmā spēlētāji pēc kārtas izvēlas atklātus domino kauliņus: sakumā spēlētājs A izvēlas vienu no 28 kauliņiem, pēc tam savukārt spēlētājs B izvēlas vienu no 27 atlikušajiem kauliņiem, pēc tam atkal spēlētājs A izvēlas jebkuru kauliņu no atlikušajiem 26 un tā tālāk, līdz visi kauliņi ir beigušies. Ar to arī pirmais posms noslēdzas. Tā beigās katram spēlētājam ir pa 14 "saviem" domino kauliņiem. 
2 posms. Otrajā posmā spēlētāji novieto savus kauliņus uz spēles laukuma, ievērojot sekojušus noteikumus:
•	abām spēles laukuma rūtiņam, uz kurām novieto kauliņu, jābūt brīvām - kauliņi nedrīkst atrasties viens uz otra; atzīmēsim, ka salīdzinājumā ar novietojumu 2. zīmējumā, kauliņus atļauts pagriezt par 90 vai 180;
•	abiem skaitļiem, kas ir uz kauliņa, jasakrīt ar skaitļiem spēles laukuma rūtiņās, uz kuriem tas novietots;
•	par katru uzlikto kauliņu spēlētājs saņem tik punktu, cik abās nosegtās rūtiņās kopā plus vēl 6 punktus;
•	viena gājienā laikā drīkst novietot tikai vienu kauliņu;
•	ja spēlētājs nevar izdarīt gājienu, tad viņš beidz spēli un tālāk gājienus izdara tikai viņa sāncisis;
•	spēle beidzas, kad abi spēlētāji nespēj izdarīt gājienu.
Otrajā posmā pirmais gājienu veic spēlētājs B (tas, kurš beidza pirmo posmu). Gājienus spēlētāji izdara pēc kārtas. Uzvar tas, kurš savācis visvairāk punktu.

	Programmas savā starpā spēlē mačus no 2-4 partijām, pārmaiņus kā spēlētāji A un B. Vienāda uzvaru skaita gadījumā par uzvarētāju uzskato to, kuram lielāka punktu starpība.
	Programmām jābūt paredzētām darbībai uz IBM-saviētojamām ESM un drīkst izmantot sekojošus resursus: operatīvo atmiņu 4 MB, VGA grafisko adapteri; 1. posma un 2. posma veikšanai programmām uz mašīnas ar procesoru 80386DX un takts frekvenci 40 Mhz paredzētas pa 1,5 minūtēm katram. Ierobežojumi uz katram atsevišķam gājienam patērēto laiku nav, ja tikai kopējais posmā patērētais laiks nepārsniedz 1,5 minūtes. Tiek pieļauta iebkura programmēšanas valodu vai sistēmu lietošona. Programmas teksts nav obligāti jāuzrāda -- nepieciešamas vienīgi nodot disketi ar izpildāmo failu (vai nepieciešamo failu paketi). Laiks, ko patērē pretinieka programma, meklējot atbildes gājenu, vērā ņemts netiek. Laiks, ko patērē programma tās ielādei, tiek ņemts vērā. Informācijas apmaiņa ar cieto disku ir aizliegta.
	Programmas ārējā noformējuma minimālās prasības - skaidra un viennozīmīga norāde uz to, tieši kāds gājiens izdarīts. Pirmajā posmā - kāds kauliņš izvēlēts, otrajā posmā - kurš kauliņš tiek novietots, kurās rūtiņās un kā kauliņš pagriezts. Programmai obligāti jānodrošina gājienu ievads no klaviatūras (un jādod skaidri norādijumi par ievada organizāciju). Šim nolūkam drīkst izmantot kursora pārvietošanu, rūtiņu divkaršo indeksāciju (analogi šaha galdiņam: burtiem no a līdz h apzīmēt stabiņus, skaitļiem no 1 līdz 8 - rindiņas) u.t.t. Ievadu var dublēt ar “peles” palīdzību. Dialogu ar lietotāju var organizēt jebkurā valodā. Mēģinājums izdarīt aizliegtu gājienu (piemēram, 1. posmā izvēlēties jau paņemtu kauliņu, 2. posmā aizņemt jau nebrīvu rūtiņu vai aizņemt rūtiņu ar citu skaitli) tiek sodits - programmai tiek ieskaitīts zaudējums ar rezultātu 0:27.
	Un, kā vienmēr, daži iesildīšanās uzdevumi. Labākie šo uzdevumu risinājumi tiks atzīmēti.
 1. Kādu vismazāko kauliņu skaitu otrajā posmā laukumā var novietot abi spēlētaji kopīgi spēlējot (citiem vārdiem, ar kādu vismazāko kauliņu skaitu var nobloķēt spēles laukumu) ?
 2. Cik kauliņu vairāk otrajā posmā viens spēlētajs var novietot laukumā nekā otrs? Tiek pieņemts, ka abi spēlētāji cenšas kopīgiem spēkiem realizēt šo mērķi, palīdzot viens otram (viens cenšas novietot pēc iespējas vairāk kauliņu, otrs - mazāk).
 3. Cik dažādos veidos var novietot spēles laukumā visus 28 kauliņus, ievērojot spēles noteikumus?
 4. Ja visi 28 kauliņu novietot uz spēles laukuma pēc tās noteikumiem, tad kāds ir vismazākais kauliņu skaits, kuri var būt novietoti horizontāli (vertikāli)?