Avvertenza: questa sfida contiene alcuni spoiler delicati per The Secret of Monkey Island.
Verso la fine del gioco, vieni guidato attraverso le catacombe da un capo magicamente conservato di un navigatore:
Hai bisogno della sua collana a bulbo oculare, ma la Testa è riluttante a dartelo. Un modo per ottenerlo è solo per continuare a chiedere l'elemosina:
Guybrush: Per favore, posso avere quella collana?
Testa: No, ma grazie per avermelo chiesto in modo educato.
Guybrush: Oh andiamo, per favore?
Testa: puoi chiedere tutto ciò che vuoi, ma non puoi averlo.
Guybrush: Abbastanza per favore?
Testa: puoi chiedere tutto ciò che vuoi, ma non puoi averlo.
Guybrush: Abbastanza grazioso per favore?
Testa: puoi chiedere tutto ciò che vuoi, ma non puoi averlo.
Guybrush: Abbastanza per favore con lo zucchero in cima?
Testa: Oh, va bene, grande bambino. Puoi averlo. Ehi, a che serve una collana se non hai le spalle?
La sfida
Scrivi un programma completo che stampa il dialogo sopra. Il trucco è che ogni volta che viene chiamato il programma dovrebbe solo stampare due righe (una che supplica Guybrush e la risposta del capo). Ad esempio, se l'invio è scritto in Python, l'utilizzo dovrebbe essere simile al seguente:
$> 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?
Richiamare il programma più di 5 volte può comportare un comportamento indefinito, quindi è possibile eseguire il ciclo continuo, continuare a stampare le ultime due righe o il programma potrebbe anche essere interrotto dopo la 5a chiamata.
È possibile scrivere su un file nella directory di lavoro oppure modificare il codice sorgente del programma stesso per tenere traccia delle invocazioni. In quest'ultimo caso, il programma non deve dipendere dal proprio nome file. (Nel primo caso, puoi presumere che il nome del file del tuo programma non si scontrerà con i nomi dei file da cui dipende il tuo programma.)
Non è necessario presupporre un ambiente simile a REPL o che i dati siano conservati nella RAM tra le chiamate. Ad esempio, se rispondi in Mathematica, devi presumere che io abbia lasciato il kernel tra le invocazioni.
Questo è il codice golf, vince la risposta più breve (in byte). Se il programma dipende da eventuali file aggiuntivi esistenti prima della prima chiamata, aggiungere il nome e il contenuto al conteggio dei byte.
node please.js
producendo 5 output diversi.