Lächeln! Einfach lächeln

14

Es ist allgemein bekannt, dass Brainf * ck bei Kolmogorov-Komplexitätsproblemen sehr schlecht ist. Beispielsweise sind etwa 100 Zeichen erforderlich, um "Hallo Welt" zu drucken.

Es kann jedoch auch Texte geben, in denen Brainf * ck nur sehr gut ist.

Ihre Aufgabe besteht nun darin, ein Programm zu schreiben, das keine Eingaben vornimmt und Folgendes anzeigt:

Das heißt, ein Smiley (ASCII 1, wenn Ihr Browser es nicht rendert).

Brainf * ck kann dies in 2 Zeichen tun.

+.

Versuche eine Sprache zu finden, die sie schlägt!

Wir gehen davon aus, dass Ihre Konsole dieses Zeichen tatsächlich anzeigen kann (oder Ihre Schriftart es usw. hat).

Kürzester Code gewinnt. Wenn es mehr von der gleichen Länge gibt, gewinnt der erste, aber ich werde auch die anderen positiv bewerten.

EDIT: Es tut mir sehr leid, ich dachte nicht, dass der erste Post so bald eintrifft. Eine schnelle Bearbeitung: Die Sprache muss Turing-vollständig sein!

vsz
quelle
4
Ich muss Ihre Beschreibung der Ausgabe bestreiten: Während Ihr Code wirklich ein Zeichen mit dem Binärcode 1 ausgibt, ist er nicht ASCII-codiert, sondern gehört zu einer DOS-Codepage-Codierung wie CP850 oder CP437. In jeder modernen Konsole wird der Smiley nicht angezeigt, weil modern == UTF-8. ☺
Sven

Antworten:

10

FALSCH (2)

1,

Das ganze Lesen über BF hat sich gelohnt! False ist ein Vorfahr von Brainfuck.

Luser Droog
quelle
Autsch! Seltsam, dass bisher niemand daran gedacht hat. :)
vsz
1
Ich musste dieses akzeptieren, da die Versionen mit Klartext und HTML nicht wirklich mit Programmiersprachen gemacht wurden.
vsz
Ich habe versucht, es mit BLC zu tun, aber ich kann keinen Sinn aus BLC machen. Und selbst eine 1-State-Turing-Maschine benötigt 4 oder 5 Elemente im Tupel.
Luser Droog
19

HTML:

Es ist keine echte Programmiersprache, aber die kürzestmögliche Lösung.


quelle
1
Obwohl es nicht mehr in die Regeln passt, gebe ich trotzdem eine +1, weil ich meine Frage überstürzt habe und nicht daran gedacht habe.
vsz
Wenn Sie stattdessen dieses PHP aufrufen möchten, wie diese Antwort, wäre es nach den neuen Regeln wahrscheinlich in Ordnung.
Matt
PHP gibt Kauderwelsch aus, wenn Sie einfach versuchen, es zu benutzen .
Jdstankosky
Funktioniert in HTML + CSS, was unter den neuen Regeln in Ordnung ist .
Adám
@ Adám Die Regeln für diese Herausforderung erfordern Turing Completeness, was der Link, den du gepostet hast, nicht beweist.
pppery
12

Mathematica

Nur zum Spaß...

"\[HappySmiley]"
"\[NeutralSmiley]"
"\[SadSmiley]"
"\[FreakedSmiley]"

Smileys

DavidC
quelle
1
In Mma macht es auch der eine
Charakter
@belisarius Wie können Sie einfügen, ohne es in ASCII konvertieren zu lassen?
DavidC
1
Ich habe es gerade kopiert :)
Dr. Belisarius
@belisarius Ich habe die Symbole auch ausgeschnitten und eingefügt, aber aus irgendeinem Grund wurde das vollständige Format angezeigt.
DavidC
1
Der Handelswert beträgt ca. 75 Cent. Der mathematische Wert ist zilch.
DavidC
11

Klartext, 1 Zeichen

Weil HTML in vielen Situationen ein Overkill ist.

(Ja, ich weiß, dass sich die Regeln geändert haben)

Baby-Kaninchen
quelle
Klartext wird nicht vollständig und macht diese Antwort ungültig.
Paprika
8

C 18 Zeichen

Weit davon entfernt, Brainf ** k zu schlagen, aber so gut wie C kann es sein (denke ich).
Funktioniert nur auf Little-Endian-Plattformen, muss ohne Parameter ausgeführt werden.

main(c){puts(&c);}
ugoren
quelle
7

Micronetics System MUMPS 4.4 (7 Zeichen)

w $c(1)
DaveShaw
quelle
MUMPS? Oh, das Grauen ... Ich hätte nie gedacht, dass ich es hier sehen werde. +1 nur für den reinen Schockwert!
vsz
@vsz es ist die einzige Golf geeignete Sprache, die ich kenne, sie schlägt oft die üblichsten langs :)
DaveShaw
5

Brainf * ck (nur 2 Zeichen)

+.
vsz
quelle
Natürlich akzeptiere ich immer noch eine Lösung der Länge 2.
vsz
Könnten Sie erklären, wie das funktioniert? Es sollte ASCII 1 ausgeben, ein nicht druckbares Zeichen.
Nyuszika7h
@ nyuszika7h: Viele Konsolen geben einen Smiley für ASCII 1 aus.
vsz
"Ja wirklich?" Ich habe noch nie eine solche Konsole gesehen. Ich wette, sie verwenden einen obskuren Zeichensatz.
nyuszika7h
5

