![]() |
Этот раздел предназначен исключительно для проведения конкурсов. Создание новых тем пользователями тут запрещено. Ответы в разрешенные темы только по теме соответствующего конкурса и в согласии с его правилами.
![]() |
andriano |
![]()
Сообщение
#1
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Кстати, Калах - хороший пример игры для конкурса. В отличие от предлагавшегося Морского боя.
При этом "игрока" можно было бы реализовать как dll, имеющую стандартный интерфейс: инициализация, финализация (нужны, если алгоритм требует чтения с диска какой-либо базы) и ход. Последний можно реализовать как функцию, принимающую два массива - лунки игрока и соперника и возвращающую номер лунки-хода. Тогда такие dll можно использовать как для игры против человека, так и друг с другом. |
![]() ![]() |
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
![]() Предлагаю конкурс несколько необычного формата (возможно, кто-то даже сочтет, что предлагаемое не имеет права называться конкурсом). Итак: - никаких ограничений по срокам, - никаких ограничений на используемый язык программирования, - никаких ограничений на количество файлов проекта, - никаких ограницений на содержимое файлови и набор используемых функций, - отсутствие исчерпывающего набора допустимых компиляторов, - независимость от организаторов конкурса, - возможность отладки и настройки алгоритмов в "настоящем" окружении, а не в собственной реализации, которую нужно писать самому, и которая может отличаться от той, что используют органмизаторы, Ограничения: - только Windows, - используемый компилятор должен уметь делать Windows DLL, - все конкурсные соревнования проводятся на пользовательском компьютере, - при публикации конкурсной программы в виде DLL ОБЯЗАТЕЛЬНО размещение исходников (п.9 Правил форума), а также указание используемого компилятора, его версии и настроек. Если программа использует внешние файлы, необходимо описание структуры этих файлов. Основные положения. Предмет: разработка алгоритмов для игры в Калах. Способ: алгоритм оформляется в виде Windows DLL, после чего управляющая программа подключает две DLL и проводит между ними соревнование, помещая отчет в файл. Правила проведения. Организатор размещает: - исполняемый файл: kalah.exe - консольное приложение (TMT Pascal 4.01, Windows Console, настройки по умолчанию), исходники прилагаются. - пример игрока, делающего случайные ходы, файл KlPlRnd.dll, (TMT Pascal 4.01, Windows DLL, настройки по умолчанию), исходники прилагаются. - то же самое, файл Kalah_D.dll, (Turbo Delphi, Windows DLL, настройки по умолчанию), исходники прилагаются. - исходники дополнительных модулей, необходимых для компиляции управляющей программы и DLL. - пример командного файла для проведения конкурса run.bat - поочередно запускает два раунда соревнований, меняя игроков местами (первого со вторым). - описание требований, предъявляемых к DLL, файл readme.txt. Организатор осуществляет поддержку управляющей программы, исправляя в ней найденные пользователями ошибки, и выполняя некоторые из пожеланий пользователей. Организатор НЕ запускает DLL пользователей на своем компьютере - все тестирования проводит конкурсант. Организатор обещает, что он не включил в состав программы вредоносного кода, но не гарантирует отсутствие каких-либо проблем у пользователя вследствие ошибок в программе либо заражения ее вирусами после публикации (организатор рекомендует проверять на наличие вирусов все скачиваемые из И-нета программы). Конкурсант проводит разработку алгоритма, его отладку, тестирование и проведение своей локальной части конкурса на своем компьютере, после чего размещает отчет о результатах тестов вместе с DLL и исходником на форуме. Управляющая программа позволяет проводить разработку, отладку и тестирование алгоритмов пользователя, в частности протоколирование работы как управляющей программы, так и алгоритмов пользователей с различной степенью подробности, проведение многократных игр для набора статистики, настройки управляющих коэффициентов, обучения НС и т.п. Ключи командной строки: /h:N (N - десятичное число, default = 6) - количество лунок в игре (3-6), /b:N (N - десятичное число, default = 6) - начальное количество камней в каждой лунке (3-6), /r:N (N - десятичное число, default = 1) - количество раундов (для подсчета статистики), /t:N (N - десятичное число, default = 300) - количество ходов, после которого фиксируется ничья (во избежание зацикливания), /f:xxxxxx.txt (строка без пробелов, default = 'KlLog.txt') - файл протокола, /l:NM, где N и M - цифры: N=0 для "Доски", N=1 или N=2 для "Игрока", default = 3 - уровень подробности лог-файла. M - от 0 до 5: (0 - лог-файл не создается, 1 - только интегральная по игре (KlDone), 2 - только интегральная по раунду (KlEndRound), 3 - краткая на каждом ходе, 4 - средняя на каждом ходе, 5 - самая подробная) /p:N=M (N - 1 или 2 (номер игрока), M - десятичное или 16-чное число) - настроечные параметры, передаются "Игрокам" в 10-чном /p:1=12345 или 16-чном /p:2:$12ab или /p=1:12abh виде Для участия в конкурсе достаточно: 1. Открыть один из приведенных примеров (если используется Паскаль). 2. Заменить строки, содержащие название алгоритма, имя автора и описание. 3. Заменить несколько строк в функции KlGetTurn на собственный алгоритм. 4. Сохранить под новым самостоятельно придуманным именем. 5. Откомпилировать файл, получив DLL. 6. Скопировать файл в KlPlayer1.dll или KlPlayer2.dll по своему выбору либо видоизменить командный файл run.bat под свое имя библиотеки. 7. Запустить kalah.exe или run.bat, получив протокол работы программы (точнее, три протокола: управляющей программы и по одному от игроков). 8. Разместить на форуме результат работы программы (необходимо два варианта счета: при игре 1-м и 2-м игроком) вместе с указанием, против кого она играла, исходник, саму DLL, указание компилятора и настроек. |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
8. Разместить на форуме результат работы программы (необходимо два варианта счета: при игре 1-м и 2-м игроком) вместе с указанием, против кого она играла, исходник, саму DLL, указание компилятора и настроек. andriano, ситуация, когда каждый участник имеет доступ к сорсам соперников, не может рассматриваться как честная. Ты можешь говорить о добросовестности сколько угодно - напрасно. Размещать же только DLL без сорса - непозволительно (аксиома). И даже если dll размещается с сорсом, все равно должна осуществляться проверка соответствия, и эта проверка должна делаться не пользователем (участником). Значит, должно быть выделенное ответственное лицо, и мы приходим опять к стандартной процедуре. А тогда, прости, зачем все эти ухищрения?.. Кроме того, результат должен кодироваться с асимметричным ключом, чтобы ему можно было доверять. А это значит, в частности, что все dll-участницы должны иметь свою цифровую подпись.. продолжать? Я понимаю, что эти вопросы не могли ускользнуть от твоего внимания при разработке предложения. Тем самым,я прихожу к выводу, что ты заложился таки на добросовестность участников и, вероятно, приготовился спорить на эту тему. Так вот, я говорю, что я с тобой в корне не согласен и вряд ли соглашусь. И вот тогда становится понятным, что ты имел в виду под фразой Цитата возможно, кто-то даже сочтет, что предлагаемое не имеет права называться конкурсом И вот с этой-то твоей фразой (а точнее - с ее второй половиной) я как раз согласен в полной мере )).-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2024 6:19 |