ยิ้ม! แค่ยิ้ม


16

เป็นที่ทราบกันดีว่าBrainf * ckนั้นแย่มากในปัญหาที่ซับซ้อนของ Kolmogorov ตัวอย่างเช่นมันต้องการตัวอักษรประมาณ 100 ตัวเพื่อพิมพ์ "Hello world"

อย่างไรก็ตามอาจมีข้อความที่ Brainf * ck ทำได้ดีมาก

ตอนนี้งานของคุณคือการเขียนโปรแกรมที่ไม่มีอินพุตและจะแสดงสิ่งต่อไปนี้:

นั่นคือหน้ายิ้ม (ASCII 1 หากเบราว์เซอร์ของคุณไม่แสดงผล)

Brainf * ck สามารถทำได้ 2 ตัวอักษร

+.

ลองหาภาษาที่จะชนะ!

เราสมมติว่าคอนโซลของคุณสามารถแสดงอักขระนั้นได้จริง (หรือแบบอักษรของคุณมีเป็นต้น)

รหัสที่สั้นที่สุดชนะ หากมีความยาวเท่ากันคนแรกจะชนะ แต่ฉันจะโหวตคนอื่นเช่นกัน

แก้ไข:ฉันเสียใจมากฉันไม่คิดว่าโพสต์แรกจะมาถึงในไม่ช้า การแก้ไขอย่างรวดเร็ว: ภาษาต้องสมบูรณ์ทัวริง!


7
ฉันต้องโต้แย้งคำอธิบายผลลัพธ์ของคุณ: ในขณะที่รหัสของคุณส่งออกอักขระด้วยรหัสไบนารี่ 1 แต่ไม่ได้เข้ารหัส ASCII แต่เป็นของการเข้ารหัสรหัสเพจ DOS เช่น CP850 หรือ CP437 ในคอนโซลที่ทันสมัยรอยยิ้มจะไม่ปรากฏขึ้นเนื่องจาก modern == UTF-8 ☺
Sven

คำตอบ:


10

เท็จ (2)

1,

ทุกสิ่งที่อ่านเกี่ยวกับ BF จ่ายออกไป! เท็จเป็นบรรพบุรุษของ Brainfuck


อุ๊ย! แปลกที่ไม่มีใครคิดถึงเรื่องนี้จนถึงตอนนี้ :)
vsz

1
ฉันต้องยอมรับอันนี้เนื่องจากรุ่นที่มีข้อความธรรมดาและ html ไม่ได้ทำจริงกับภาษาการเขียนโปรแกรม
vsz

ฉันพยายามทำมันด้วย BLC แต่ฉันไม่สามารถทำให้ BLC ออกมาใช้ได้ และแม้แต่เครื่องทัวริงแบบ 1 สถานะก็ยังต้องการองค์ประกอบ 4 หรือ 5 ชิ้นในทูเปิล
luser droog

19

HTML:

มันไม่ใช่ภาษาการเขียนโปรแกรม แต่เป็นทางออกที่สั้นที่สุด


1
ในขณะที่มันไม่เหมาะกับกฎอีกต่อไปฉันจะยังคงให้ +1 เพราะฉันรีบคำถามของฉันและไม่ได้คิดเรื่องนี้
vsz

หากคุณต้องการเรียก php นี้แทนเช่นเดียวกับคำตอบนี้อาจเป็นไปได้ภายใต้กฎใหม่
แมตต์

PHP พูดพล่อยๆออกจะถ้าคุณเพียงแค่พยายามที่จะใช้
jdstankosky

ทำงานใน HTML + CSS ซึ่งใช้ได้ภายใต้กฎใหม่
59

@ Adámกฎสำหรับการท้าทายนี้ต้องการทัวริงครบถ้วนซึ่งลิงก์ที่คุณโพสต์ไม่ได้พิสูจน์
pppery

12

มาติกา

แค่เล่น ๆ...

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

รอยยิ้ม


1
ใน Mma ผู้ช่วยคนหนึ่งทำเช่นนั้นด้วย
ดร. เบลิซาเรี

@belisarius คุณจะวางโดยไม่ต้องแปลงเป็น ASCII ได้อย่างไร
DavidC

1
ฉันเพิ่งคัดลอกมา :)
ดร. เบลิซาเรี

@belisarius ฉันยังตัดและวางไอคอนด้วยเหตุผลบางอย่างรูปแบบเต็มรูปแบบก็แสดงให้เห็น
DavidC

1
มูลค่าการค้าประมาณ 75 เซนต์ ค่าทางคณิตศาสตร์คือ zilch
DavidC

10

ข้อความธรรมดา 1 อักขระ

เนื่องจาก html เป็น overkill ในหลาย ๆ สถานการณ์

