Tersenyum! Hanya tersenyum


14

Sudah diketahui bahwa Brainf * ck sangat buruk dalam masalah kompleksitas-Kolmogorov, misalnya, membutuhkan sekitar 100 karakter hanya untuk mencetak "Halo dunia".

Namun, mungkin ada teks di mana Brainf * ck sangat bagus.

Tugas Anda sekarang adalah menulis sebuah program yang tidak membutuhkan input, dan program ini menampilkan yang berikut:

Yaitu, wajah tersenyum (ASCII 1, jika peramban Anda tidak membuatnya).

Brainf * ck dapat melakukannya dalam 2 karakter.

+.

Cobalah untuk menemukan bahasa yang tepat!

Kami menganggap konsol Anda benar-benar dapat menampilkan karakter itu (atau font Anda memilikinya, dll.).

Kode terpendek menang. Jika ada lebih banyak dari panjang yang sama, yang pertama menang, tetapi saya akan membesarkan yang lain juga.

EDIT: Saya sangat menyesal, saya tidak berpikir posting pertama tiba segera ini. Edit cepat: bahasanya harus lengkap Turing!


4
Saya harus menyengketakan deskripsi Anda tentang output: Walaupun kode Anda benar-benar menampilkan karakter dengan kode biner 1, itu bukan ASCII-encoded, tetapi milik beberapa encoding codepage DOS seperti CP850 atau CP437. Di konsol modern mana pun smiley tidak akan muncul, karena modern == UTF-8. ☺
Sven

Jawaban:


10

SALAH (2)

1,

Semua yang membaca tentang BF terbayar! Salah adalah leluhur Brainfuck.


Aduh! Aneh bahwa tidak ada yang memikirkan hal ini sampai sekarang. :)
vsz

1
Saya harus menerima yang ini, karena versi dengan teks biasa dan html sebenarnya tidak dilakukan dengan bahasa pemrograman.
vsz

Saya mencoba melakukannya dengan BLC, tetapi saya tidak dapat memahami BLC. Dan bahkan mesin Turing 1-negara membutuhkan 4 atau 5 elemen dalam tuple.
luser droog

19

HTML:

Ini bukan benar-benar bahasa pemrograman, tetapi solusi sesingkat mungkin.


1
Meskipun tidak lagi sesuai dengan aturan, saya masih akan memberi +1 karena saya terburu-buru pertanyaan saya dan tidak memikirkan hal ini.
vsz

Jika Anda ingin memanggil php ini sebagai gantinya, seperti jawaban ini , mungkin akan baik-baik saja di bawah aturan baru.
Matt

PHP akan menampilkan omong kosong jika Anda hanya mencoba menggunakannya .
jdstankosky

Bekerja dalam HTML + CSS, yang tidak apa-apa di bawah aturan baru.
Adám

@ Adám Aturan untuk tantangan ini membutuhkan Turing Completeness, yang tidak dibuktikan oleh tautan yang Anda posting.
pppery

12

Mathematica

Hanya untuk bersenang-senang...

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

smiley


1
Di Mma, satu karakter ☺ juga melakukannya
Dr. belisarius

@belisarius Bagaimana cara Anda menempel tanpa mengubahnya menjadi ASCII?
DavidC

1
Saya baru saja menyalin-menempelkannya :)
Dr. belisarius

@belisarius Saya juga memotong & menempel ikon, tetapi untuk beberapa alasan format penuh ditampilkan.
DavidC

1
Nilai komersialnya sekitar 75 sen. Nilai matematika adalah nihil.
DavidC

11

teks biasa, 1 char

Karena html adalah pembunuhan berlebihan dalam banyak situasi.

(ya, saya tahu aturannya telah berubah)


teks biasa tidak berubah lengkap, menjadikan jawaban ini tidak valid.
pppery

8

C, 18 karakter

Jauh dari mengalahkan Brainf ** k, tapi sebagus C bisa (kurasa).
Hanya berfungsi pada platform little-endian, harus dijalankan tanpa parameter.

main(c){puts(&c);}

7

Sistem Micronetics MUMPS 4.4 (7 karakter)

w $c(1)

PENYAKIT GONDOK? Oh, kengeriannya ... Aku bahkan tidak pernah membayangkan akan melihatnya di sini. +1 hanya untuk nilai kejut murni!
vsz

@vsz itu satu-satunya bahasa yang cocok untuk Golf yang saya tahu, sering kali mengalahkan bahasa yang paling umum :)
DaveShaw

5

Brainf * ck (hanya 2 karakter)

+.

Tentu saja, saya masih akan menerima solusi panjang 2.
vsz

