Herausforderung
Code ein ASCII-Cookie einer Art entsprechend der Eingabe.
Eingang
- Die Art der Kekse. Dies ist eine der drei Saiten: "Plain", "Chocolate" oder "Nuts". Dies können Funktionsargumente, stdin (oder das nächste Äquivalent) oder Dateiargumente sein.
Ausgabe
- Ein ASCII-Cookie. Siehe unten.
Muss sein
___
/ \
| |
\___/
für einfache Eingabe,
___
/. .\
| . |
\___/
für Schokoladeneingabe und schließlich
___
/^ \
|^ ^|
\___/
für Nut-Eingabe.
Andere Informationen
- Dies ist meine erste Herausforderung, es ist so einfach wie möglich. Konstruktives Feedback wird sehr geschätzt.
- Verwenden Sie alle Mittel, um dies zu tun.
- Leerzeichen sind in Ordnung.
- Dies ist eine Code-Golf-Herausforderung, daher gewinnt der kürzeste Start am Ende von 9 Tagen (Mittwoch, den 12. August 2015).
Vielen Dank!
Der Gewinner ist Jakube mit Pyth mit 41 Bytes. Vielen Dank an alle, die teilgenommen haben. Ich werde mich nun damit beschäftigen, kompliziertere Herausforderungen zu meistern.
Antworten:
Pyth,
4241 BytesProbieren Sie es online aus: Regular Input / Test Suite
Erläuterung:
quelle
Rubin, 73
Dies ist eine anonyme Lambda-Funktion. Hier ist es in einem Testprogramm:
Es wird nur der erste Buchstabe des Cookie-Typs (in Großbuchstaben) verwendet und Modulo 3 verwendet, um einen Index im Bereich zu erhalten
0..2
. Anschließend wird die Zeichenfolge zurückgegeben, die das Cookie darstellt, wobei die entsprechenden Zeichenfolgen an den richtigen Stellen eingebettet sind.quelle
ord
Methode Ihrer Meinung nach tun, wenn Sie eine ganze Zeichenfolge aufrufen? Meine erste Idee war die Formatierung:->s{" ___\n/%1$s \\\n|%1$s %1$s|\n\\___/"%'^. '[s.ord%3]}
tr
->s{' ___↵/% \↵|% %|↵\___/'.tr ?%,'^. '[s.ord%3]}
s[0] --> s
, es ist mir nie eingefallen, es zu versuchen. Ihr Code scheint nicht die richtige Antwort für den Schokoladenbehälter zu geben, da sich die Schokoladenstückchen an verschiedenen Stellen befinden als die Nüsse. Trotzdem gibt es dort einige nützliche Ideen, die ich später ansehen werde. Ich habe nicht verwendettr
oder%
zuvor.tr
der Syntax von 's zu tun . Ist nur ein Zeichen, das nicht in die Cookie-Kunst involviert ist, die ich als Platzhalter verwendet habe.)Python 2.7.6, 99 Bytes
Dieser Algorithmus basiert auf der Tatsache, dass
hash(cookie)%3
0 wanncookie = "Plain"
, 1 wanncookie = "Nut
und 2 wann ergibtcookie = "Chocolate
. Wenn jemand eine Möglichkeit kennt, diesen Code zu verkürzen, lass es mich in den Kommentaren wissen.quelle
C: 122
Erklärung nachdem ich mit dem Golfen fertig bin.
Anwendungsbeispiel:
quelle
CJam,
4948 BytesProbieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
Am Ende druckt CJam automatisch alle Elemente auf dem Stapel.
quelle
Javascript (ES6), 90
Dies ist eine anonyme Pfeilfunktion. Anhand der Länge der Eingabe wird bestimmt, welches Cookie gezeichnet werden soll.
Erläuterung:
Zu testen:
quelle
BrainFuck,
481447436 BytesWarum nicht BrainFuck? Das Programm kann wahrscheinlich mehr golfen werden, aber ich finde es ziemlich ordentlich.
quelle
C # Mit Einrückung und Zeilenumbruch
Golf (225 Zeichen)
quelle
String C= Console.ReadLine(),E=
... etc?C # 6, 105 Bytes
Ich habe also beinahe diese Sub-100-Bytes bekommen, keine Ahnung, wo ich die letzten paar Bytes auspressen soll: C
quelle
Pyth,
5854535250 BytesIch glaube nicht, dass man mehr Golf spielen kann. Ich habe wirklich versucht, dies in weniger als 50 Bytes zu komprimieren
quelle
". . . " -> *". "3
JavaScript (ES6), 72 Byte
Ungefähr so einfach wie es nur geht ... neue Zeilen werden jeweils als 1 Byte gezählt.
Demo
Da es sich um ES6 handelt, funktioniert diese Demo derzeit nur in Firefox und Safari.
quelle
Commodore 64 BASIC, 181 Bytes
Anmerkungen:
Anstelle von Backslashes wurden
\
die SHIFT-M-Zeichen verwendet, für Slashes/
- SHIFT-N und für Pipes|
- SHIFT-T. SHIFT-Z (Card Diamond Sign) wurde für verwendet^
. Tatsächlich spielen Zeichen keine Rolle, da sie alle jeweils ein Byte belegen.Da in C64 jeder Befehl (PRINT, INPUT, THEN usw.) 2 Byte im Speicher benötigt (oder sogar IIRC), hat sich die Verwendung der Sprache BASIC gelohnt (es hat jedoch mehr Byte gedauert, als ich erwartet hatte).
Die Programmgröße wurde durch Messen des freien Speichers vor dem Eingeben des Programms (38909 Bytes) und danach (38728 Bytes) unter Verwendung eines
PRINT FRE(0)+65536
Befehls berechnet , wobei 181 Bytes Differenz erhalten wurden.Code getestet und Screenshots mit diesem Tool erstellt: http://codeazur.com.br/stuff/fc64_final/ (GPL).
Screenshots:
quelle
Lua 5.3,
113 Bytes112 BytesEs verwendet einen Großteil der ternären Operator- und String-Verkettung, und ich habe alle Leerzeichen entfernt, die nicht Teil der Ausgabe selbst sind.
quelle
Java
258217 Zeichen / ByteGolf gespielt
Original
quelle
LUA 270 Zeichen 270 Bytes
quelle
cookie
aufc
, entfernen Leerzeichen während des Wenns, entfernen Sie diese unnötigenio.read()
s, die erste und letzte Zeile eines Cookies ist immer gleich, ....LOLCODE 265 Zeichen
Run
quelle