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

На школьном сервере в каталоге /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 задается с использованием ~ – пути до домашнего каталога.


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