Bedarf
Um der Herausforderung willen definieren wir eine Einheit :
Eine Einheit ist ein beliebiger Punkt, aus dem das Raster besteht, in dem das Gesicht gezeichnet wird (Pixel für den Bildschirm, Zeichen für ASCII-Grafiken usw.).
Die Mindestanforderungen an das Gesicht sind:
Ein Smiley besteht aus einer Form, die einem Kreis (nicht unbedingt perfekt) mit einem beliebigen Radius ähnelt. Es muss mindestens 1 Einheit für jedes der beiden Augen und mindestens 2 Einheiten für den Mund vorhanden sein. Augen und Mund sollten sich innerhalb der Gesichtsform befinden. Der Mund kann nach Belieben ausgerichtet werden (fröhlich, traurig, gleichgültig usw.).
Hier ist ein Beispiel für die Ausgabe:
0 0 0 . . .
0 . . 0 . o o .
0 --- 0 . \_/ .
0 0 0 . . .
Tore
Das Hauptziel ist natürlich, den kürzestmöglichen Code zu entwickeln, aber Kunst ist auch wichtig.
Gewinner
Der Gewinner wird basierend auf der Anzahl der Stimmen der Benutzer in mindestens den nächsten 5 Tagen ausgewählt.
alt + 1
undalt + 2
werde ☺ bzw. ☻ produzieren. Aus Gründen der Argumentation betrachte ich dasalt
Drücken einer Taste als ein Zeichen und bezeichne es mit 2 Zeichen.Antworten:
Javascript, 340
Javascript, 283
optimierte Version (mit einigen Verbesserungen & ohne unnötige Leerzeichen)
Naja ... vielleicht ist es nicht so kurz, wie Sie es möchten, aber es ist sicher unkonventionell. Es sieht besser aus, wenn Ihr Browser maximiert ist. Ihre Frage hat mir sehr gut gefallen! Wenn Sie die Details erhöhen möchten, reduzieren Sie die
d
Variable leicht.Bearbeiten: Leider kann ich es nicht auf jsfiddle ausführen,
aber Sie können es in einem Browser in die Javascript-Konsole einfügen. Oh, und aktiviere Popups auf der Seite :).edit2: Sie können es ausführen, indem Sie eine neue HTML-Datei erstellen und den Code darin einfügen:
Wenn Sie es dann ausführen und nichts passiert, aktivieren Sie einfach die Popup-Fenster und laden Sie die Seite neu. Dazu klebe ich
quelle
HTML,
200141 ZeichenDank Erfolg habe ich das auf 141 Zeichen reduziert :
Hier ist der ursprüngliche HTML-Code:
Funktioniert am besten auf kleinen Bildschirmen:
quelle
Brainfuck: 583 Zeichen (ohne Leerzeichen)
Ausgabe:
quelle
SVG
Rendert wie folgt:
quelle
Ruby, 224
Douglas Adams wäre entsetzt. :-P
Ausgabe:
Rubin, 110
Gleiche Technik. Weniger Code. Weniger kunstvoll. Sieht aus, als hätte jemand einen Plastik-Smiley geschmolzen. : -}
Ausgabe:
quelle
QBasic ASCII, 134 (nicht optimiert)
Diese Antwort schummelt völlig, indem sie das ASCII-Zeichen 1 für ihren Smiley verwendet. Im Gegensatz zu den Antworten BF und "Nur-Text" werden jedoch die Regeln eingehalten, indem ASCII-Grafiken auf der Grundlage der Pixel des Smiley-Zeichens erstellt werden, anstatt das Zeichen einfach als vollständige Lösung zu drucken. Die nicht optimierte Version gibt an, wie die IDE von QBasic die Dateien speichert. Die IDE ist "hilfreich", um die Syntax für uns zu korrigieren und viel Leerzeichen hinzuzufügen, wenn dies "benötigt" wird.
Ausgabe:
QBasic ASCII, 80 (optimiert)
Dies ist eine optimierte Version des ersten Codebeispiels, das noch in QBasic geladen wird. Dinge, die getan wurden:
CHR$(1)
durch eine Zeichenfolge ersetzt, die das tatsächliche Zeichen enthält. (Hier mit einem passenden Unicode-Zeichen dargestellt. Wenn Sie den Code tatsächlich ausprobieren möchten, ersetzen Sie ihn mit einem Hex-Editor durch ein echtes ASCII-Zeichen 1.)PRINT
durch?
, wie es die BASIC-Tradition vorsieht.IF
Zeile durch eine Zeile, die Zeichen basierend auf dem Quellpixelwert druckt. Dies ist entweder 0 oder 3. 0 ist die Farbe Schwarz. Zeichen 0 gibt ein Nullzeichen aus, das wie ein Leerzeichen behandelt wird. 3 ist die Farbe Weiß in der 4-Farben-Palette von CGA. ASCII-Zeichen 3 ist ein Herz.Ausgabe:
QBasic grafisch, 83 (Whitespace optimiert)
Warten Sie, ich frage Sie hier, können Sie nicht einfach die integrierten Grafikbefehle von QBasic verwenden? Sicher, aber das spart Ihnen aufgrund der Ausführlichkeit der Sprache eigentlich keine Bytes. Aber es hat eine eingebaute Funktion, um nur einen Kreisbogen zwischen zwei gegebenen Winkeln zu zeichnen, was schön ist. Die Winkel werden im Bogenmaß angegeben
4
und entsprechen in5.4
etwa einem Kreisbogen, der symmetrisch zentriert istπ*3/2
, oder wenn Sie sich der guten Seite angeschlossen habenτ*3/4
.Ausgabe:
Hinweis: Die Größenangaben in dieser Antwort geben an, wie groß die Datei in Byte ist.
quelle
APL, 97 Zeichen / Byte *
Es funktioniert, indem ein paar Kreisgleichungen berechnet werden. Getestet auf GNU APL .
Ausgabe ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ *: APL kann in einem eigenen (älteren) Einzelbyte -Zeichensatz geschrieben werden, der APL-Symbole den oberen 128-Byte-Werten zuordnet
. Aus diesem Grund kann ein Programm mit N Zeichen , das nur ASCII-Zeichen und APL-Symbole verwendet, als N Byte lang betrachtet werden.
quelle
Bash, 63 Zeichen
Ausgabe:
Kunst:
Kühe.
quelle
Bash, 22 Zeichen
Beispielausgabe:
Bearbeiten: Dies könnte weiter golfen werden, wie von mehreren Personen vorgeschlagen. Die kürzeste in sich geschlossene Version, die bisher gefunden wurde, ist:
(danke nitro2k01)
quelle
curl -L x.co/3WG0m
. Könnte weiter optimiert werden, wenn wir einen lokalen, aus einem Zeichen bestehenden Hostnamen haben, der auch die Daten direkt-L
Z
, die auf einen Server verweist, auf dem die Datei gehostet wird.Python
247230227 Charaktere - und eine niedlichere VersionPython 243-Zeichen - Verwenden von Farben
quelle
C ++ - 122 Zeichen ohne unnötige Leerzeichen
Das ist das Realistischste, was ich mir einfallen lassen könnte:
Für diejenigen unter Ihnen, die etwas verpassen, wird Folgendes erstellt:
quelle
return 0;
ist in ISO C ++ nicht erforderlich :)quelle
PHP, viele andere Sprachen ... - 1601 Zeichen
Quelle für Smileys: Asciiworld.com: Smiley
quelle
HTML, CSS
Ich weiß, dass es weder eine kurze noch eine echte Codierung ist, aber ich wollte dies trotzdem posten
jsFiddle
quelle
#d{border-radius:20px/10px;}
. Oder mit#d{border-radius:0 0 20px 20px/0 0 10px 10px;}
. Oder mit#d{height:10px;border-radius:0 0 20px 20px/0 0 10px 10px;margin-top:10px;}
.Rebmu , 24 Zeichen
Oh, die minimale Menschlichkeit. :-) Das bisher am wenigsten beeindruckende Rebmu-Programm, bei dem pHp gezielt als Hommage an die blaue Pille in der Programmierwelt eingebettet wurde :
H{ -- }pHp{|..|^/|\/|}pH
Ausführung:
Erläuterung
Rebmu ist nur ein Dialekt von Rebol . Es erbt die Analysebeschränkungen, verwendet abgekürzte Begriffe ohne durch Großschreibung getrennte Leerzeichen. Es wird eine Sonderbehandlung angewendet, wenn der erste Durchgang aktiviert oder nicht aktiviert ist.
(Anstatt Begriffe wie
AbcDefGhi
diese zu trennen , kann man die Differenz zwischenABCdefGHI
und verwendenabcDEFghi
, um ein bisschen Information herauszupressen. Sequenzen, deren Abläufe in Großbuchstaben beginnen, werden getrennt, so dass der erste Begriff ein "gesetztes Wort!" Darstellt, das oft kontextuell als Wunsch interpretiert wird für eine Aufgabe siehe Video )Wenn Sie dies in native Rebol übersetzen möchten, müssen Sie solche Dinge akzeptieren, die mit einem Großbuchstaben H beginnen, um zu bedeuten, dass es sich tatsächlich um ein
h:
und nicht um ein handelth
. Die Quelle ist also analog zu:Weist den String
--
h zu (mit asymmetrischen Stringtrennzeichen, weilprint {"Isn't it nice," said {Dr. Rebmu}, "when you have asymmetric multi-line string delimiters with no need for escaping matched nested pairs, and that accept apostrophes and quotes too?"}
Gibt h einmal aus, gibt einen anderen String aus, in dem
^/
die Escape-Sequenz für Newline steht (Carets werden in der Software weniger verwendet als Backslashes, die häufig in Pfaden vorkommen) , gibt h erneut aus.quelle
JavaScript
262251Edit: Bessere Augen hinzugefügt.
Druckt ein Smiley-Gesicht in die Konsole.
Möglicherweise gehen einige Zeichen verloren, um meine Bitmaske zu vereinfachen und ein weniger hübsches Gesicht zu drucken, oder Sie verwenden eine Kreisgleichung anstelle einer Ellipse, um den Zeichenabstand zu berücksichtigen - aber das ist nicht der Sinn.
Sie können die
r
Variable ändern, um die Größe zu ändern und ein mehr oder weniger detailliertes Gesicht zu erhalten. Jede Zahl>=7 && <=99
liefert ein gutes Ergebnis und bleibt innerhalb der Zeichenbegrenzung.Für Menschen lesbar:
Ausgabe:
Mein erstes Golfspiel dürfte also einige Verbesserungen bringen.
quelle
Perl, 106 Zeichen
Es handelt sich um einen Perl-Oneliner. Sie müssen ihn nur an der Eingabeaufforderung abrufen, sofern das Perl-
Acme::EyeDrops
Modul bereits auf dem Computer installiert ist.Ein anderer Weg, ein Smiley mit Pulling a Face
Noch ein anderer Weg, ein Smiley mit auf den Kopf gestelltem Gesicht,
quelle
Bash + ImageMagick: 137 Zeichen
Beispielausgabe:
Aber da dies eine Herausforderung für Ascii-Art ist ...
Bash + ImageMagick: 172 Zeichen
Beispielausgabe:
quelle
GolfScript, 27
Dies gibt das 2. Beispiel genau so aus, wie es angegeben ist.
Erstens kann man das genauso machen, aber ich finde das zweite sieht schöner aus :)
quelle
Brainf *** - 2
Drucke
☺
oder ASCII-Wert 1. (funktioniert möglicherweise auf einigen Plattformen nicht)quelle
Bash - Einzeiler: 442 Zeichen
Beispielausgabe: (aufgerufen von
m 8
)Irgendwie verrückt, aber ich habe mich dafür entschieden, einen Diamanten anstelle eines Kreises zu verwenden. Die Augen sind von einer Schutzbrille bedeckt.
BASH - 252 Zeichen (danke @manatwork)
quelle
s(){ (($1>1))&&echo -n "${2:- }"&&s $[$1-1] $2;};m(){ ((t=2*$1));while ((t=t-1));do v=$[$1-t];l=$[${v#-}+1];s $l;q=$[2*($1-l)];w=`s $q`;((l>t&&l<t+3&&q>2))&&w=" `s $[q-2] 0` ";((t>$1+1&&q>3))&&{ g=`s $[(q-1)/2] 0`;w=" $g $g ";};echo "+${w:+$w+}";done;}
. Oder 245, wenn Sie die Funktion m aufgeben und den Code in eine Skriptdatei einfügen. Wahrscheinlich kann man die Zahl der Berechnungen noch weiter reduzieren, aber dafür habe ich jetzt keine Zeit.HTML + CSS, 83
Screenshot (mit Firefox):
schade, dass ich mit meiner antwort zu spät bin (habe +10 rep auch ziemlich spät ...)
quelle
border-radius:50%
und einer Single<hr>
: dabblet.com/gist/8472397
: jsfiddle.net/T9BdL/2GolfScript, 18
Dieses Programm verwendet einige binär codierte Werte, die in einem Texteditor als seltsame / ungültige Zeichen angezeigt werden.
Hier ist der Hex-Dump:
Hinweis: Es funktioniert nicht in einem UTF-8-Gebietsschema, aber zum Beispiel mit ISO-8859-1.
Die erweiterte Version mit Escapezeichen:
Ausgabe:
Für eine schönere Ausgabe können Sie den Block ersetzen, durch
{2base{38+}%n}
den die Binärversion auf 23 Byte gebracht wird. Erweiterte Version:Ausgabe:
quelle
JavaScript
Dieser Code muss
f12
auf dieser Seite eingegeben werden:Ausgabe:
quelle
CJam, 18
Ich habe mich für einen kurzen Code entschieden ... Probieren Sie es hier aus .
Erläuterung
Dies nutzt die Symmetrie des von mir entworfenen Smileys aus.
Ausgabe
quelle
uu
für das Lächeln ist eine Option, wenn Sie für diese "Katze" Art von Lächeln gehen ...Python
Ausgabe:
quelle
Python, 42
quelle
HTML 5: 321 Zeichen
Fiddle: http://jsfiddle.net/wfNGx/
Quelle: http://www.codecademy.com/courses/web-beginner-en-SWM11/0/1
quelle
Shell-Befehl oder eingebaut
Abhängig von der Version Ihrer Shell oder Ihres Befehlssatzes
echo
können Sie Steuerzeichen mit oder ohne interpretieren oder nicht interpretieren-e
(... und ich fordere, dass ich Vroomfondel sein darf oder nicht!) schlägt fehl, mitprintf
sollte eine sichere Wette sein ...quelle
C 178 Zeichen:
Quelle (Leerzeichen hinzugefügt - alle können entfernt werden, außer um
int x
Ausgabe:
quelle