[c01 Конкурс X0] Крестики-Нолики, Правила и Условия |
Этот раздел предназначен исключительно для проведения конкурсов. Создание новых тем пользователями тут запрещено. Ответы в разрешенные темы только по теме соответствующего конкурса и в согласии с его правилами.
[c01 Конкурс X0] Крестики-Нолики, Правила и Условия |
Lapp |
7.04.2009 3:48
Сообщение
#1
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Имею честь объявить Первый Конкурс Форума!
Итак, к делу: Знакомые всем с детства - Крестики-Нолики. Цель конкурсного задания - программа, играющая в игру Крестики-Нолики. Правила игры, по-видимому, известны всем. Привожу неформальное их описание и уточнение. Правила игры. Игра происходит на квадратном поле размером M на M (обычно 15х15, но возможны вариации) клеток, или полей. Игроки ходят по очереди. Ходом считается выставление на доску фишки. Фишки есть двух видов: "крестики" (Х) и "нолики" (0). Каждый из игроков играет одним из видов фишек. Играющий крестиками ходит первым. Ход производится в любое незанятое поле. Цель игры: поставить на доске комбинацию из L (обычно 5, вариации маловероятны) расположенных по прямой (по горизонтали, вертикали или одному из диагональных направлений) соседствующих между собой фишек своего вида. При появлении такой комбинации на доске игрок, выставивший ее, считается выигравшим, и игра прекращается. Ситуация, когда все поля на доске заняты, а выигрышная комбинация не наблюдается, называется "ничья". Формат конкурса. Конкурс проводится в три раунда. Первые два раунда являются подготовительными. Результат Конкурса целиком определяется результатами третьего раунда. В каждом раунде каждая из программ-участниц играет с каждой, причем два раза: один раз крестиками и один ноликами. За выигрыш в партии участнику начисляется 2 очка, за ничейный результат - 1 очко, за проигрыш - 0 очков. Результаты каждого раунда (турнирная таблица и все сыгранные партии) публикуются на Форуме. Участники Конкурса могут ознакомиться с ними и в соответствии с этим изменить свои программы (версия 2 и 3). Если участник не подает новой версии на следующий раунд, в нем участвует программа, поданная на предыдущий раунд. Участник может присоединиться к Конкурсу перед первым, вторым или третьим раундом. Ориентировочное время, дающиееся на подготовку к очередному раунду - 2-3 недели. Точная дата раунда опубликовывается не позже, чем за 2 недели до него. Участие. Участником Конкурса может стать любой человек, зарегистрированный на Форуме "Все о Паскале" не менее, чем за месяц до объявления Конкурса, и имеющий как минимум 15 профильных сообщений (то есть не в разделе Свободное Общение) на нем, а также выполняющий Условия Конкурса. Формат и условия, налагаемые на конкурсную работу. 1. Программа должна быть написана на языке Паскаль. 2. Программа должна представляться на Конкурс в виде исходника (программного кода на языке Паскаль) в одном файле. 3. Компиляция программ будет осуществляться по выбору участника либо компилятором Free Pascal 2.2.2 (FPC), либо Borland Pascal 7.0 (BPC). По умолчанию используется компилятор FPC. Если вы хотите, чтоб ваша программа была скомпилирована BPC, то первой строкой укажите: {BPC}. 4. Программа не должна использовать никаких юнитов (включая стандартные), кроме System (встроенного в компилятор). В соответствии с этим, директива uses запрещена к применению. 5. Также, запрещенными являются процедуры/функции/директивы, приведенные в списке: asm exec interrupt inline uses unit chdir erase getdir mkdir rename rmdir Программы, содержащие перечисленные слова (даже в комментариях) к Конкурсу не допускаются. 6. Программа не должна создавать никаких файлов, кроме файла out.txt по оговоренному формату. Программа, нарушившая это правило, снимается с соревнований. 7. Время работы программы ограничено 1 секундой (ориентировочно, на процессоре 2 ГГц). Программа, превысившая лимит времени, считается проигравшей. 8. На использование памяти ограничений не накладывается. 9. Запрещено любое действие, не служащее цели задания Конкурса. Действия, направленные на взлом компьютера, наказываются. 10. Каждый участник может выставить на один раунд одну программу. Запрещается использование более, чем одного аккаунта для участия в Конкурсе. 11. Программа должна быть написана самим участником. Запрещается выставление на Конкурс чужих программ, даже с согласия их авторов. 12. Правила могут изменяться и дополняться при выявлении неучтенных ситуаций. Задача программы, участвующей в Конкурсе, и интерфейс. Программа-участница должна сделать ОДИН ХОД, исходя из ситуации на доске. Полная партия между двумя участниками реализуется поочередным запуском программ. Этим занимается специальная программа-рефери, которая является частью программного обеспечения Конкурса. Программа-рефери подготавливает входные данные для каждого хода, запускает программы-участницы, читает выходные данные, следит за выполнением правил игры и определяет выигрышную/ничейную ситуацию в партии. Входную информацию ваша программа получает из файла in.txt, который содержит: 1. На первой строке - два числа, разделенные пробелами: M и L. M - размер доски по стороне; L есть длина выигрышной последовательности. 2. Последующие M строк по M чисел содержат информацию о текущем положении на доске. 0 означает незанятое поле, 1 - ход первого игрока (крестик), 2 - ход второго игрока (нолик). В качестве результата программа должна записать файл out.txt, после чего завершить работу. Файл out.txt должен состоять из одной строки, в которой содержатся два числа, разделенные пробелами и представляющие координаты X (номер позиции в строке) и Y (номер строки) сделанного программой хода. Просьба обратить внимание, что во входных данных не говорится явно, какими фишками (крестиками или ноликами) нужно играть - это программа-участница должна определить сама, исходя из количества сделанных ходов на доске. Подача конкурсных работ. Конкурсные работы (файлы), пожалуйста, присылайте Личными сообщениями (личка, ПМ, PM, personal messaging) на имя пользователя Contest. В сабжекте сообщения и первой строкой текста необходимо указать название конкурса и номер раунда, например: X0, раунд 1. Сама программа должна быть непосредственно в теле сообщения (по возможности не прикрепляйте файлы, хотя это допустимо). В течение суток отметка о приеме работы должна появиться в специальной теме (см. ниже). Принятые программы не будут публиковаться вплоть до завершения Конкурса (всех раундов). После завершения программы победителей будут опубликованы. Сопровождение Конкурса. Помимо этой темы, к этому Конкурсу относятся все темы этого раздела, в заголовке которых присутствует запись [c01 Конкурс X0]. Подробнее: - тема "[c01 Конкурс X0] Крестики-Нолики" - эта тема. В ней будут сообщения о правилах, объявления о начале и окончании раундов и т.п. Тема закрыта для приема сообщений от пользователей - тема "[c01 Конкурс X0] Прием работ". Здесь будут появляться сообщения по мере поступления работ через личку на имя пользователя Contest. Тема закрыта для приема сообщений от пользователей; не пытайтесь постить сообщения в этой теме. Собственно подача работ осуществляется способом, описанным выше. - тема "[c01 Конкурс X0] Обсуждение". Здесь пользователи могут обсуждать все, что относится к Конкурсу (вопросы по условию, протекание конкурса, возникшие проблемы, реплики болельщиков..) Просьба воздержаться от публикации кода решения и вообще от разговоров про реализацию. - тема "[c01 Конкурс X0] Результаты". Эта тема появляется не сразу, после первого раунда. Ее назначение, думаю, понятно. Ответственный за проведение Конкурса - Lapp Если у вас остались вопросы - пожалуйста, задавайте их в соседней теме, [c01 Конкурс X0] Обсуждение. Эта тема закрыта для сообщений пользователей, она будет содержать только сообщения Администрации. Желаем успеха и интересной борьбы! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 19.11.2024 8:23 |