11 турнир компьютерных программ.
Мы предлагаем правила логической игры. Каждый участник должен написать программу, которая играет в нее. Затем разыгрывается  турнир между программами, и автор лучшей программы становится победителем. 

Правила игры
Игровое поле имеет форму квадрата размером 5x5 клеток. Имеется 25 карточек, на каждой из которых написана одна цифра 0, 1, 2, 3 или 4 – по 5 карточек с каждой цифрой.
В игре участвуют два игрока. Игроки ходят по очереди. Ход состоит в том, что игрок выкладывает одну из карточек на какую-нибудь свободную клетку игрового поля. После того, как карточка выложена на игровое поле, ее больше трогать нельзя. Игра заканчивается, когда все 25 карточек выложены на поле. 
После этого происходит подсчет очков. Каждый игрок владеет шестью линиями: пять строк игрового поля и диагональ, идущая из левого верхнего угла в правый нижний, принадлежат первому игроку; пять столбцов и диагональ, идущая из левого нижнего угла в правый верхний, принадлежат второму игроку. Очки начисляются следующим образом:
•	если в одной линии встречаются пять одинаковых чисел, то владелец этой линии получает 25 очков;
•	если в одной линии встречаются четыре одинаковых числа, а пятое число от них отличается, то владелец этой линии получает 15 очков;
•	если в одной линии встречаются три одинаковых числа, а два других числа равны между собой (и не равны трем другим), то владелец этой линии получает 10 очков;
•	если в одной линии встречаются три одинаковых числа, а два других числа не равны между собой (и каждое из них не равно трем другим), то владелец этой линии получает 5 очков;
•	если в одной линии встречаются две пары одинаковых чисел (числа из разных пар различны), а пятое число отличается от четырех других, то владелец этой линии получает 3 очка;
•	если в одной линии встречаются два одинаковых числа, а все остальные числа от них отличаются и попарно различны, то владелец этой линии получает 2 очка;
•	если в одной линии встречаются все 5 различных чисел, то владелец этой линии получает 8  очков.
Коротко правила начисления очков представлены в таблице:

Комбинация	5 разных	2	2+2	3	3+2	4	5	
Очки	8	2	3	5	10	15	25	

Выигрывает тот из игроков, кто наберет больше очков. 

	Рассмотрим пример одной партии. В записи хода первый символ означает число, написанное на выкладываемой карточке, второй и третий символы обозначают клетку, в которую выкладывают карточку – столбец и строку. Столбцы игрового поля пронумерованы буквами, а строки – цифрами, как показано на рисунке ниже.

Номер хода	Первый игрок	Второй игрок	
1	4A1	0C2	
2	1B2	2B4	
3	0A3	3B5	
4	3D3	4B1	
5	4E5	4A5	
6	3E3	3A2	
7	1C1	0D5	
8	2C4	0B3	
9	4C3	3A4	
10	1D1	2E1	
11	2E4	1D2	
12	1C5	2E2	
13	0D4	---	

В результате к концу игры получается следующая позиция:

	A	B	C	D	E	
1	4	4	1	1	2	
2	3	1	0	1	2	
3	0	0	4	3	3	
4	3	2	2	0	2	
5	4	3	1	0	4	

Подсчитаем очки.  Первый игрок получает 3 очка за первый ряд, 2 очка за второй ряд, 3 очка за третий ряд, 5 очков за четвертый ряд, 2 очка за пятый ряд и 5 очков за свою диагональ – итого 20 очков. Второй игрок получает 3 очка за первый столбец, 8 очков за второй столбец, 2 очка за третий столбец, 3 очка за четвертый столбец, 5 очков за пятый столбец и 3 очка за свою диагональ – итого 24 очка. Второй выиграл со счетом  20:24.

Требования к программам и технические условия. Минимальные требования к оформлению внешнего вида программы: ясные и непротиворечивые указания, какой именно ход выполняется – какое число и в какую клетку выкладывается. Программа обязана поддерживать ввод ходов с клавиатуры (и давать ясные указания по организации ввода). Для этого следует пронумеровать клетки, как на рисунке. Диалог с пользователем может быть организован на любом языке, принимая во внимание общепринятые правила этикета при использовании электронных средств общения. Попытка сделать запрещенный ход (например, поставить карточку в занятую клетку или взять карточку с номером, которого нет среди неиспользованных карточек) или неспособность программы воспринять корректный ход противника наказывается - программе присуждается поражение со счетом 0:12.
	Программы играют между собой матчи из 2-4 партий, начиная попеременно. Турнир проходит по круговой или по швейцарской системе. При определении победителей в первую очередь принимается во внимание количество побед, затем суммарная разница очков во всех играх.
	Программы должны работать под управлением Win NT/2K. Турнир будет разыгрываться на компьютерах с оперативной памятью 128 Мбайт и процессором Celeron с тактовой частотой 1200 МГц. Программе дается 30 секунд на партию. Разумеется, программа может быть отлажена на любом компьютере. Допускается применение любых средств программирования. Предъявлять исходный текст программы не обязательно - необходимо лишь представить исполняемый файл (или пакет необходимых файлов). Время, пока ищет ход программа противника, не учитывается. Учитывается время, затраченное программой от начала загрузки до начала ее работы. Ограничений по времени на каждый отдельный ход нет, лишь бы суммарное время не превышало 30 секунд.
Программа должна попасть в оргкомитет не позднее 3 декабря 2002 года. Телефон оргкомитета: 7336245. Можно принести решения по адресу:
Пулквежа Бриежа, 6, 1-й этаж, ”Progmeistars”
либо прислать по электронной почте: cm@progmeistars.lv
По этому же адресу можно задавать вопросы. Кроме того, информация будет появляться на сайте курсов “Progmeistars”
http://www.progmeistars.lv/olimpics.html

Каждый участник должен сообщить сведения о себе: имя, фамилию, название учебного заведения, класс (курс), полный почтовый  адрес, контактный телефон и/или e-mail.
При желании авторов лучшие программы будут выложены на сайт курсов “Progmeistars”.