Gülümsemek! Sadece gül


16

Brainf * ck'nin Kolmogorov-karmaşıklık sorunlarında çok kötü olduğu iyi bilinmektedir, örneğin, sadece "Merhaba dünya" yı yazdırmak için yaklaşık 100 karakter gerektirir.

Ancak, Brainf * ck'nin çok iyi olduğu metinler olabilir.

Göreviniz artık girdi almayan bir program yazmak ve aşağıdakileri görüntüler:

Yani, gülen bir yüz (tarayıcınız oluşturmazsa ASCII 1).

Brainf * ck bunu 2 karakterle yapabilir.

+.

Onu yenen bir dil bulmaya çalışın!

Konsolunuzun aslında bu karakteri (veya yazı tipiniz vb.) Görüntüleyebileceğini varsayıyoruz.

En kısa kod kazanır. Aynı uzunlukta daha fazla varsa, ilk kazanır, ancak diğerlerini de vuracağım.

DÜZENLEME: Çok üzgünüm, ilk gönderinin yakında geldiğini düşünmedim. Hızlı bir düzenleme: dil Turing-complete olmalı!


7
Çıktı açıklamanıza itiraz etmeliyim: Kodunuz gerçekten ikili kod 1 ile bir karakter çıkarırken, ASCII kodlu değildir, ancak CP850 veya CP437 gibi bazı DOS kod sayfasına aittir. Herhangi bir modern konsolda gülen yüz görünmeyecektir, çünkü modern == UTF-8. ☺
Sven

Yanıtlar:


10

YANLIŞ (2)

1,

BF ile ilgili tüm bu okumalar ödedi! False, Brainfuck'ın atasıdır.


Ah! Şimdiye kadar hiç kimsenin bunu düşünmediği garip. :)
vsz

1
Düz metin ve html içeren sürümlerin programlama dilleri ile yapılmadığı için bunu kabul etmek zorunda kaldım.
vsz

BLC ile yapmaya çalıştım, ama BLC'den bir anlam çıkaramıyorum. Ve 1 durumlu bir Turing makinesi bile demette 4 veya 5 elemana ihtiyaç duyar.
luser droog

8

C, 18 karakter

Brainf ** k'yi yenmekten uzak, ama C'nin alabileceği kadar iyi (sanırım).
Sadece küçük endian platformlarında çalışır, parametresiz çalışmalıdır.

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

7

Mikronetik Sistem MUMPS 4.4 (7 karakter)

w $c(1)

KABAKULAK? Oh, korku ... Onu burada göreceğimi hiç hayal bile edemedim. Sadece saf şok değeri için +1!
vsz

@vsz bildiğim tek Golf için uygun dil, genellikle en yaygın dilleri yener :)
DaveShaw

5

Brainf * ck (sadece 2 karakter)

+.

Tabii ki, yine de 2 uzunluğundaki bir çözümü kabul edeceğim.
vsz

Bunun nasıl çalıştığını açıklayabilir misiniz? Yazdırılamayan bir karakter olan ASCII 1 çıktısını almalıdır.
nyuszika7h

@ nyuszika7h: Birçok konsol ASCII 1 için bir surat çıktı
vsz

1
Gerçekten mi? Hiç böyle bir konsol görmedim. Eminim bazı belirsiz karakterler kullanırlar.
nyuszika7h

5

2 karakter yenmez, ama:

PHP 11 karakter.

<?=chr(1)?>

Herkes php smiley yerleştirebilirsiniz diyerek ve çıktı :

Komut satırında php.exe ile çalıştırmak Γÿǁve tarayıcıya yerleştirmek verir☺

O mu değil çalışır.


Ayrıca m0nhawk'ın yaptığı HTML yoluna da gidebilirsiniz.
Bay Llama

@GigaWatt Yapamazsınız. PHP kullanarak anlamsızlık veriyor. Denedin mi CLI ve tarayıcıda denedim.
jdstankosky

Benim için iyi çalışıyor. ideone.com/6wYzx9
Bay Llama

Komut satırında php.exe ile çalıştırmak verir Γÿǁve tarayıcıya yerleştirmek verir☺
jdstankosky

2
Dosyanızın onaltılık dökümünü yaparsanız, dosyanın bir suratın unicode temsili olarak kaydedildiğini görürsünüz \xE298BA, değil \x01. \x01İçinde tek bir bayt bulunan bir dosyayı elle oluşturmayı ve PHP ile komut satırından çalıştırmayı deneyin .
Bay Llama

