Как провести соревнование двух программ
На школьном сервере в каталоге /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 задается с использованием ~ – пути до домашнего каталога.
Также вы можете сделать файл с другой начальной позицией и использовать его для соревнования.