YAPC(Yet Another Python Competition)::Russia::Golf
YAPC::Russia::Golf — конкурс на решение задачи самым коротким способом, который проводится на конференции YAPC::Russia «May Perl — 2» 2009 16 и 17 мая 2009 года в Москве.
Помните старые игры Python, Snake? Нужно реализовать нечто похожее.
На первом шаге питон всегда размером 2 («x» — голова, «o» — тело) и находится примерно в центре поля.
Поле заполнено символами — (пустота) и 1 (яблоко). При съедании яблока тело питона вырастает на единичку.
Первые строки входных данных — игровое поле, последняя строка — команды движения lkjh (как в vi).
l — на одну клетку вправо, h — влево, k — вверх, j — вниз.
Гарантируется, что команды движения корректны: питон к границам поля не идёт, сам себя не пересекает и даже ни разу не подойдёт вплотную сам к себе, всегда оставит расстояние, т. к. не любит тесноты.
Задача: получив игровое поле и маршрут с stdin вывести в stdout конечное состояние поля c питоном.
Тестовый ввод:
--1------------------------------------------- -1------------------------------------------1- 1--------------------------------------------- ---------------------------------------------- -----------ox-11------------------------------ ---------------11----------------------------- ----------------11-----11--------------------- -----------------11---11---------------------- ------------------11-11----------------------- -------------------111------------------------ ---------------------------------------------- -1------------------------------------------1- ---------------------------------------------- llljljljljljllklklklkkkklljjjjjlllllkkkkhhhjjl
Тестовый вывод: ./python < input > output
--1------------------------------------------- -1------------------------------------------1- 1-------------------------o------------------- --------------------------o-oooo-------------- --------------------------o-o--o-------------- --------------------------o-ox-o-------------- --------------------------o----o-------------- --------------------------oooooo-------------- ---------------------------------------------- ---------------------------------------------- ---------------------------------------------- -1------------------------------------------1- ----------------------------------------------
Размер программы будет считаться вместе с пробельными символами, так что удаляйте ненужные.
Выиграет самая короткая программа, прошедшая все тесты. Шебанг должен выглядеть как #!perl или #!perl -flags.