Предупреждение: это испытание содержит несколько легких спойлеров для The Secret of Monkey Island.
К концу игры вас через катакомбы ведет волшебная голова навигатора:
Вам нужно его ожерелье из глазного яблока, но Глава не хочет его отдавать. Один из способов получить это просто продолжать просить:
Гайбраш: можно мне это ожерелье?
Руководитель: Нет, но спасибо, что так вежливо спросили.
Гайбраш: О, давай, пожалуйста?
Голова: Вы можете просить все, что хотите, но у вас не может быть этого.
Гайбраш: Довольно, пожалуйста?
Голова: Вы можете просить все, что хотите, но у вас не может быть этого.
Гайбраш: Довольно мило, пожалуйста?
Голова: Вы можете просить все, что хотите, но у вас не может быть этого.
Гайбраш: Довольно, пожалуйста, с сахаром сверху?
Голова: О хорошо, большой ребенок. Ты можешь иметь это. Эй, что хорошего в ожерелье, если у тебя нет плеч?
Соревнование
Напишите полную программу, которая печатает вышеприведенный диалог. Суть в том, что каждый раз, когда программа вызывается, она должна печатать только две строки (одна просьба Гайбраша и ответ руководителя). Например, если ваша заявка написана на Python, использование должно выглядеть следующим образом:
$> python please.py
Guybrush: May I please have that necklace?
Head: No, but thanks for asking so politely.
$> python please.py
Guybrush: Oh come on, pleeeeease?
Head: You can beg all you want, but you can't have it.
$> python please.py
Guybrush: Pretty please?
Head: You can beg all you want, but you can't have it.
$> python please.py
Guybrush: Pretty PRETTY please?
Head: You can beg all you want, but you can't have it.
$> python please.py
Guybrush: Pretty please with sugar on top?
Head: Oh, all right, you big baby. You can have it. Hey, what good's a necklace if you don't have shoulders?
Вызов программы более 5 раз может привести к неопределенному поведению, так что вы можете либо зацикливаться, продолжать печатать последние две строки, либо программа может даже не работать после 5-го вызова.
Вы можете записать в файл в рабочем каталоге или изменить исходный код самой программы, чтобы отслеживать вызовы. В последнем случае ваша программа не должна зависеть от собственного имени файла. (В первом случае вы можете предположить, что имя файла вашей программы не будет конфликтовать с именами файлов, от которых зависит ваша программа.)
Вы не должны предполагать среду, подобную REPL, или что любые данные хранятся в оперативной памяти между вызовами. Например, если вы отвечаете в Mathematica, вы должны предположить, что я покидаю ядро между вызовами.
Это код гольф, самый короткий ответ (в байтах) выигрывает. Если ваша программа зависит от каких-либо дополнительных файлов, существовавших до первого вызова , добавьте ее имя и содержимое в счетчик байтов.
node please.js
5 разными выходами.