Avertissement: ce défi contient des spoilers légers pour The Secret of Monkey Island.
Vers la fin du jeu, vous êtes conduit à travers les catacombes par un chef de navigateur préservé comme par magie:
Vous avez besoin de son collier globe oculaire, mais la tête hésite à vous le donner. Une façon de l'obtenir est de continuer à mendier:
Guybrush: Puis-je s'il vous plaît avoir ce collier?
Chef: Non, mais merci d'avoir demandé si poliment.
Guybrush: Oh allez, pleeeeease?
Chef: Vous pouvez mendier tout ce que vous voulez, mais vous ne pouvez pas l'avoir.
Guybrush: Assez s'il vous plaît?
Chef: Vous pouvez mendier tout ce que vous voulez, mais vous ne pouvez pas l'avoir.
Guybrush: Assez JOLI s'il vous plait?
Chef: Vous pouvez mendier tout ce que vous voulez, mais vous ne pouvez pas l'avoir.
Guybrush: Assez s'il vous plaît avec du sucre sur le dessus?
Tête: Oh, d'accord, gros bébé. Vous pouvez l'avoir. Hé, à quoi ça sert un collier si vous n'avez pas d'épaules?
Le défi
Écrivez un programme complet qui imprime la boîte de dialogue ci-dessus. Le hic, c'est que chaque fois que le programme est appelé, il ne devrait imprimer que deux lignes (une plaidoirie par Guybrush et la réponse du chef). Par exemple, si votre soumission est écrite en Python, l'utilisation devrait ressembler à ceci:
$> 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?
Invoquer le programme plus de 5 fois peut entraîner un comportement indéfini, vous pouvez donc soit boucler, continuer à imprimer les deux dernières lignes ou le programme peut même être interrompu après la 5e invocation.
Vous pouvez écrire dans un fichier du répertoire de travail ou modifier le code source du programme lui-même pour suivre les appels. Dans ce dernier cas, votre programme ne doit pas dépendre de son propre nom de fichier. (Dans le premier cas, vous pouvez supposer que le nom de fichier de votre programme n'entrera pas en conflit avec les noms de fichiers dont dépend votre programme.)
Vous ne devez pas supposer un environnement de type REPL ou que des données soient conservées dans la RAM entre les invocations. Par exemple, si vous répondez dans Mathematica, vous devez supposer que je quitte le noyau entre les invocations.
Il s'agit du code golf, la réponse la plus courte (en octets) l'emporte. Si votre programme dépend de l'existence de fichiers supplémentaires avant la première invocation , ajoutez son nom et son contenu à votre nombre d'octets.
node please.js
5 sorties différentes.