(ใช่ฉันรู้ว่ากฎมีการเปลี่ยนแปลง)


ข้อความธรรมดาไม่สมบูรณ์การแสดงคำตอบนี้ไม่ถูกต้อง
pppery

8

C, 18 ตัวอักษร

ไกลจากการเต้น Brainf ** k แต่ทำได้ดีเท่า C (ฉันเดา)
ใช้งานได้บนแพลตฟอร์มน้อย ๆ เท่านั้นต้องทำงานโดยไม่มีพารามิเตอร์

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

7

ระบบจุลภาค MUMPS 4.4 (7 ตัวอักษร)

w $c(1)

คางทูม? โอ้หนังสยองขวัญ ... ฉันไม่เคยนึกเลยว่าฉันจะเห็นมันที่นี่ +1 เพื่อค่าการกระตุ้นที่บริสุทธิ์!
vsz

@vsz มันเป็นเพียงกอล์ฟภาษาที่เหมาะสมฉันรู้ว่ามันมักจะเต้น Langs ที่พบมากที่สุด :)
DaveShaw

5

Brainf * ck (เพียง 2 ตัวอักษร)

+.

แน่นอนว่าฉันจะยังคงยอมรับวิธีแก้ปัญหาที่มีความยาว 2
vsz

คุณอธิบายได้ไหมว่ามันทำงานอย่างไร ควรเอาต์พุต ASCII 1 ซึ่งเป็นอักขระที่ไม่สามารถพิมพ์ได้
nyuszika7h

@ nyuszika7h: คอนโซลจำนวนมากส่งยิ้มสำหรับ ASCII 1
vsz

1
จริงๆ? ฉันไม่เคยเห็นคอนโซลแบบนี้มาก่อน ฉันเดิมพันพวกเขาใช้ชุดอักขระที่คลุมเครือ
nyuszika7h

5

ไม่ชนะ 2 ตัวอักษร แต่:

PHP 11 ตัวอักษร

<?=chr(1)?>

สำหรับทุกคนที่บอกว่าคุณสามารถวางยิ้มใน php และมันจะออก:

ใช้กับ php.exe ในบรรทัดคำสั่งให้Γÿǁและวางไว้ในเบราว์เซอร์ให้☺

มันไม่ทำงาน


คุณสามารถไปเส้นทาง HTML ที่ m0nhawk ทำ
Mr. Llama

@GigaWatt คุณไม่สามารถ มันทำให้พูดไม่ชัดใช้ PHP คุณลองหรือยัง ฉันลองใน CLI และเบราว์เซอร์
jdstankosky

ทำงานได้ดีสำหรับฉัน ideone.com/6wYzx9
Mr. Llama

ใช้กับ php.exe ในบรรทัดคำสั่งให้Γÿǁและวางไว้ในเบราว์เซอร์ให้☺
jdstankosky

2
ถ้าคุณทำเช่นการถ่ายโอนข้อมูลฐานสิบหกของไฟล์ของคุณคุณจะเห็นว่ามันถูกบันทึกไว้เป็นตัวแทนของ Unicode ยิ้ม ( \xE298BA) \x01ไม่เป็น ลองสร้างไฟล์ด้วยตนเองด้วยหนึ่ง\x01ไบต์ในไฟล์และเรียกใช้จากบรรทัดคำสั่งด้วย PHP
นาย Llama


4

Golfscript 3 ตัวอักษร

"☺"

ไม่ใช่ผู้เชี่ยวชาญ Golfscript แต่ฉันไม่เชื่อว่ามีวิธีการแปลงจำนวนเต็มเป็นอักขระ ASCII ที่สอดคล้องกันโดยใช้อักขระเพียง 1 ตัวดังนั้นจึงดูเหมือนว่านี่จะสั้นที่สุดที่จะได้รับ


4

PHP (1)

ในทางเทคนิคนี่เป็นไฟล์ PHP ที่ถูกต้อง (เว็บเซิร์ฟเวอร์จะให้บริการมันอย่างมีความสุข)


3

LaTeX (51/77 ตัวอักษร)

ทางออกสั้น ๆ

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

ทางออกที่ดี (คอมไพล์ด้วยlatex main.tex):

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

อันแรกไม่ทำงานเพราะน้ำยางบริสุทธิ์ไม่สามารถอ่านตัวอักษร unicode ผิดปกติพอไม่สามารถใช้งานได้ทั้งใน XeLaTeX และ LuaLaTeX เนื่องจากตารางแบบอักษรเริ่มต้นไม่มีสัญลักษณ์นี้ โปรดพิจารณาสิ่งนี้: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}- และโปรดระบุเอ็นจิ้นการแสดงผลที่คุณใช้ (pdfLaTeX) ในโซลูชัน“ ดี”
Andreï Kostyrka

2

J (3 ตัวอักษร)

