Школа179: Как провести соревнование двух программ

https://server.179.ru/wiki     редакция: 19.08.2016 23:55:36
Информатика/Архив/2010/ИграВспички/КакПровестиСоревнование
На школьном сервере в каталоге /home/pub/contest лежит все необходимое для того, чтобы сравнить свою программу с решениями других участников.

Вот содержимое этого каталога:
contest – основной скрипт, который осуществляет запуск двух других программ
check – скрипт, проверяющий корректность ходов и выигрышность позиций
start – файл с записанной стартовой позицией
*.cpp – исходные коды решений участников – они недоступны для чтения
* – прочие исполняемые файлы являются скомпилированными программами участников, вы можете их запустить и посоревноваться с ними!

Как этим пользоваться

Перейдите в каталог /home/pub/contest
$ cd /home/pub/contest

Запустите скрипт contest, чтобы узнать о параметрах его запуска:

$ ./contest

Для запуска скрипта для проведения соревнования стратегий скрипт нужно запускать со следующими параметрами:

$ ./contest <первая_программа> <вторая_программа> <стартовая_позиция> <оценочный_скрипт>

<первая_программа> – исполняемый файл с первой программой, участвующей в соревновании
<вторая_программа> – исполняемый файл со второй программой, участвующей в соревновании
<стартовая_позиция> – файл, в котором записана начальная позиция для игры, например, он может содержать текст "1 50" или любой другой, соответствующий правилам.
<оценочный_скрипт> – скрипт, проверяющий правильность ходов и выигрышность позиций, в соответствии с правилами игры.

Например, для того, чтобы провести соревнование программ zuev и yakusheva со стартовой позицией start_50 нужно дать такую команду:

$ ./contest ./zuev ./yakusheva ./start ./check

Допустим, что вы написали собственную стратегию и хотите устроить ее соревнование с другими стратегиями. Пусть ваша стратегия записана в файле ~/mystrategy.cpp

Перейдите в домашний каталог
$ cd

Откомпилируйте программу mystrategy.cpp, получив исполняемый файл mystrategy
$ g++ mystrategy.cpp -o mystrategy

Перейдите в каталог /home/pub/contest
$ cd /home/pub/contest

И запустите программу соревнования стратегий сравнив, например, свою стратегию с программой zuev
$ ./contest ~/mystrategy ./zuev ./start ./check
$ ./contest ./zuev ~/mystrategy ./start ./check

Обратите внимание, что путь к mystrategy задается с использованием ~ – пути до домашнего каталога.

Также вы можете сделать файл с другой начальной позицией и использовать его для соревнования.