Es ist wahrscheinlich, dass jeder, der Twitter vor ein paar Monaten nutzte, etwas über das 'Howdy! Ich bin der Sheriff von X "meme. Dort, wo ein einfaches Bild eines Sheriffs mit Emoji gezeichnet wird und sich an ein Thema anpasst. Deshalb dachte ich, es sei Zeit für den Sheriff von Code Golf. Hier ist er:
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
Insbesondere dieses hat "Pixel", die ein Zeichen breit und ein Zeichen hoch sind. Um ihn zu generieren, werden die Argumente 1 und 1 sein.
Was ist, wenn er breiter sein soll als er groß ist?
######
##########
######
######
######
##
##########
## ## ##
## ## ##
## ## ##
##
######
## ##
## ##
## ##
## ##
Er hat eine Höhe von 1, aber eine Breite von 2.
Regeln:
- Die Herausforderung besteht darin, Code zu schreiben, um Ihren eigenen Sheriff of Code Golf mit möglichst wenigen Zeichen zu zeichnen.
- Verwenden Sie eine beliebige Programmiersprache, die Ihr Herz begehrt.
- Ihr Code sollte zwei Argumente für die Höhe und Breite des Sheriffs enthalten. Beide Argumente sind Ganzzahlen.
- Die Ausgabe sollte aus einzelnen Leerzeichen für den Hintergrund und allen anderen Zeichen bestehen, die Sie für den Sheriff auswählen. (Ich habe Hashes für die Testfälle verwendet, aber es spielt keine Rolle, was Sie verwenden).
- Es sollte möglich sein, dass die Höhe eine negative ganze Zahl ist, die das Bild invertiert.
- Die Breite kann eine negative ganze Zahl sein. Da das Bild jedoch symmetrisch ist, entspricht es dem positiven Wert.
- Nachgestellte Leerzeichen sind irrelevant.
- Wenn eines der Argumente 0 ist, wird diese Dimension auf eine einzelne Zeile oder Spalte reduziert. Die Länge dieser Linie ist das andere Argument multipliziert mit der Höhe bzw. Breite des Sheriffs.
- Wenn beide Argumente 0 sind, werden beide Zeilen 'abgeflacht', so dass ein einziges positives Zeichen übrig bleibt.
- Nicht unbedingt erforderlich, aber fügen Sie bitte einen Link zu einem Online-Dolmetscher wie tio.run bei
- Die Ausgabe sollte eine Zeichenfolge über mehrere Zeilen oder eine Ausgabe an die Konsole sein.
Testfälle
1 hoch, 1 breit
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
2 hoch, 1 breit
###
###
#####
#####
###
###
###
###
###
###
#
#
#####
#####
# # #
# # #
# # #
# # #
# # #
# # #
#
#
###
###
# #
# #
# #
# #
# #
# #
# #
# #
1 hoch, 2 breit
######
##########
######
######
######
##
##########
## ## ##
## ## ##
## ## ##
##
######
## ##
## ##
## ##
## ##
2 hoch, 2 breit
######
######
##########
##########
######
######
######
######
######
######
##
##
##########
##########
## ## ##
## ## ##
## ## ##
## ## ##
## ## ##
## ## ##
##
##
######
######
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
-1 hoch, 1 breit
# #
# #
# #
# #
###
#
# # #
# # #
# # #
#####
#
###
###
###
#####
###
1 hoch, -1 breit
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
0 hoch, 0 breit
#
1 hoch, 0 breit
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
0 hoch, 2 breit
##################
Viel Spaß euch allen!
Antworten:
JavaScript (ES6), 171 Byte
Übernimmt Eingaben in der Currying-Syntax
(width)(height)
. Gibt einen Array von Strings.Probieren Sie es online!
Wie?
Nur die linke Hälfte des Sheriffs wird als binäre Bitmasken codiert, einschließlich der mittleren Spalte:
quelle
Python 2 ,
228218202189173 BytesProbieren Sie es online!
Alternativen:
Python 2 , 173 Bytes
quelle
Perl 5 ,
169166157 BytesProbieren Sie es online!
Vielleicht könnte durch ein bisschen herumspielen mehr erreicht werden.
quelle
split
, ich verwende das jetzt und speichere zwei Bytes. Auch rasiert man sich durch das Lösen der'
s um die Indizes. Konnte aber nichtsay
zur Arbeit kommen.-a
, hat damit 9 weitere Bytes verloren.say
mit-M5.010
, aber nicht jeder mag, Sie könnten-l
stattdessen verwenden und behaltenprint
, aber wenn nicht, können Sie eine wörtliche Newline oder$_.$/
für -1 verwenden. Schön, einen weiteren Perl-Golfer zu sehen!say
hat nicht funktioniert, weil die neue Zeile in dermap
so angehängt wurde , dass es einen etwas anderen Aufruf erfordert. Ich habe auch festgestellt, dass, wenn Ihr Code in einer Variablen endet und Sie-p
etwas verwenden, das Sie auch verwenden können@;
: Probieren Sie es online aus! Ich hoffe, meine Kommentare stören Sie nicht!Holzkohle , 61 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Geben Sie die Abmessungen ein.
Wenn die Höhe nicht Null ist, schleife über die rechte Hälfte des Sheriffs ...
... die absolute Höhe mehrmals wiederholen ...
... wenn die Breite ungleich Null ist, wird jedes Zeichen absolut wiederholt, andernfalls a
#
.Aber wenn die Höhe Null ist, dann wiederhole
#
5 mal die absolute Breite, aber mindestens 1#
.Reflektiere, um die linke Hälfte des Sheriffs zu erhalten.
Wenn die Höhe negativ ist, drehen Sie den Sheriff um.
quelle
Python 2 ,
217216 BytesProbieren Sie es online!
Ein pythonisches Riff über Arnauld .
Pfui! Funktioniert jetzt für alle Randbedingungen ...
quelle
Sauber ,
299275272 BytesProbieren Sie es online!
quelle
Powershell,
174-170BytesInspiriert von Arnauld's Javascript
Ungolfed, erklärt und testgeschrieben:
quelle