Problem
gegebene Eingabe a,b,c
Wo a,b,c
sind positive sogar ganze Zahlen
und a > b > c
Erstellen Sie eine Box mit allen zulässigen Zeichen und Abmessungen a x a
Zentrieren Sie ein Feld eines anderen zulässigen Zeichens mit den Abmessungen b x b
des vorherigen Zeichens
Zentrieren Sie ein Feld eines anderen zulässigen Zeichens mit den Abmessungen c x c
des vorherigen Zeichens
Zulässige Zeichen sind ASCII-Zeichen [a-zA-z0-9!@#$%^&*()+,./<>?:";=_-+]
Eingang a=6, b=4, c=2
######
#****#
#*@@*#
#*@@*#
#****#
######
Eingang a=8, b=6, c=2
########
#******#
#******#
#**@@**#
#**@@**#
#******#
#******#
########
Eingang a=12, b=6, c=2
############
############
############
###******###
###******###
###**@@**###
###**@@**###
###******###
###******###
############
############
############
Regeln
- Kürzester Code gewinnt
- Denken Sie daran, dass Sie auswählen können, welches Zeichen innerhalb des angegebenen Bereichs gedruckt werden soll
- Abschließende Zeilenumbrüche akzeptiert
- Leerzeichen am Ende werden akzeptiert
- Funktionen können Zeichenfolgen mit Zeilenumbrüchen, Zeichenfolgenarrays oder Ausdrucken zurückgeben
Antworten:
Holzkohle , 14 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes.
quelle
Jelly ,
20 bis19 Bytes-1 Byte mit dem Quick
`
, um eine Verknüpfung zu vermeiden, wie von Erik dem Outgolfer vorgeschlagen.Ein volles Programm nimmt eine Liste
[a,b,c]
Druck die Boxen mita:2 b:1 c:0
... in der Tat, wie es für bis arbeiten 10 Box, in denen die innerste Box ist
0
( zum Beispiel ).Probieren Sie es online!
Wie?
quelle
Python 2,
107103 BytesVolles Programm druckt Boxen mit
a=2
,b=1
,c=0
Etwas schlechtere Antwort mit Listenverständnis (104 Bytes):
quelle
C #,
274232 BytesSchrecklich, auch für C #, also kann man definitiv Golf spielen, aber mein Verstand ist leer.
Voll / Formatierte Version:
quelle
j + m <= n + c
können werdenn + c > j + m
i + m >= n
zun < i + m
i+m
4-mal, so können Sie es zu einer Variablen in Ihrem hinzufügenfor
, um etwas zu speicherni
isoliert, nur initialisiereni=m
und vergleicheni<b+m
; oder ... benutze einfachi
, initi=0
but loop oni<a
, dann addierer[i]=new string('#',a),
nebenj=0
und füge eine zu prüfende Bedingung hinzu, diei
innerhalb der Grenzenj
der Schleife liegt (dies sollte sich auszahlen, da du alle Linq verlierst).Haskell , 126 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6),
174170147 ByteVersuch es
Erläuterung
quelle
C (gcc) 97 Bytes
Probieren Sie es online!
quelle
V ,
70, 44, 42 BytesProbieren Sie es online!
Das ist abscheulich. Eww.Viel besser. Immer noch nicht die kürzeste, aber immerhin etwas golfig.Zwei Bytes gespart dank @ nmjmcman101!
Hexdump:
quelle
MATL ,
2623222018 BytesDie Eingabe ist ein Spaltenvektor
[a; b; c]
. Ausgabe verwendet Zeichen2
,1
,0
.Probieren Sie es online!
Im Übrigen funktioniert es für bis zu zehn Boxen, nicht nur für drei. Hier ist ein Beispiel mit fünf Boxen .
quelle
Mathematica, 49 Bytes
Übernimmt die Eingabe
[c, b, a]
. Die Ausgabe ista=1, b=2, c=3
.Wie?
quelle
Grid
wird weder einString
noch ein erstelltPrint
.PHP> = 7.1, 180 Bytes
In diesem Fall hasse ich, dass Variablen mit einem
$
in PHP beginnenPHP Sandbox Online
quelle
$argv
als Array verwende? Hast du das versucht? Haben Sie separate Ternaries ausprobiert?Mathematica, 173 Bytes
Eingang
quelle
Python 2 , 87 Bytes
Probieren Sie es online!
Berechnet arithmetisch die zu druckenden Zahlen, indem Nummern des Formulars hinzugefügt werden
111100
. Es gibt viel Hässliches, wahrscheinlich Raum für Verbesserungen.quelle
Java 8,
265252 Bytes-13 Byte durch Ersetzen von Zeichen durch Ziffern.
Kann auf jeden Fall mit einem anderen Ansatz Golf gespielt werden.
Erläuterung:
Probieren Sie es hier aus.
quelle
JavaScript (ES6), 112
Anonyme Funktion, die eine mehrzeilige Zeichenfolge zurückgibt. Zeichen 0,1,2
Weniger golfen
quelle
PHP> = 5,6, 121 Bytes
Laufen Sie mit
-nr
oder testen Sie es online .Wieder kombinierte Loops ... ich liebe sie!
Nervenzusammenbruch
quelle