Schlägt nicht 2 Zeichen, aber:

PHP 11 Zeichen.

<?=chr(1)?>

Für alle, die sagen, Sie können den Smiley einfach in PHP platzieren und er wird ausgegeben :

Das Ausführen mit php.exe in der Kommandozeile gibt Γÿǁ und das Platzieren im Browser gibt☺

Es ist nicht zu arbeiten.

jdstankosky
quelle
Sie können auch die HTML-Route verwenden, die m0nhawk verwendet hat.
Mr. Llama
@GigaWatt Das kannst du nicht. Es gibt Kauderwelsch mit PHP aus. Hast du es überhaupt versucht? Ich habe es in der CLI und im Browser versucht.
jdstankosky
Funktioniert gut für mich. ideone.com/6wYzx9
Mr. Llama
Ausführen mit php.exe in der Befehlszeile gibt Γÿǁund Platzieren im Browser gibt☺
jdstankosky
2
Wenn Sie einen Hex-Dump Ihrer Datei erstellen, wird angezeigt, dass sie als Unicode-Darstellung eines Smileys ( \xE298BA) und nicht als gespeichert wurde \x01. Versuchen Sie, eine Datei mit einem einzelnen \x01Byte manuell zu erstellen und sie über die Befehlszeile mit PHP auszuführen.
Mr. Llama
5

DC - 2 Zeichen

1P

Es bedarf keiner Erklärung.

Fors
quelle
4

PHP (1)

Technisch ist dies eine gültige PHP-Datei (ein Webserver wird sie gerne bereitstellen).

Peter C
quelle
3

Golfscript, 3 Zeichen

"☺"

Ich bin kein Golfscript-Experte, aber ich glaube nicht, dass es eine Möglichkeit gibt, eine Ganzzahl mit nur einem Zeichen in das entsprechende ASCII-Zeichen zu konvertieren. Es scheint also, dass dies das kürzeste ist, das es geben kann

Strigoides
quelle
2

J (3 Zeichen)

'☺'

Der Code erfordert die entsprechende Schriftart.

Laut Wikipedia

In der Wingdings-Schriftart wird der Buchstabe "J" als Smiley dargestellt (beachten Sie, dass dies nicht mit dem Unicode-Codepunkt U + 263A identisch ist, der als ☺ dargestellt wird).

P̲̳x͓L̳
quelle
Eine andere Variante ist u:1.
FireFly
2

Q / k (9 Zeichen)

Kann es leider nicht in 2 machen.

-1"\001";

Ich erinnere mich an einen Fehler in einer älteren Version des Interpreters, der das andere Lächeln in weniger Zeichen hervorbrachte. Ich werde es nachsehen.

Bearbeiten: fand die Eigenart. Es scheint nur auf Windows-Versionen des Interpreters zu funktionieren:

q)1(1b);
☺
Skeevey
quelle
2

LaTeX (51/77 Zeichen)

Kurze Lösung

\documentclass{book}
\begin{document}
☺
\end{document}

Gute Lösung (Kompilieren mit latex main.tex):

\documentclass{book}
\usepackage{wasysym}
\begin{document}
\smiley
\end{document}
Martin Thoma
quelle
Der erste funktioniert nicht, da reines LaTeX keine Unicode-Zeichen lesen kann. Seltsamerweise funktioniert dies weder in XeLaTeX noch in LuaLaTeX, da die Standardschriftartentabelle dieses Symbol nicht enthält. Bitte beachten \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}Sie Folgendes : - und geben Sie in der „guten“ Lösung die von Ihnen verwendete Rendering-Engine (pdfLaTeX) an.
Andreï Kostyrka
1

Burlesque - 6 Zeichen

,1L[sh

Erläuterung:

,knallt stdin. 1L[Drückt man und konvertiert nach char (per Codepoint) shwird auf hübsches Format umgeschaltet. (Andernfalls würde es eine führende drucken ').

mroman
quelle
1

Tcl, 1

Zeigt ein ☺ mit etwas anderem an.
Es gibt Gerüchte, dass dies auch mit PHP oder anderen Sprachen funktioniert.

Johannes Kuhn
quelle
1

Arduino, 24

char a=1;Serial.print(a)
Timtech
quelle
0

Perl 6 (7 Zeichen)

say '☺'

Ich verstoße ein wenig gegen die Regeln, indem ich annehme, dass ein \ n willkommen ist, um ein Durcheinander der Shell-Eingabeaufforderung zu vermeiden.

gfldex
quelle
4
Bist du sicher, dass du dieses Leerzeichen brauchst?
JB
0

normaler TeX (5 Zeichen):

Andere meine Antwort, jetzt auf normalem TeX:

☺\bye

quelle
Funktioniert nicht, da reines TeX nur ASCII ist.
Andreï Kostyrka
0

JavaScript, 10 Bytes

alert("☺")

Bildbeschreibung hier eingeben

Pete Arden
quelle
0

SmileBASIC, 3 Zeichen

?"☺

Um die Umstellung zu erleichtern, müssen Sie

12Me21
quelle