Bisakah Anda menjelaskan cara kerjanya? Ini harus menghasilkan ASCII 1 yang merupakan karakter yang tidak dapat dicetak.
nyuszika7h

@ nyuszika7h: banyak konsol mengeluarkan smiley untuk ASCII 1.
vsz

Betulkah? Saya belum pernah melihat konsol seperti itu. Saya yakin mereka menggunakan charset yang tidak jelas.
nyuszika7h

5

Tidak mengalahkan 2 karakter, tetapi:

PHP 11 karakter.

<?=chr(1)?>

Untuk semua orang yang mengatakan, Anda cukup menempatkan smiley di php dan itu akan menampilkan :

Menjalankannya dengan php.exe di baris perintah memberi Γÿǁdan menempatkannya di browser memberi☺

Itu tidak bekerja.


Anda juga bisa membuka rute HTML yang dilakukan m0nhawk.
Tn. Llama

@ GigaWatt Anda tidak bisa. Itu mengeluarkan omong kosong menggunakan PHP. Apakah Anda pernah mencobanya? Saya mencobanya di CLI dan browser.
jdstankosky

Bekerja dengan baik untuk saya. ideone.com/6wYzx9
Mr. Llama

Menjalankannya dengan php.exe di baris perintah beri Γÿǁdan letakkan di browser beri☺
jdstankosky

2
Jika Anda melakukan hex dump dari file Anda, Anda akan melihat bahwa file itu disimpan sebagai representasi unicode dari smiley ( \xE298BA), bukan sebagai \x01. Coba buat file secara manual dengan satu \x01byte di dalamnya dan jalankan dari baris perintah dengan PHP.
Tn. Llama

5

DC - 2 karakter

1P

Itu tidak memerlukan penjelasan apa pun.


4

PHP (1)

Secara teknis ini adalah file PHP yang valid (server web akan dengan senang hati menyajikannya).


3

Golfscript, 3 karakter

"☺"

Bukan ahli skrip golf, tapi saya tidak percaya ada cara untuk mengubah integer menjadi karakter ASCII yang sesuai hanya menggunakan 1 karakter, jadi sepertinya ini adalah yang terpendek yang bisa didapat


2

J (3 karakter)

'☺'

Kode membutuhkan font yang sesuai.

Menurut Wikipedia

Dalam font Wingdings, huruf "J" diberikan sebagai wajah yang tersenyum (perhatikan ini berbeda dari titik kode Unicode U + 263A, yang diterjemahkan sebagai ☺).


Variasi lain adalah u:1.
FireFly

2

Q / k (9 karakter)

Sayangnya, tidak bisa melakukannya dalam 2.

-1"\001";

Saya sepertinya ingat bug dalam versi yang lebih lama dari juru bahasa yang menghasilkan simbol senyum lain dalam karakter yang lebih sedikit. Saya akan mencarinya.

Sunting: ditemukan kekhasannya. Tampaknya hanya berfungsi pada interpreter versi windows:

q)1(1b);
☺

2

LaTeX (51/77 karakter)

Solusi singkat

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

Solusi yang bagus (Kompilasi dengan latex main.tex):

\documentclass{book}
\usepackage{wasysym}
\begin{document}
\smiley
\end{document}

Yang pertama tidak berfungsi karena LaTeX murni tidak dapat membaca karakter unicode. Anehnya, ini tidak berfungsi baik di XeLaTeX, maupun di LuaLaTeX karena tabel font default tidak mengandung simbol ini. Silakan pertimbangkan ini: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}- dan harap tentukan mesin rendering yang Anda gunakan (pdfLaTeX) dalam solusi "baik".
Andreï Kostyrka

1

Burlesque - 6 Karakter

,1L[sh

Penjelasan:

,muncul stdin. 1L[mendorong satu dan mengkonversi ke char (dengan codepoint) shdigunakan untuk beralih ke format cantik. (Kalau tidak, itu akan mencetak pemimpin ').


1

Tcl, 1

Menampilkan ☺ dengan beberapa hal lain.
Ada desas-desus bahwa ini juga berfungsi dengan PHP atau bahasa lain.



0

Perl 6 (7 karakter)

say '☺'

Saya sedikit menekuk aturan dengan mengasumsikan bahwa \ n dipersilakan untuk menghindari kekacauan shell prompt.


4
Anda yakin membutuhkan karakter luar angkasa itu?
JB

0

TeX polos (5 karakter):

Lain jawaban saya, sekarang di TeX:

☺\bye

Tidak berfungsi karena TeX murni hanya ASCII.
Andreï Kostyrka


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.