Nụ cười! Chỉ cười


14

Người ta biết rằng Brainf * ck rất tệ trong các vấn đề phức tạp của Kolmogorov, ví dụ, nó yêu cầu khoảng 100 ký tự chỉ để in "Hello world".

Tuy nhiên, có thể có những văn bản mà Brainf * ck rất giỏi.

Nhiệm vụ của bạn bây giờ là viết một chương trình không có đầu vào và nó sẽ hiển thị như sau:

Đó là, một khuôn mặt cười (ASCII 1, nếu trình duyệt của bạn không hiển thị nó).

Brainf * ck có thể làm điều đó trong 2 ký tự.

+.

Hãy cố gắng tìm một ngôn ngữ đánh bại nó!

Chúng tôi cho rằng bảng điều khiển của bạn thực sự có thể hiển thị ký tự đó (hoặc phông chữ của bạn có nó, v.v.).

Mã ngắn nhất sẽ thắng. Nếu có nhiều hơn cùng chiều dài, lần đầu tiên sẽ thắng, nhưng tôi cũng sẽ nâng cao những người khác.

EDIT: Tôi rất xin lỗi, tôi không nghĩ rằng bài viết đầu tiên đến sớm như vậy. Chỉnh sửa nhanh: ngôn ngữ phải là Turing - hoàn tất!


4
Tôi phải tranh chấp mô tả đầu ra của bạn: Mặc dù mã của bạn thực sự xuất ra một ký tự có mã nhị phân 1, nhưng nó không được mã hóa ASCII, nhưng thuộc về một số mã hóa mã hóa DOS như CP850 hoặc CP437. Trong bất kỳ bảng điều khiển hiện đại nào, mặt cười sẽ không xuất hiện, vì hiện đại == UTF-8. ☺
Sven

Câu trả lời:


10

SAU (2)

1,

Tất cả những gì đọc về BF đã được đền đáp! Sai là tổ tiên của Brainfuck.


Ôi! Kỳ lạ là không ai nghĩ đến điều này cho đến bây giờ. :)
vsz

1
Tôi đã phải chấp nhận điều này, vì các phiên bản với văn bản thuần túy và html không thực sự được thực hiện với các ngôn ngữ lập trình.
vsz

Tôi đã cố gắng làm điều đó với BLC, nhưng tôi không thể hiểu được BLC. Và ngay cả một máy Turing 1 trạng thái cũng cần 4 hoặc 5 yếu tố trong bộ dữ liệu.
luser droog

19

HTML:

Nó không thực sự là một ngôn ngữ lập trình, mà là giải pháp ngắn nhất có thể.


1
Mặc dù nó không còn phù hợp với các quy tắc, tôi vẫn sẽ cho +1 vì tôi đang vội vã đặt câu hỏi và không nghĩ về điều này.
vsz

Nếu bạn muốn gọi php này thay vào đó, như câu trả lời này , có lẽ sẽ ổn theo các quy tắc mới.
Matt

PHP sẽ xuất ra vô nghĩa nếu bạn chỉ đơn giản là cố gắng sử dụng .
jdstankosky

Hoạt động trong HTML + CSS, được chấp nhận theo các quy tắc mới.
Adám

@ Adám Các quy tắc cho thử thách này yêu cầu Turing Complete, điều mà liên kết bạn đã đăng không chứng minh được.
pppery

12

Toán học

Chỉ để cho vui thôi ...

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

biểu tượng mặt cười


1
Ở Mma, một char cũng làm điều đó
Tiến sĩ belisarius

@belisarius Làm thế nào để bạn dán mà không cần chuyển đổi sang ASCII?
DavidC

1
Tôi chỉ sao chép-dán nó :)
Tiến sĩ belisarius

@belisarius Tôi cũng đã cắt và dán các biểu tượng, nhưng vì một số lý do, định dạng đầy đủ đã được hiển thị.
DavidC

1
Giá trị thương mại là khoảng 75 xu. Giá trị toán học là zilch.
DavidC

11

văn bản đơn giản, 1 char

Bởi vì html là một quá mức cần thiết trong nhiều tình huống.

(vâng, tôi biết các quy tắc đã thay đổi)


văn bản thuần túy không hoàn thành, khiến câu trả lời này không hợp lệ.
pppery

8

C, 18 ký tự

Khác xa với việc đánh bại Brainf ** k, nhưng tốt như C có thể nhận được (tôi đoán vậy).
Chỉ hoạt động trên nền tảng ít endian, phải chạy mà không có tham số.

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

7

Hệ thống vi mô MUMPS 4.4 (7 ký tự)

w $c(1)

NHIỀU? Ôi, sự kinh hoàng ... Tôi thậm chí không bao giờ tưởng tượng rằng tôi sẽ nhìn thấy nó ở đây. +1 chỉ cho giá trị sốc thuần túy!
vsz

@vsz đó là ngôn ngữ phù hợp với Golf duy nhất mà tôi biết, nó thường đánh bại các
lang

5

Brainf * ck (chỉ có 2 ký tự)

+.

