IPB
ЛогинПароль:

> Конкурсы

Этот раздел предназначен исключительно для проведения конкурсов. Создание новых тем пользователями тут запрещено. Ответы в разрешенные темы только по теме соответствующего конкурса и в согласии с его правилами.

> Предложение по конкурсу на тему Калах, (отделено от темы Игра Калах)
andriano
сообщение 11.12.2009 13:17
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Кстати, Калах - хороший пример игры для конкурса. В отличие от предлагавшегося Морского боя.
При этом "игрока" можно было бы реализовать как dll, имеющую стандартный интерфейс: инициализация, финализация (нужны, если алгоритм требует чтения с диска какой-либо базы) и ход. Последний можно реализовать как функцию, принимающую два массива - лунки игрока и соперника и возвращающую номер лунки-хода.
Тогда такие dll можно использовать как для игры против человека, так и друг с другом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 23.12.2009 13:08
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Прикрепленный файл  Kalah_Test.zip ( 83.54 килобайт ) Кол-во скачиваний: 523
Предлагаю конкурс несколько необычного формата (возможно, кто-то даже сочтет, что предлагаемое не имеет права называться конкурсом).
Итак:
- никаких ограничений по срокам,
- никаких ограничений на используемый язык программирования,
- никаких ограничений на количество файлов проекта,
- никаких ограницений на содержимое файлови и набор используемых функций,
- отсутствие исчерпывающего набора допустимых компиляторов,
- независимость от организаторов конкурса,
- возможность отладки и настройки алгоритмов в "настоящем" окружении, а не в собственной реализации, которую нужно писать самому, и которая может отличаться от той, что используют органмизаторы,

Ограничения:
- только 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, указание компилятора и настроек.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.12.2009 0:32
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(andriano @ 23.12.2009 13:08) *
8. Разместить на форуме результат работы программы (необходимо два варианта счета: при игре 1-м и 2-м игроком) вместе с указанием, против кого она играла, исходник, саму DLL, указание компилятора и настроек.

andriano, ситуация, когда каждый участник имеет доступ к сорсам соперников, не может рассматриваться как честная. Ты можешь говорить о добросовестности сколько угодно - напрасно. Размещать же только DLL без сорса - непозволительно (аксиома). И даже если dll размещается с сорсом, все равно должна осуществляться проверка соответствия, и эта проверка должна делаться не пользователем (участником). Значит, должно быть выделенное ответственное лицо, и мы приходим опять к стандартной процедуре. А тогда, прости, зачем все эти ухищрения?..

Кроме того, результат должен кодироваться с асимметричным ключом, чтобы ему можно было доверять. А это значит, в частности, что все dll-участницы должны иметь свою цифровую подпись.. продолжать?

Я понимаю, что эти вопросы не могли ускользнуть от твоего внимания при разработке предложения. Тем самым,я прихожу к выводу, что ты заложился таки на добросовестность участников и, вероятно, приготовился спорить на эту тему. Так вот, я говорю, что я с тобой в корне не согласен и вряд ли соглашусь. И вот тогда становится понятным, что ты имел в виду под фразой
Цитата
возможно, кто-то даже сочтет, что предлагаемое не имеет права называться конкурсом
И вот с этой-то твоей фразой (а точнее - с ее второй половиной) я как раз согласен в полной мере )).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
andriano   Предложение по конкурсу на тему Калах   11.12.2009 13:17
volvo   А также для форматирования жесткого диска (ну, или...   21.12.2009 11:21
Lapp   Я выделил разговор на тему о предложении использов...   21.12.2009 13:00
andriano   Предлагаю конкурс несколько необычного формата (во...   23.12.2009 13:08
Lapp   8. Разместить на форуме результат работы программы...   28.12.2009 0:32
andriano   andriano, ситуация, когда каждый участник имеет д...   28.12.2009 11:36
Lapp   Согласись, что она симметричная. Так откуда беретс...   29.12.2009 2:40
Lapp   я подредактировал свой предыдущий пост, а теперь п...   28.12.2009 2:21
Rian   а почему бы не завести мини сервер, через кторый п...   31.05.2010 8:06
Lapp   а почему бы не завести мини сервер, через кторый п...   3.06.2010 23:29
Rian   хорошо, после 15-го освобожусь и постараюсь занятс...   10.06.2010 10:07
Lapp   предварительное время начала дуэлей 15.07.2010Гуд,...   10.06.2010 10:40
Rian   :) холивар, останется только один :lol: "Е...   10.06.2010 10:55
Lapp   ... это решается ...Все решается, безусловно )). К...   10.06.2010 11:28
Rian   думаю уже пора подавать заявки, проходить квалифик...   30.06.2010 7:04
Lapp   думаю уже пора подавать заявки, проходить квалифик...   1.07.2010 2:32
Lapp   Rian получил от меня +1 за инициативность ) Дело д...   1.07.2010 9:37


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2024 6:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"