Ceci est un gâteau:
_========_
| |
+________+
| |
+________+
| |
+________+
Il mesure 8 de large, 3 de haut et 1 de profondeur.
Vous devez écrire un programme qui fait un gâteau à partir de 3 entrées. La première entrée contrôle le nombre de traits de soulignement au milieu et =
s en haut. Voici le premier gâteau d'une largeur de 10 au lieu de 8:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
La deuxième entrée contrôle la hauteur du gâteau. Voici le deuxième gâteau d'une hauteur de 4 au lieu de 3:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Notez la répétition des couches.
La troisième entrée contrôle sa profondeur. C'est juste le nombre de | |
s à inclure en haut. Voici le troisième gâteau avec une profondeur de 2 au lieu de 1:
_==========_
| |
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Vous pouvez imprimer des espaces de fin. Cas de test:
Entrée: 3
, 3
,3
Production:
_===_
| |
| |
| |
+___+
| |
+___+
| |
+___+
(J'espère que je n'ai jamais ce gâteau)
Entrée: 3
, 2
,1
Production:
_===_
| |
+___+
| |
+___+
Entrée: 5
, 5
,5
Production:
_=====_
| |
| |
| |
| |
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
Réponses:
V ,
25, 20 octetsEssayez-le en ligne!
Hexdump:
Merci à @ nmjmcman101 d' avoir enregistré trois octets et de me rappeler un ancien opérateur qui avait enregistré deux octets supplémentaires.
Explication:
a
,,b
etc
sont les trois arguments.la source
Ò r|$.
parÒ|è
pour certains octets. Essayez-le en ligne!è
même existé. J'ai dû me creuser la tête pour me souvenir de ce qu'il faisait. Mais c'est vraiment intelligent! En fait, en utilisant la variante en majuscule, vousÈ<char>
pouvez probablement économiser quelques octets supplémentaires dans quelques autres endroits également. Merci de me le rappeler! :)Fusain ,
3426 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Prend les paramètres dans l'ordre largeur, profondeur, hauteur. Explication:
la source
Mathematica, 167 octets
la source
PHP> = 7.1, 104 octets
Version en ligne
la source
for([,$w,$h,$t]=$argv;$i<2*$h+$t;)echo str_pad($e="_|+"[$b=$i++<$t?$i>1:2-($i-$t&1)],$w+1,"= _"[$b])."$e\n";
$b=$i++<$t?$i>1:1+$_++%2
.Rubis , 62 octets
Essayez-le en ligne!
la source
Japt ,
5147 octetsEssayez-le en ligne!
L'entrée est prise dans l'ordre largeur, hauteur, profondeur.
la source
Gelée ,
3029 octets-1 octet passant d'un ajout à un XOR pour traduire entre les colonnes externe et interne, permettant une recherche de 5 caractères plutôt que d'avoir deux
_
entrées.Programme complet trois arguments de programme
depth
,height
,width
et l' impression du gâteau.Essayez-le en ligne!
Comment?
la source
dc , 108 octets
Essayez-le en ligne!
la source
Röda , 65 octets
Essayez-le en ligne!
la source
Java 7 ,
169164158 octetsEssayez-le en ligne!
Non golfé:
la source
u=t+u+"+\n" inside the for-loop:
(u = t + u + "+ \ n; a [2] -> 1;) s + = t;`. Mais belle réponse, +1 de ma part.05AB1E ,
3331 octetsEssayez-le en ligne!
Explication
la source
Windows Batch,
211 180163 octetsGolfé un total de 48 octets grâce à @Neil!
la source
@
sur chaque ligne et aprèsdo
est légèrement plus courte que@echo off
. 2.@call set w=%%w%%_
évitesetlocal enabledelayedexpansion
. 3. Utilisez@for /l %%p in (2,1,%2)
. 4. À mon humble avis, vous devez ajouter@set w=
pour que le code fonctionne plus d'une fois.@set w=
, le code ne fonctionnera-t-il pas plus d'une fois?@for /l %%p in (1,1,%1)do
semble avoir disparu. 2. Votre gâteau ne semble pas avoir la bonne hauteur, du moins il ne semble pas correspondre au cas de test lorsque je l'essaye. 3. Si vous exécutez le script deux fois dans la même session de commande, le gâteau devient de plus en plus large.@
après&
. 2 Si vous changez la deuxième boucle en(2,1,%3)
et la troisième boucle en(1,1,%2)
alors je pense que vous pouvez supprimer laecho +%w%+
ligne. 3. Si j'ai compté correctement, je pense que vous devriez remplir lesw
espaces au lieu de_
s, car cela entraînera moins de substitutions. (J'utiliserais@call set w= %%w%%
sinon l'espace est difficile à repérer!)Haskell , 87 octets
la source
(w#t)d= ...
enregistre un octet.SOGL V0.12 , 25 octets
Essayez-le ici!
Attend l'entrée en tant que largeur, profondeur, puis hauteur.
la source
Python 2,
124122120 12010592 octets-15 octets en utilisant STDIN au lieu des arguments de programme
-13 octets en passant à Python 2 (pour
input()
les entiers et lesprint
instructions)-12 octets de Caird Coinheringaahing
Essayez-le en ligne!
Python 3,
124122120 120105 octetsEssayez-le en ligne!
Si un programme complet n'est pas requis:
Python 3,
8784 octetsEssayez-le en ligne!
la source
Javascript (ES6),
161157 octetsla source
Python 2 , 93 octets
Essayez-le en ligne!
la source
Perl 5 , 85 + 1 (-a) = 86 octets
Essayez-le en ligne!
la source
JavaScript / ES6, 90 octets
Je viens d'écrire une solution approximative et j'ai réussi à battre la réponse JS existante de 56 octets. Puis j'ai joué au golf sur 11 octets.
Voici une démo.
la source
Toile , 23 octets
Essayez-le ici!
la source