Ich liebe Sardinen, ich kann nicht genug davon bekommen, und mein Computer, der Omnilang 5000, ist sprachunabhängig.
Um meinem Computer die Freude am Erleben von Sardinen zu geben, habe ich beschlossen, ihm eine Reihe von Programmen zu geben, die in der Lage sind, Sardinen in verschiedenen Ausrichtungen auf dem Bildschirm anzuzeigen und bis zu zehn Sardinen anzuzeigen.
In dieser Herausforderung sind Sie dafür verantwortlich, die Programme basierend auf den folgenden Parametern zu erstellen:
Die Eingabe
Eine Zahl (zwischen 0 und 10) und ein Buchstabe von einem der folgenden "LR" (für Links oder Rechts) Zum Beispiel: 3L
oder 5R
; Wie dies in das Programm eingegeben wird, liegt bei Ihnen.
Ausgabe
Eine offene Dose Sardinen mit den Sardinen in die angegebene Richtung, wobei sich der Schlüssel (dargestellt durch das %
Zeichen " ") und der abgezogene Deckel (aufgerollte Dose am Ende, dargestellt durch das @
Zeichen " ") oben auf der Dose befinden.
- Alle Sardinen müssen in die vom Eingang angegebene Richtung zeigen.
- Alle Sardinen haben Körper mit einer Länge von fünf Zeichen zwischen der Kieme (entweder "
)
" oder "(
") und dem Schwanz "><
". - Der Schlüssel und die abgezogene Deckelrolle zeigen immer in die entgegengesetzte Richtung zu den Sardinen.
- Die Dose muss dreidimensional aussehen, wie in den Beispielen unten gezeigt.
- Die Mindesthöhe der Dose beträgt 3 Sardinen. Wenn eine Zahl kleiner als 3 ist, muss eine Dose mit 3 Sardinen mit der eingegebenen Anzahl von Sardinen angezeigt werden. Andernfalls muss die Dose die Anzahl der Sardinen haben, die in der Eingabe angegeben ist. Die Eingabe von
0R
oder0L
zeigt also eine leere Sardinenform. - Alle anderen Eingaben, die nicht validiert werden können, zeigen nichts an.
Zum Beispiel für " 3L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''
Für " 7R
"
__________
%@__________)
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
''=========='
Für " 2L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
| ||
'==========''
Für " 0R
"
__________
%@__________)
|| |
|| |
|| |
''=========='
" 0L
"
__________
(__________@%
| ||
| ||
| ||
'==========''
Ungültige Eingaben geben nichts zurück ...
- Dies ist Codegolf, daher gewinnt die kleinste Anzahl von Charakteren diese Herausforderung.
- Keine Schlupflöcher wie gewohnt.
-v
Flagge) steht, und die Richtung ("L" oder "R") unter "give" eingeben Eingabe in das Programm "dann klicken Sie auf" Geben ". (Ich habe die Antwort bearbeitet, um dies hoffentlich klarer zu machen.)Emojicode ,
456448 BytesNimmt 2 Argumente auf: das erste sind Linien, das zweite ist die Richtung (0 oder 1).
Probieren Sie es online!
"Lesbare" Ungolf-Version und Pseudocode-Version:
quelle
Python 2 , 155 Bytes
Probieren Sie es online!
Die Eingabe besteht aus einem Tupel der Länge 2. Das erste Element gibt die Anzahl der Sardinen an. Das zweite Element gibt die Richtung an;
0
für links,1
für rechts.-84 Bytes mit Lambda-Magie dank Notjagan und Officialaimm
quelle
0 to 10
. PS` -10` würde leere Dose drucken, weil es bedeutet, dass es10
Sardinen gab, aber Sie haben sie bereits gegessen. : DAngeln , 1311 Bytes
Übernimmt Eingaben aus
stdin
dem Formular:Fischen ist nicht in Try It Online , aber es gibt einen Dolmetscher für Ruby auf der verknüpften Esolangs-Seite.
Dies ist das erste Programm, das ich in Fishing erstellt habe - in der Tat ist es das erste Programm, das ich in einer 2D-Sprache erstellt habe - daher kann es wahrscheinlich viel kürzer sein. Golftipps sind willkommen (obwohl ich mich nicht wundern würde, wenn niemand welche gäbe, wenn man bedenkt, dass selbst ich nicht weiß, was zum Teufel ich gerade geschrieben habe).
Hier ist ein GIF des Pfades, den das Programm für die Eingabe verwendet
1R
(Entschuldigung für die schlechte Qualität):(Dies wurde mit einem von mir erstellten Interpreter erstellt. Soweit ich weiß, gibt es keine öffentlich verfügbaren Programme, die das Angeln "visualisieren".)
quelle
Kohle , 49 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Das erste Argument ist die Anzahl der Sardinen, das zweite die Richtung (0 = links, 1 = rechts).
quelle
SOGL V0.12 ,
5148 BytesProbieren Sie es hier aus!
Erwartet, dass die Eingabe als erste die Zählung und die zweite - links oder rechts durch 1 oder 0 dargestellt - ist.
Erläuterung:
quelle
R,
334 Bytes311 BytesDie Funktion verwendet einen numerischen Wert für n und eine Zeichenfolge für die Richtung.
Dies ist meine erste Veröffentlichung, daher gebe ich zu, dass ich nicht sicher bin, wie ich die Bytes des Codes zählen soll.
quelle
C ++,
307296292 BytesVerwendung :
-11 Bytes dank Benutzer ThePirateBay gespeichert -4 Bytes dank Zacharý
quelle
#define
Direktive entfernen ? Ich habe es nicht getestet, aber es scheint, dass es keinen Bedarf für sie gibt.c!=82
sein ,c-82
in jedem Fall , in dem Sie es verwenden?Python 2 , 287 Bytes
Probieren Sie es online!
Die Eingabe ist ein durch Kommas getrenntes Tupel von Zahlen dieses Formats:
2, 1
. Die erste Zahl gibt die Menge der Fische an und die zweite ist 0 für links und 1 für rechts.Dies begann als Versuch, die andere Antwort zu übertreiben (ich dachte, ich könnte es), aber es ist scheiße. : P Wenn irgendjemand Kopf und Schwanz davon machen und beim Golfen helfen kann (ich beschuldige es, dass es gerade 12 Uhr ist), wäre ich froh.
quelle
C # (.NET Core), 289 Byte
Probieren Sie es online!
Nimmt eine Ganzzahl und ein Zeichen (L, R) als Parameter und gibt den resultierenden String aus.
Pfui. Musste mich mit einigen nervigen String-Konstanten auseinandersetzen, leider kann man das nicht einfach
string * length
in C # machen. Und die Methode mitnew string(char, length)
wäre die Bytekosten nicht wert gewesen.Der Algorithmus funktioniert wie folgt:
h > i
legen eine Sardine hinein. Wenn jai >= h
, wird es einen leeren Raum geben, in dem sich normalerweise eine Sardine befinden würde.quelle
Perl 5 , 167 + 1 (-n) = 168 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6),
283273269251 ByteDank @WallyWest 10 Bytes gespart
4 Bytes gespart, indem zusätzliche Parens entfernt wurden
18 Bytes dank @ThePirateBay gespart
Leidet unter dem Mangel an String-Umkehrung in der Standardbibliothek. Definiert eine Funktion, die Eingaben
n
für die Anzahl der Fische undd
für die Richtung übernimmt . Wirft, wennd
nicht "L" oder "R" ist.Probieren Sie es online aus
quelle
if...else if
zu verschachtelten Ternaries mit einer Destrukturierungszuweisung reduziert. Ich habe aber_
Funktion zweimal, einmal für die 10 Unterstriche (die zweimal verwendet werden), einmal für die 10 Gleichheitszeichen. Wenn ich sie also in einer Funktion habe, spare ich mir ein Byte. Und wenn ich keine falschen Template-Strings verwende, sind sie 3 Byte länger als die Verkettung .