Faites-moi un s'more ! Je vous dis la largeur, la quantité de biscuits Graham, la quantité de chocolat et la quantité de guimauve. Un exemple:
Contribution:
Largeur: 10
Graham: 3
Chocolat: 2
Marshmallow: 1
.
Production:
GGGGGGGGGG
GGGGGGGGGG
GGGGGGGGGG
CCCCCCCCCC
CCCCCCCCCC
MMMMMMMMMM
GGGGGGGGGG
GGGGGGGGGG
GGGGGGGGGG
C'est aussi simple que ça ? Euh ... oui.
Notez que l'entrée doit être une liste d'arguments d'une fonction ou d'un programme, pas une chaîne. Vous pouvez choisir le premier étant Largeur, puis Graham, mais tout ordre est très bien.
Cas de test complets si vous êtes intéressé.
Extrait de pile (pour les tests, etc.)
C'est pour tester la sortie.
var smore = function(width, graham, chocolate, marshmallow){
return ("G".repeat(width) + "\n").repeat(graham) +
("C".repeat(width) + "\n").repeat(chocolate) +
("M".repeat(width) + "\n").repeat(marshmallow) +
("G".repeat(width) + "\n").repeat(graham);
};
Snippetify(smore);
<script src="https://programmer5000.com/snippetify.min.js"></script>
Width: <input type = "number">
Graham: <input type = "number">
Chocolate: <input type = "number">
Marshmallow: <input type = "number">
<button>Try it out!</button>
<pre data-output></pre>
Remarques:
- Vous pouvez inclure une nouvelle ligne à la fin de la dernière ligne. Vous pouvez également utiliser un
\
au lieu d'une nouvelle ligne. - C'est du code-golf .
- Des questions? Commentaires ci-dessous:
Réponses:
Gelée , 11 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 2 ,
7348 octetsEssayez-le en ligne!
Crée une version transposée de la réponse, puis la transpose au format correct avec
zip(*l)
la source
05AB1E ,
211919 octetsEssayez-le en ligne!
-2 grâce à ma surveillance et Emigna.
(Voir la réponse d'Emigna, c'est mieux: /codegolf//a/116787/59376 )
la source
©
dedans.¬¸
parD
car les éléments supplémentaires sont perdus lorsque vous zippez.JavaScript (ES6), 71 octets
Woohoo, battez 3 autres réponses JavaScript!
Afficher l'extrait de code
la source
MATL , 17 octets
Le format d'entrée est: première entrée
[G, C, M]
, deuxième entréeW
.Essayez-le en ligne!
Explication avec exemple
Considérez les entrées
[3 2 1]
et10
.la source
C # , 204 octets
Golfé
Non golfé
Non lisible non lisible
Code complet
Communiqués
204 bytes
- Solution initiale.Remarques
la source
05AB1E ,
1716 octets1 octets économisés grâce à carusocomputing .
Essayez-le en ligne!
L'ordre d'entrée est
W, [G,C,M]
Explication
10, [3,2,1]
utilisé comme exemple.la source
"GCMG"S×vy²Nè.D»
pouvoirs de merveille, activez! Forme de, code 05AB1E! De plus, les arguments sont échangés, mais il en reste 16.Rubis, 47 octets
grâce à ventero
Rubis, 51 octets
Appelez comme ceci:
la source
->w,g,c,m{puts r=[?G*w]*g,[?C*w]*c,[?M*w]*m,r}
est un peu plus courtPowerShell , 49 octets
Essayez-le en ligne!
Prend l'entrée comme quatre arguments de ligne de commande,
width graham chocolate marshmallow
stocke le premier$a
et le reste dans$b
(implicitement sous forme de tableau). Boucles sur la plage0,1,2,0
. Chaque boucle, nous l'indexons en chaîneGCM
, la recomposonschar
en chaîne et la multiplions par$a
(la largeur), puis en utilisant l'opérateur virgule,
, la transforme en un tableau en multipliant l'index approprié de$b
(c.-à-d. Combien couches). Ces tableaux de chaînes résultants sont tous laissés sur le pipeline et la sortie est implicite, avec une nouvelle ligne entre les éléments.la source
C,
108105 octetsMerci à @Quentin pour avoir économisé 3 octets!
Essayez-le en ligne!
la source
#define F(i,c)for(;i--;puts(""))for(j=w;j--;)putchar(c);
enregistre trois octets :)Lot, 146 octets
S'appuie sur le comportement obscur de
echo
en ce qu'il peut souvent ignorer le symbole entreecho
et le texte à reproduire pour réduire les quatre boucles en une boucle imbriquée.la source
V , 22 octets
Essayez-le en ligne!
Hexdump:
L'ordre d'entrée est
Explication:
la source
Excel, 104 octets
Oh mec! Une formule qui nécessite des sauts de ligne.
A1
a LargeurA2
a GrahamA3
a ChocolatA4
a MallowSi le pré-formatage est autorisé, vous pouvez formater la cellule pour le texte vertical et raccourcir la formule à 65 octets:
la source
Gelée , 13 octets
Un programme dyadique. Les entrées sont:
[Graham's, Chocolates, Marshmallows]
,Width
.Essayez-le en ligne!
Comment?
la source
PHP, 85 octets
ou
Versions en ligne
PHP, 96 octets
Version en ligne
Étendu
la source
05AB1E , 14 octets
Code:
Utilise l' encodage CP-1252 . Essayez-le en ligne!
Explication:
la source
Python 2 ,
6757 octets(Edit: maintenant que les matrices sont autorisées, plus besoin de se joindre à la nouvelle ligne.)
la source
C # (150 octets)
Non golfé:
la source
Java, 138 octets
Essayez-le en ligne!
Explication:
la source
Swift,
138137134 134130 octets7 octets enregistrés grâce à @Kevin
Deux fonctions qui renvoient la valeur attendue:
f
est une fonction d'aide etr
est la fonction réelle de type lamdba qui génère la sortie. Usage:print(r(10,3,2,1))
Vérifiez-le!
la source
var f=String.init(repeating:count:);
). Et cela ne vous fait économiser aucun personnage mais cela ne coûte aucun donc ils devraient tous les deux être vraimentlet
.r
(let r={f(f("G",$0)+"\n",$1)+f(f("C",$0)+"\n",$2)+f(f("M",$0)+"\n",$3)+f(f("G",$0)+"\n",$1)}
)f=String.init(repeating:count:)
...Convexe , 20 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 91 octets
Comprend une nouvelle ligne de fin.
la source
JS (ES6), 87 octets
x
agit comme une fonction lambda autonome. Le résultat a une nouvelle ligne de fin.Essayez dans un extrait:
Afficher l'extrait de code
la source
C, 90 octets (basé sur la réponse de Steadybox )
Renommé les variables et exploité l'opérateur de préprocesseur de stringification pour réduire les paramètres de macro. J'espère que publier cette idée comme sa propre réponse est bien :)
Lien TIO
la source
F # (
14899 octets)Usage:
Non golfé:
Je suis encore nouveau sur F #, donc si j'ai fait quelque chose de bizarre ou de stupide, faites-le moi savoir.
la source
JavaScript ES6,
696866 octetsMerci @Arnauld d'avoir joué un octet au golf
Essayez-le en ligne!
Explication
Reçoit une entrée au format curry
(Width)([Graham,Chocolate,Marshmallow])
L'utilisation
.replace(/./g,...)
remplace chaque caractère de la chaîneGCMG
par la valeur de retour de la fonction(c,i)=>`${c.repeat(a)} `.repeat(b[i%3])
`${c.repeat(a)} `
crée chaque ligne du biscuit graham avec une nouvelle ligne ajoutée.repeat(b[i%3])
répète cette ligne le nombre de fois requisla source
replace()
sauverait un octet:a=>"GCMG".replace(/./g,(c,i)=>`${c.repeat(a[0])}\n`.repeat(a[1+i%3]))
JS (ES6), 111 octets
la source
Mathematica 102 octets (100 caractères)
J'ai entendu dire que le s'mores intégré ne sortait pas avant la V12.
Assez simple en utilisant l'idée de construire d'abord une colonne. Les noms de fonction longs gaspillent 35 octets. Le symbole à une case est en fait un caractère de transposition et se collera très bien dans Mathematica.
Utilisation:
%@{Graham, Chocolate, Marshmallows, Width}
par exemple%@{3, 2, 1, 11}
la source
Java 7, 226 octets
OU (également 226 octets ):
Explication:
Code de test:
Essayez-le ici.
Production:
la source
Haskell , 91 octets
Devrait être assez explicite. Puisqu'il a été noté dans un commentaire que les matrices de caractères sont autorisées, voici une version de 58 octets qui renvoie une liste de chaînes (une pour chaque couche):
la source