'☺'

รหัสต้องการแบบอักษรที่เหมาะสม

ตามที่Wikipedia

ในฟอนต์ Wingdings ตัวอักษร "J" จะแสดงผลเป็นหน้ายิ้ม (หมายเหตุนี่แตกต่างจาก Unicode code point U + 263A ซึ่งแสดงเป็น☺)


u:1การเปลี่ยนแปลงอีกประการหนึ่งคือ
FireFly

2

Q / k (9 ตัวอักษร)

ไม่สามารถทำได้ใน 2 อย่างน่าเสียดาย

-1"\001";

ฉันดูเหมือนจะจำข้อผิดพลาดในล่ามรุ่นเก่าที่ผลิตสัญลักษณ์รอยยิ้มอื่น ๆ ในตัวละครน้อย ฉันจะดูมัน

แก้ไข: พบการเล่นโวหาร ดูเหมือนว่าจะทำงานกับล่ามเวอร์ชัน windows เท่านั้น:

q)1(1b);
☺


1

Burlesque - 6 ตัวละคร

,1L[sh

คำอธิบาย:

,ปรากฏขึ้น 1L[กดหนึ่งและแปลงเป็นถ่าน (โดย codepoint) shถูกใช้เพื่อสลับไปยังรูปแบบที่สวยงาม (ไม่เช่นนั้นจะพิมพ์นำหน้า')




1

ถัง , 2 ตัวอักษร

กดหมายเลข 1 แล้วพิมพ์ (ประหลาดใจที่ใช้1,งานได้; -1 จาก Lyxal)

1,

ลองออนไลน์!

ถัง 1 ตัวอักษร

ถังเป็นทัวริงเสร็จสมบูรณ์และคำสั่งใด ๆ ที่ไม่รู้จักจะทำหน้าที่ผลักดันให้สแต็ค

ลองออนไลน์!


อันที่จริง1,มันทำให้เป็น 2 ไบต์
Lyxal

1

05AB1E , 2 ตัวอักษร

เพียงแค่การเข้ารหัสที่น่าเบื่อ มันถูกเข้ารหัสใน CP437

"☺

ลองออนไลน์!

05AB1E , 2 ไบต์

ลองออนไลน์!


คุณอาจต้องการรวมการเข้ารหัส คำตอบอันดับแรกของคุณมีเพียง 2 ไบต์ในการเข้ารหัสเช่น CP850 หรือ CP437 ซึ่งมีทั้งอักขระและ"ในเพจรหัส แต่การใช้การเข้ารหัส 05AB1E คำตอบยอดนิยมนั้นไม่สามารถทำได้และการใช้การเข้ารหัส UTF-8 จะเป็น 4 ไบต์
Kevin Cruijssen

ความท้าทายบอกว่าตัวละครเป็นระบบการเข้ารหัสที่ถูกต้อง ...
a'_ '20



0

Perl 6 (7 ตัวอักษร)

say '☺'

ฉันดัดกฎนิดหน่อยโดยสมมติว่า \ n ยินดีต้อนรับเพื่อหลีกเลี่ยงความสับสนในเชลล์


4
คุณแน่ใจหรือว่าต้องการอักขระช่องว่างนั้น
JB



0

PowerShellขนาด 5 ไบต์

หากโปรแกรมควรแสดงผลลัพธ์เป็นหน้ายิ้ม

'☺'

ลองออนไลน์!


PowerShellขนาด 7 ไบต์

หากโปรแกรมควรส่งออกถ่านด้วยรหัส 1

[char]1

ลองออนไลน์!


1
ทำไมไม่เพียง'☺'? โดยวิธีการที่ใบหน้าไม่ได้แสดงผลสำหรับฉันใน TIO หรือคอนโซล
ไอทีค้างชำระ

เนื่องจากรหัสสำหรับหน้ายิ้มไม่ใช่ 1 ใน Powershell ลองออนไลน์!
mazzy

1
คำตอบของคุณควรเป็น '[Char] 9786' แทนไหม? ฉันสับสนจริง ๆ :-D
ไอทีค้างชำระ

1
ฮา! คุณพูดถูก ฉันคิดว่าฉันจะเขียนโปรแกรมที่ให้ตัวละครด้วยรหัส 1 แต่คุณสามารถตีความมันได้ว่าเป็นการเขียนโปรแกรมที่ให้ผลลัพธ์ที่เป็นรูปหน้ายิ้ม
mazzy


0

MineFriffขนาด 5 ไบต์

C1,o;

ลองออนไลน์!

เพียง:

  • ถือว่าการลงทะเบียนชั่วคราวเป็นตัวละคร
  • เพิ่มหนึ่งรายการลงทะเบียนและกด
  • เอาท์พุทรายการด้านบนและเสร็จสิ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.