Prélude:
Ce défi est différent d'un "autre programme de chat".
Il y a des tonnes de rebondissements différents, pourquoi ne puis-je pas avoir les miens, les gens?
Choses uniques:
- Il ne lit pas l'entrée directe à la sortie.
- Il manipule la chaîne d'une manière qui n'est certainement pas un chat droit.
Défi:
Étant donné 3 entrées (ou une entrée, séparées comme vous le souhaitez), obtenez trois objets (mots) que nous allons remplacer par des stylos, des ananas et des pommes dans les paroles et la sortie.
Format de sortie ( selon les paroles trouvées sur AZLyrics ):
En supposant (remplacez les valeurs par des crochets par celles-ci):
- A, B, C avec des mots d'entrée (ex.
apple
) - UA, UB, UC avec des mots d'entrée avec les premières lettres majuscules (si ce n'est pas déjà le cas) (ex.
Apple
) - FUA, FUB, FUC avec respectivement les premières lettres majuscules: (ex.
A
) - a / an avec un article correspondant à la voyelle / consonne de la première lettre (ex.
an
)
[FUA] - [FUB] - [FUC] - [FUA] J'ai [a / an] [A], j'ai [a / an] [C]. Euh! [UC] - [UA]! J'ai [a / an] [A], j'ai [a / an] [B]. Euh! [UB] - [UA]! [UC] - [UA], [UB] - [UA]. Euh! [UA] - [UB] - [UC] - [UA]. [UA] - [UB] - [UC] - [UA]!
Cas de test:
Testez avec pen
, pineapple
et apple
:
P-P-A-P
I have a pen, I have an apple.
Uh! Apple-Pen!
I have a pen, I have a pineapple.
Uh! Pineapple-Pen!
Apple-Pen, Pineapple-Pen.
Uh! Pen-Pineapple-Apple-Pen.
Pen-Pineapple-Apple-Pen!
Règles:
- Si l'entrée ne commence pas par une lettre, supposez consonance (
a
) et commencez par mettre en majuscule le premier caractère (ex.123 -> 1
). - code-golf , le plus petit nombre de personnages gagne!
Réponses:
JavaScript (ES6),
217...187183 octetsPrend l'entrée comme un tableau de 3 chaînes, comme
['pen', 'pineapple', 'apple']
.Exemples
Afficher l'extrait de code
la source
'golf', 'puzzle', 'code'
IMHOPerl 6 , 165 octets
Utilise la même approche que la réponse JS d'Arnauld .
la source
Lot,
494490 octetsExplication: Le
:h
sous - programme gère la ligneI have a %, I have a %.
Les%
s sont substitués par les arguments de ligne de commande appropriés, puis les cordesa a
,a e
,a i
,a o
eta u
sont remplacer par l'équivalentan
versions. Le:u
sous-programme gère les autres lignes; il prend les mots paramètres et les majuscules toutes les premières lettres. (Un espace supplémentaire est préfixé pour permettre au premier mot d'être placé en majuscule, mais il est supprimé en sortie.) Pour gérer les mots après-
s, des espaces supplémentaires sont passés, mais ils sont également supprimés en sortie. Le:u
sous-programme est également utilisé pour la première ligne, bien que l'extraction des initiales soit maladroite.la source
Python 3.6 -
351287286 octetsIl n'y a rien d'extraordinaire ici, sauf en utilisant la nouvelle fonctionnalité de formatage littéral de chaîne.
Remarque - La version est l'
3.6
endroit où le formatage littéral de chaîne a été introduit . Par conséquent, cela ne fonctionnera pas dans les versions antérieures.la source
"
ne fera économiser que 2 octets, mais\n
ajoutera 12 octets.Lua,
615607 octets8 octets enregistrés grâce à [un utilisateur anonyme]
Ouf, longue. Essayez-le ici.
Je suis certain à 100% que cela peut être raccourci. Je suis juste paresseux ..
Utilise essentiellement beaucoup de manipulation de chaînes. Il y a 3 fonctions principales et une variable:
d(string)
: renvoie une chaîne if si vowel (AEIOUaeiou
), sinon renvoie une chaînez(string)
: retourne la première lettre en majusculez(s) .. s:sub(2)
: retourne le mot entier, mais la première lettre en majusculef
: le mot de fin (dans une variable, pour économiser quelques octets). Dans votre cas de test, ce seraitPen-Pineapple-Apple-Pen
.Entrée:
pen
,pineapple
,apple
Production:
la source
Python 2 , 283 octets
Essayez-le en ligne!
la source