Tất nhiên, tôi vẫn sẽ chấp nhận giải pháp có độ dài 2.
vsz

Bạn có thể giải thích làm thế nào điều này hoạt động? Nó sẽ xuất ASCII 1, một ký tự không in được.
nyuszika7h

@ nyuszika7h: nhiều bảng điều khiển tạo ra một nụ cười cho ASCII 1.
vsz

Có thật không? Tôi chưa bao giờ thấy một giao diện điều khiển như vậy. Tôi cá là họ sử dụng một số bảng mã tối nghĩa.
nyuszika7h

5

Không đánh 2 ký tự, nhưng:

PHP 11 ký tự.

<?=chr(1)?>

Đối với mọi người nói rằng bạn chỉ cần đặt mặt cười vào php và nó sẽ xuất ra :

Chạy nó với php.exe trong dòng lệnh đưa ra Γÿǁvà đặt nó trong trình duyệt cung cấp☺

không hoạt động.


Bạn cũng có thể đi theo con đường HTML mà m0nhawk đã làm.
Ông Llama

@GigaWatt Bạn không thể. Nó đưa ra vô nghĩa bằng cách sử dụng PHP. Bạn thậm chí đã thử? Tôi đã thử nó trong CLI và trình duyệt.
jdstankosky

Hoạt động tốt cho tôi. ideone.com/6wYzx9
Ông Llama

Chạy nó với php.exe trong dòng lệnh cung cấp Γÿǁvà đặt nó trong trình duyệt cung cấp☺
jdstankosky

2
Nếu bạn thực hiện một kết xuất hex của tệp của mình, bạn sẽ thấy rằng nó đã được lưu dưới dạng đại diện unicode của một mặt cười ( \xE298BA), chứ không phải \x01. Hãy thử tự tạo một tệp có một \x01byte trong đó và chạy nó từ dòng lệnh với PHP.
Ông Llama

5

DC - 2 ký tự

1P

Nó không yêu cầu bất kỳ lời giải thích.


4

PHP (1)

Về mặt kỹ thuật, đây là một tệp PHP hợp lệ (một máy chủ web sẽ vui vẻ phục vụ nó).


3

Golf, 3 ký tự

"☺"

Không phải là chuyên gia về golf, nhưng tôi không tin có một cách để chuyển đổi một số nguyên thành ký tự ASCII tương ứng chỉ bằng 1 ký tự, vì vậy có vẻ như đây là cách ngắn nhất có thể nhận được


2

J (3 ký tự)

'☺'

Mã yêu cầu phông chữ thích hợp.

Theo Wikipedia

Trong phông chữ Wingdings, chữ "J" được hiển thị dưới dạng mặt cười (lưu ý điều này khác với điểm mã Unicode U + 263A, được hiển thị là).


Một biến thể khác là u:1.
FireFly

2

Q / k (9 ký tự)

Không thể làm điều đó trong 2 không may.

-1"\001";

Tôi dường như nhớ lại một lỗi trong phiên bản cũ của trình thông dịch tạo ra biểu tượng nụ cười khác với ít ký tự hơn. Tôi sẽ tìm nó

Chỉnh sửa: tìm thấy sự giải quyết. Nó chỉ xuất hiện để hoạt động trên các phiên bản windows của trình thông dịch:

q)1(1b);
☺

2

LaTeX (51/77 ký tự)

Giải pháp ngắn

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

Giải pháp tốt (Biên dịch với latex main.tex):

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

Cái đầu tiên không hoạt động vì LaTeX thuần túy không thể đọc các ký tự unicode. Thật kỳ lạ, điều này không hoạt động trong XeLaTeX, cũng như trong LuaLaTeX vì bảng phông chữ mặc định không chứa biểu tượng này. Vui lòng xem xét điều này: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}- và vui lòng chỉ định công cụ kết xuất bạn đang sử dụng (pdfLaTeX) trong giải pháp tốt.
Andreï Kostyrka

1

Burlesque - 6 nhân vật

,1L[sh

Giải trình:

,pops stdin. 1L[đẩy một và chuyển đổi sang char (bằng codepoint) shđược sử dụng để chuyển sang định dạng đẹp. (Nếu không, nó sẽ in hàng đầu ').


1

Tcl, 1

Hiển thị ☺ với một số nội dung khác.
Có tin đồn rằng điều này cũng hoạt động với PHP hoặc các ngôn ngữ khác.



0

Perl 6 (7 ký tự)

say '☺'

Tôi đang bẻ cong các quy tắc một chút bằng cách giả sử rằng một \ n được hoan nghênh để tránh sự lộn xộn của trình bao.


4
Bạn có chắc bạn cần nhân vật không gian đó?
JB

0

đồng bằng TeX (5 ký tự):

Khác câu trả lời của tôi, bây giờ trên TeX đơn giản:

☺\bye

Không hoạt động vì TeX thuần túy chỉ có ASCII.
Andreï Kostyrka


0

SmileBASIC, 3 nhân vật

?"☺

Hay nói, là một tài tài của, qua, qua, qua một tài khác, qua giữ, qua một tài khác

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.