![]() |
Этот раздел предназначен исключительно для проведения конкурсов. Создание новых тем пользователями тут запрещено. Ответы в разрешенные темы только по теме соответствующего конкурса и в согласии с его правилами.
![]() ![]() |
![]() |
Lapp |
![]()
Сообщение
#1
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Имею честь объявить Первый Конкурс Форума!
Итак, к делу: Знакомые всем с детства - Крестики-Нолики. Цель конкурсного задания - программа, играющая в игру Крестики-Нолики. Правила игры, по-видимому, известны всем. Привожу неформальное их описание и уточнение. Правила игры. Игра происходит на квадратном поле размером 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] Обсуждение. Эта тема закрыта для сообщений пользователей, она будет содержать только сообщения Администрации. Желаем успеха и интересной борьбы! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Конкурс Крестики-Нолики открыт.
Прием работ на первый раунд продлится до 25 апреля, 23:59 (время московское, а точнее - время Форума) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Пока я тут валялся пару дней с температурой, я подумал: а не слишком ли жирно 2.5 недели на один раунд, который еще и ничего не решает особо?..
![]() Итак, это пока предварительно. Если в течение суток не поступит вразумительных возражений, то это будет утверждено ![]() Сообщение отредактировано: Lapp - 17.04.2009 10:35 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Возражений не случилось, голосов "за" тоже не прозвучало.. Ладно, не будем торопить события: как было сказано в начале, так и проведем. Но в условия Конкурса я все же внесу изменения, а именно: минимальный срок объявления раунда теперь будет не две недели, а десять дней.
Итак, еще раз подчеркну: Прием конкурсных работ первого раунда будет осуществляться, как и было объявлено ранее, до субботы 25 апреля, 23:59. Задавайте вопросы. Мне как-то не верится, что я в условиях все написал настолько понятно, что нечего и спросить ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Итак, Первый Раунд с треском провален. Не обошлось и без закидывания тухлыми яйцами (тут). Но - мы еще поборемся..
Объявляется Второй Раунд Конкурса Крестики-Нолики Прием работ на Второй Раунд будет продолжаться до 23:59, 10 мая 2009 г. Прошу всех обратить внимание на изменения в Условиях Конкурса! 1. Конкурс считается полностью состоявшимся, если в нем приняло участие как минимум 5 человек. Участие в конкурсе означает участие во Втором и в Третьем раундах. Конкурсант, не принявший участие в одном из раундов, считается участвующим "вне конкурса" и на призовое место претендовать не может. По итогам полностью состоявшегося Конкурса выдаются три приза (подробнее о приза - ниже): за первое, второе и третье место. Если участников было 4, то конкурс считается состоявшимся частично, и по его итогам выдаются призы за второе и третье место; первое место считается незанятым. Если участников было 3, то Конкурс также считается состоявшимся частично, и по итогам выдается приз за третье место; первое и второе места считаются незанятыми. Если участников было менее трех, конкурс считается несостоявшимся, и призы не выдаются. Если участники показывают равные результаты, призовой фонд комбинируется и делится между участниками. 2. Окончательный результат Конкурса подсчитывается по формуле: R = R2 + 2*R3 - где R2 и R3 есть результаты второго и третьего раундов соответственно. 3. Далее, я постарался принять в учет тот факт, что фактически в алгоритмах, по-видимому, будет присутствовать случайный элемент (как средство выбора между однаково хорошими вариантами хода). Поэтому, каждые два участника будут играть между собой не две партии (по одной крестиками и ноликами), как было объявлено ранее, а десять - по пять партий крестиками и ноликами соответственно. ------- ------ Призы. Как я уже сказал в Обсуждении, я намерен выставить три приза. Призы будут представлять собой программное обеспечение (софт) или компьютерное оборудование (хард) на суммы (не более, включая доставку): - $100.00 за первое место; - $50.00 за второе место; - $30.00 за третье место. Немного поясню про распределение призового фонда при равных результатах. Например, при общем числе участников 6, если налучший результат показывают два участника, то они делят между собой 1-е и 2-е места, каждый получает приз на ($100+$50)/2=$75 . Если пять участников показали третий результат - что ж, на каждого придется по $6. Конкретное воплощение призов предлагаю обсудить в теме Обсуждение. Надеюсь, участники Форума признают такие условия справедливыми. Если нет - опять же, милости прошу в Обсуждение.. Как я говорил раньше, после раунда можно будет просмотреть все сыгранные партии и проанализировать их с целью внесения изменений в конкурсные программы. Я уже опубликовал ссылку на просмотровую утилиту, сочтя, что более предметное рассмотрение поможет участникам лучше вникнуть в вопрос. Итак, отсчет Второго Раунда пошел.. .. готовьте ваши гнилые помидоры - я не боюсь)) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Прием работ на Второй Раунд конкурса Крестики-Нолики прекращен.
Результаты, с вашего позволения, будут обнародованы чуть позже. Завтра.. Всем спасибо. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Подвожу итоги Второго Раунда Первого Конкурса Форума "Все о Паскале".
В втором раунде приняло участие: 1 человек. Этот участник проходил "вне конкурса", то есть без претензии на призовые места. Согласно условиям конкурса, призовые места не присуждены никому. Посмотреть фактические результаты раунда можно здесь: http://forum.pascalnet.ru/contest/c01/ . Приглашаю всех к анализу партий. В соответствии с условиями конкурса (последняя редакция), проведение третьего раунда лишается смысла. По этой причине Конкурс Крестики-Нолики объявляю закрытым. Спасибо всем участникам за зрелищную и интересную борьбу. Также спасибо всем болельщикам, которые поддерживали участников. Желаю всем продолжения начатого дела в том же духе и успехов на поприще программирования - а также вообще в движении вперед! Так держать!! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 10.09.2024 21:33 |