5

DC - 2 karakter

1P

Herhangi bir açıklama gerektirmez.


4

Golfscript, 3 karakter

"☺"

Bir golfscript uzmanı değil, ancak bir tamsayıyı sadece 1 karakter kullanarak karşılık gelen ASCII karakterine dönüştürmenin bir yolu olduğuna inanmıyorum, bu yüzden alabileceği en kısa şey gibi görünüyor


4

PHP (1)

Teknik olarak bu geçerli bir PHP dosyasıdır (bir web sunucusu mutlu bir şekilde sunacaktır).


3

LaTeX (51/77 karakter)

Kısa çözüm

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

İyi çözüm (Derleme latex main.tex):

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

İlki çalışmıyor çünkü saf LaTeX unicode karakterleri okuyamıyor. Gariptir ki, bu ne XeLaTeX'te ne de LuaLaTeX'te çalışmaz, çünkü varsayılan yazı tipi tablosu bu sembolü içermez. Lütfen bunu göz önünde bulundurun: \documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}- ve lütfen “iyi” çözümde kullandığınız oluşturma motorunu (pdfLaTeX) belirtin.
Andreï Kostyrka

2

J (3 karakter)

'☺'

Kod uygun yazı tipi gerektirir.

Wikipedia'ya göre

Wingdings yazı tipinde "J" harfi gülen yüz olarak oluşturulur (bunun Unicode kod noktası U + 263A'dan ☺ olarak farklı olduğunu unutmayın).


Başka bir varyasyon u:1.
FireFly

2

Q / k (9 karakter)

Ne yazık ki 2 yapamam.

-1"\001";

Tercümenin eski bir versiyonunda, diğer gülümseme sembolünü daha az karakterle üreten bir hatayı hatırlıyorum. Bir göz atacağım.

Düzenleme: tuhaflığı buldu. Yalnızca yorumlayıcının Windows sürümlerinde çalışıyor gibi görünüyor:

q)1(1b);
☺


1

Burlesque - 6 Karakter

,1L[sh

Açıklama:

,Stdin çıkar. 1L[birini iter ve char dönüştürmek (kod shnoktasına göre) güzel biçime geçmek için kullanılır. (Aksi takdirde bir satır aralığı yazdırır ').


1

Tcl, 1

Başka şeyler içeren bir ☺ görüntüler.
Bunun PHP veya diğer dillerle de çalıştığı yönünde söylentiler var.




1

05AB1E , 2 karakter

Sadece sıkıcı bir kodlama. CP437'de kodlanmıştır.

"☺

Çevrimiçi deneyin!

05AB1E , 2 bayt

Çevrimiçi deneyin!


Kodlamaları dahil etmek isteyebilirsiniz. En yüksek cevap karakterleri hem içeriyor CP850 veya cp437 gibi bir kodlama sadece 2 bayt ve "onların kod sayfasında. Ancak 05AB1E kodlamasını kullanarak, en üstteki cevap bile mümkün değildir ve UTF-8 kodlamasını kullanmak 4 bayt olacaktır.
Kevin Cruijssen




0

Perl 6 (7 karakter)

say '☺'

Kurallar biraz kabuk istemi karmaşa önlemek için hoş olduğunu varsayarak bükme.


4
Bu boşluk karakterine ihtiyacınız olduğundan emin misiniz?
JB



0

PowerShell , 5 bayt

bir program gülümsemek yüz char çıktı gerekir.

'☺'

Çevrimiçi deneyin!


PowerShell , 7 bayt

bir program karakter kod 1 ile çıktı gerekiyorsa.

[char]1

Çevrimiçi deneyin!


1
Neden sadece '☺'? Bu arada, yüz benim için TIO'da veya konsolda oluşturulmuyor
IT Delinquent

çünkü gülümseme yüzünün kodu Powershell'de 1 değil. Çevrimiçi deneyin!
mazzy

1
Bunun yerine cevabınız '[Char] 9786' olmalı mı? Gerçekten kafam karıştı :-D
IT Delinquent

1
Ha! Haklısın. Kod 1 ile bir karakter çıktı bir program yazmak düşündüm. Ama sen bir gülen yüz çıktı bir program yazma olarak yorumlayabilirsiniz.
mazzy



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.