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!


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.


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.


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


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)


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);}

7

Micronetics System MUMPS 4.4 (7 Zeichen)

w $c(1)

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)

+.

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.


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.


4

PHP (1)

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


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


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).


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);
☺

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}

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 ').


1

Tcl, 1

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



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.


4
Bist du sicher, dass du dieses Leerzeichen brauchst?
JB

0

normaler TeX (5 Zeichen):

Andere meine Antwort, jetzt auf normalem TeX:

☺\bye

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


0

SmileBASIC, 3 Zeichen

?"☺

Um die Umstellung zu erleichtern, müssen Sie

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.