웃는 얼굴을 인쇄


48

요구 사항

도전을 위해 단위를 정의합시다 .

단위는 얼굴이 그려지는 격자를 구성하는 점 (화면의 픽셀, ASCII 아트의 문자 등)으로 정의됩니다.

얼굴 의 최소 요구 사항 은 다음과 같습니다.

웃는 얼굴은 어떤 반지름의 원과 닮은 모양으로 구성됩니다. 두 눈 각각에 대해 1 개 이상, 입에 대해 2 개 이상 있어야합니다. 눈과 입 모두 얼굴 모양 안에 있어야합니다. 원하는대로 입을 향하게 할 수 있습니다 (행복, 슬픔, 무관심 등).

다음은 출력 예입니다.

 0 0 0    . . .
0 . . 0  . o o .
0 --- 0  . \_/ .
 0 0 0    . . .

목표

물론 주요 목표는 가능한 가장 짧은 코드를 만드는 것이지만 예술 도 중요합니다.

우승자

당첨자는 최소한 다음 5 일 동안의 사용자 투표 수에 따라 선정됩니다.



5
와우, 핫 질문 목록에 8 개의 질문이 있습니다. 우리 사이트는 더 많은 트래픽을 받고 있어야합니다.
Justin

무관심한 얼굴이 행복보다 엄격하게 쉬우 며 때로는 더 어려울까요?
o0 '.

2
이 최소 요구 사항에 적합하지 않기 때문에이 답을 만들려고하지만, 나는 차임 싶어 ... 아니 alt + 1alt + 2☺을 생산하고 ☻ 각각됩니다. 인수를 위해 alt키를 눌러 문자를 고려하고 2자를 호출합니다.
Dryden Long

1
이 스레드는 끝날까요? :)
avall

답변:


108

자바 스크립트, 340

var i=0,b=document.body,d=20,n=b.clientWidth,m=b.clientHeight,f="width=10,height=10,"
var o=new Function("f","i","t",'open("","",f+"left="+i+",top="+t)')
for(j=0;j<m/d;++j,i=j*d){
   u=Math.sqrt(i*(m-i))
   t=m/2+u*(j%2-0.5)*2
   o(f,i,t)
   i>m/5&&i<0.8*m&&j%2&&o(f,i,t-m/4);
   ((i<m/3&&i>m/4)||(i<3*m/4&&i>2*m/3))&&o(f,i,m/3)
}

자바 스크립트, 283

최적화 된 버전 (일부 개선 및 불필요한 공백 없음)

var i=0,b=document.body,d=20,n=b.clientWidth,m=b.clientHeight,f="width=10,height=10,"
function o(i,t){open("","",f+"left="+i+",top="+t)}for(j=0;j<m/d;i=++j*d){u=Math.sqrt(i*(m-i));t=m/2+j%2*2*u-u;o(i,t);i>m/5&&i<0.8*m&&j%2&&o(i,t-m/4);((i<m/3&&i>m/4)||(i<3*m/4&&i>2*m/3))&&o(i,m/3)}

글쎄 .. 어쩌면 당신이 원하는만큼 짧지는 않지만 확실하지는 않습니다. 브라우저가 최대화되면 더 좋아 보입니다. 나는 당신의 질문을 정말로 즐겼습니다! 세부 사항을 늘리려면 d변수를 약간 줄 이십시오.

편집 : 불행히도 jsfiddle에서 실행할 수는 없지만 aby browser의 Javascript 콘솔에 붙여 넣을 수 있습니다. 아, 그리고 페이지에서 팝업을 활성화하십시오 :).

edit2 : 새 html 파일을 만들어서 코드를 붙여 넣을 수 있습니다.

<body>
<script>
var i=0,b=document.body,d=20,n=b.clientWidth,m=b.clientHeight,f="width=10,height=10,"
var o=new Function("f","i","t",'open("","",f+"left="+i+",top="+t)')
for(j=0;j<m/d;++j,i=j*d){
   u=Math.sqrt(i*(m-i))
   t=m/2+u*(j%2-0.5)*2
   o(f,i,t)
   i>m/5&&i<0.8*m&&j%2&&o(f,i,t-m/4);
   ((i<m/3&&i>m/4)||(i<3*m/4&&i>2*m/3))&&o(f,i,m/3)
}
</script>
</body>

그런 다음 실행해도 아무 일도 일어나지 않으면 팝업 창을 활성화하고 페이지를 다시로드하십시오. 또 붙여 넣기 스크린 샷


23
유대의 Bwian의 이름으로, 이것은 무엇입니까?
nitro2k01

2
이제 작동합니다. 모든 팝업을 닫으려면 약 2m가
걸렸

7
성가신 팝업을 비활성화하는 데 많은 시간을 소비 한 후 활성화하는 것은 어렵습니다. adBLock을 비활성화하고 브라우저에서 모든 팝업을 허용했습니다. 얼굴 절반이 나타나면 차단기가 다시 켜집니다!
자선 레친 스키

4
놀라운 기본 아이디어! 나는 이런 식으로 생각하지 않을 것입니다.
Gari BN

4
정말 독창적입니다!
Oberon

66

HTML, (200) 141 자

avail 덕분에 이것을 141 자로였습니다 .

<fieldset><legend>\\\\\\\\\\\\ ////</legend><center><input size=1 value=o> <input size=1 value=o /><br><input type=radio><br><button>........

원본 HTML은 다음과 같습니다.

<fieldset>
<legend>\\\\\\\\\\\\ ////</legend>
<center><input type=text size=1 value=o />
<input type=text size=1 value=o /><br/>
<input type=radio /><br/>
<button>........</button></center></fieldset>

작은 화면에서 가장 잘 작동합니다 :

:-|


4
이것은 예술입니다 : P
구두

3
대부분의 태그를 닫을 필요는 없으며 (대부분의 브라우저에서 처리 함) 입력 유형을 정의 할 필요가 없으며 (텍스트가 기본값 임) <br> (html5)를 닫지 않아도됩니다. 여기에 :) 150 문자로 최적화 된 코드는 다음과 같습니다 jsfiddle.net/avall/TdPkF
avall

@avall Excellent, thanks :-)
으스스한 ossifrage

158 자이며 이제 머리카락을 중앙에 배치하여 모든 화면에서보기에 좋습니다. jsfiddle.net/TdPkF/5
AverageMarcus

1
@squeamishossifrage 머리카락을 3 개를 제외한 나머지를 모두 제거해야합니다. 그러면 호머 심슨이됩니다!
mbomb007

55

Brainfuck : 583 자 (공백 제외)

 >>------>->->+++++>->->---->>>>------>>>>
 >>>>---->->------->>->->->---->>-------->
 ->->------>>>>>>>>>>-->---->>-->---->>->
  -->>>------>>>>>>>>->---->---->>->->->-
  >>->---->---->>++++[-<++++>]<[-<++++
  ++<++++++++<+++<++<++++++<++++++<++++++
 <++++++<++<++++++<++++++++<+++<++<++<++<++
<++<++<++<+<++<++++<++++++++<+++<++<+++<+++
<++<++++++   <++++++++<++++<    ++<++<++<++
<++<++<++<++<+<+++<++++++<+++<++<++++++<+++
+++<++++++<+++<++<++  +<++++++<++++++<++<++
 <++<++<++<++<++<+<++<++<++<++++++<++++++
  <++++++<+++++<++++++<+++<+>>>>>>>>>>>>
    >>>>>>                       >>>>>
     >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
          >>>>>>>>>>>>>>>]<[.<]

산출:

\|/ ____ \|/       
 @~/ ,. \~@        
/_( \__/ )_\       
   \__U_/

11
원래 코드는 얼굴처럼 보입니다 (실제로 노력하면 ...). 코드를 만들고 얼굴을 출력하는 것이 얼마나 어려운지 궁금합니다.
w4etwetewtwet

1
@handuel 둘 다 얼굴이지만 다릅니다. 코드와 출력이 quine과 동일하다는 것을 의미 했습니까? 할 수 있다고 확신합니다.
Sylwester

방금 코드가 얼굴처럼 보이도록 의도했지만 의도적이지 않았다.
w4etwetewtwet

1
Brainfuck에서 제어 문자가 아닌 모든 것은 주석입니다. 그렇기 때문에 소스 코드를 웃는 것처럼 보이게 만들 수 있습니다.
Emil Vikström

39

SVG

<svg xmlns="http://www.w3.org/2000/svg">
    <defs>
        <radialGradient id="f" fx="25%" fy="25%" r="60%">
            <stop offset="0" stop-color="#fff"/>
            <stop offset="0.6" stop-color="#ff0"/>
            <stop offset="1" stop-color="#f80"/>
        </radialGradient>
    </defs>
    <circle fill="url(#f)" stroke="#000" stroke-width="2" cx="100" cy="100" r="90"/>
    <ellipse cx="70" cy="70" rx="10" ry="20"/>
    <ellipse cx="130" cy="70" rx="10" ry="20"/>
    <path fill="none" stroke="#000" stroke-width="5" d="M 40 120 S 100 200 160 120"/>
</svg>

다음과 같이 렌더링합니다 :

스마일리


무한대?
user80551

6
올바른 작업에 적합한 도구입니다.
Alpha

나는 SVG 정말 프로그래밍 언어입니다 언급하지 않았다
올리버 니켈

@Oliver HTML만큼이나 프로그래밍 언어입니다 ... (그렇지 않습니다).
mbomb007

37

루비, 224

더글러스 아담스가 무서울 것입니다. :-피

w=?$;"^XA[_AXeMFGIAHJLjKNAEFEJJNHQHNKLAEMINJOJOHLAGKHOJOJ[AG[HQHRFJAH}IH
IGGwIIAHHGwKHAHGHrEUAGQFiGVAGQGfIPAFHKHHbJHAQII]MGASHNSOHATIdIAUJJRLIAWLIQGK
ZOFUA]ZAeSAiPAjOAkL".codepoints{|r|r-=68;$><<(r<0??\n:(w=w==?$?' ':?$)*r)}

산출:

                          $$$$$$$$$$$$$$$$$$$$
                       $$$$$$$$$$$$$$$$$$$$$$$$$$$
                    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$         $$   $$$$$
    $$$$$$        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       $$$$$$$$$$
 $$ $$$$$$      $$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$       $$$$$$$$
 $$$$$$$$$     $$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$    $$$$$$$$
   $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$
   $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  $$$$$$
    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$
     $$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$$
    $$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       $$$$
    $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$
   $$$$$$$$$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   $$$$$$$$$$$$$$$$$$
   $$$$$$$$$$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$$$$$$$$$
  $$$$       $$$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$      $$$$
             $$$$$     $$$$$$$$$$$$$$$$$$$$$$$$$         $$$
               $$$$          $$$$$$$$$$$$$$$           $$$$
                $$$$$                                $$$$$
                 $$$$$$      $$$$$$$$$$$$$$        $$$$$
                   $$$$$$$$     $$$$$$$$$$$$$   $$$$$$$
                      $$$$$$$$$$$  $$$$$$$$$$$$$$$$$
                         $$$$$$$$$$$$$$$$$$$$$$
                                 $$$$$$$$$$$$$$$
                                     $$$$$$$$$$$$
                                      $$$$$$$$$$$
                                       $$$$$$$$

루비, 110

같은 기술. 적은 코드. 덜 교묘 한. 누군가 플라스틱 미소를 녹인 것처럼 보입니다. :-}

w=?$;"TXANdAKQGZAHSI[AGaGRAFaIRAFPGeAGQJ_AHURQAJkANc
TX".codepoints{|r|r-=68;$><<(r<0??\n:(w=w==?$?' ':?$)*r)}

산출:

                $$$$$$$$$$$$$$$$$$$$
          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       $$$$$$$$$$$$$   $$$$$$$$$$$$$$$$$$$$$$
    $$$$$$$$$$$$$$$     $$$$$$$$$$$$$$$$$$$$$$$
   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$   $$$$$$$$$$$$$$
  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$$$$$$$$$$$
  $$$$$$$$$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
   $$$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$
    $$$$$$$$$$$$$$$$$              $$$$$$$$$$$$$
      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                $$$$$$$$$$$$$$$$$$$$

두 번째 예는 중요합니까? 얼굴 주위에 원이 없습니다.
Kevin-Reinstate Monica

1
@ 케빈, 좋은 지적. 수정되었습니다.
Darren Stone

24

Q 기본 ASCII, 134 (최적화되지 않음)

SCREEN 1
PRINT CHR$(1)
FOR i = 0 TO 64
  x = i \ 8
  y = i MOD 8
  LOCATE y + 2, x + 1
  IF POINT(x, y) THEN PRINT "X"
NEXT

이 답변은 스마일로 ASCII 문자 1을 사용하여 완전히 속임수입니다. 그러나 BF 및 "일반 텍스트"답변과 달리 실제로 문자를 전체 솔루션으로 일반 인쇄하는 대신 스마일 문자의 픽셀을 기반으로 ASCII 아트를 만들어 규칙을 따릅니다. 최적화되지 않은 버전은 QBasic의 IDE가 파일을 저장하는 방법을 나타냅니다. IDE는 "유용하게"구문을 수정하고 "필요한"곳에 많은 공백을 추가합니다.

산출: Q 기본 ASCII 스마일 최적화되지 않은

Q 기본 ASCII, 80 (최적화)

SCREEN 1
?"☺"
FOR i=0TO 64
x=i\8
y=i MOD 8
LOCATE y+2,x+1
?CHR$(POINT(x,y))
NEXT

이것은 QBasic에서 여전히로드되는 첫 번째 코드 샘플의 최적화 된 버전입니다. 수행 된 사항 :

  • 불필요한 공백을 모두 제거했습니다. (디!)
  • CRLF 줄 바꿈을 LF로만 변경했습니다.
  • CHR$(1)실제 문자를 포함하는 문자열 로 대체 되었습니다. (여기에 일치하는 유니 코드 문자로 표시되어 있습니다. 실제로 코드를 사용하려면 16 진 편집기를 사용하여 실제 ASCII 문자 1로 바꾸십시오.)
  • 대체 PRINT?베이직 전통을 허용으로.
  • IF소스 픽셀 값을 기준으로 문자를 인쇄하는 라인으로 라인을 대체했습니다 . 0 또는 3입니다. 0은 검은 색입니다. 문자 0은 공백처럼 취급되는 널 문자를 인쇄합니다. 3은 CGA의 4 색 팔레트에서 흰색을 나타냅니다. ASCII 문자 3은 마음입니다.

산출: Q 기본 ASCII 스마일 최적화

Q 기본 그래픽, 83 (공백 최적화)

SCREEN 1
CIRCLE(50,50),50
CIRCLE(50,50),30,,4,5.4
CIRCLE(30,40),10
CIRCLE(70,40),10

QBasic의 내장 그래픽 명령 만 사용할 수 있습니까? 물론, 언어의 상세 성 때문에 실제로 바이트를 절약하지는 못합니다. 그러나 주어진 두 각도 사이에 원호 만 그릴 수있는 내장 기능이 있습니다. 각도는 라디안으로 제공하고 있습니다 45.4원호 대칭 중심에 근접 π*3/2하거나 가입 한 경우 좋은면을 , τ*3/4.

산출: Q 기본 그래픽 스마일 최적화

참고 :이 답변의 크기는 파일의 크기를 바이트 단위로 나타냅니다.


나는 여전히 읽을 수 있습니다 여기에 젊은 사람이 될 수 있다고 생각 QBASIC ... :) 멋진 일
apnorton

12

APL, 97 자 / 바이트 *

(63⍴1 0)\' /%'[1+(12≥⊃+/¨2*⍨m+¨⊂6 ¯6)+((⍉18<(⍴n)⍴⍳32)∧28≥|100-n)+256≥n←⊃+/¨2*⍨m←x∘.,|x←¯16.5+⍳32]

몇 개의 원 방정식을 계산하여 작동합니다. GNU APL 에서 테스트되었습니다 .

출력 웃는 출력 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ * : APL 기호를 상위 128 바이트 값에 매핑하는 자체 (레거시) 단일 바이트 문자 집합으로
APL을 쓸 수 있습니다. 따라서 스코어링을 위해 ASCII 문자와 APL 기호 만 사용하는 N 문자 프로그램은 N 바이트 길이로 간주 될 수 있습니다.


11

배쉬, 63 문자

echo $'$the_cow=""'>.cow;cowsay -f ./.cow $'O O\n\n\_/';rm .cow

산출:

 _____
/ O O \
|     |
\ \_/ /
 -----

예술적 기교:

소.


9

배쉬, 22 자

wget x.co/3WG0m -q -O-

샘플 출력 : 여기에 이미지 설명을 입력하십시오

편집 : 이것은 여러 사람들이 제안한대로 더 골프화 될 수 있습니다. 지금까지 발견 된 가장 짧은 자체 포함 버전은 다음과 같습니다.

curl -L x.co/3WG0m

(감사 nitro2k01)


2
에 최적화 될 수 있습니다 curl -L x.co/3WG0m. 데이터를 직접 반환하는 로컬의 한 문자 호스트 이름이 있으면 더욱 최적화 할 수 있습니다 ( -L리디렉션을 따르는 데 필요한 스위치 제거 )
nitro2k01

4
pastebin에 스마일리를 게시하고 wget을 사용하여 다운로드하는 데 어려움이 있습니까?
s3lph

@the_Seppi : 그것은 정확히 농담입니다. 이 제품은 상자 밖에서 생각할 수있는 솔루션으로 고안되었습니다.
Riot

1
루트 네임 서버에 접근 할 수있는 사람을 찾아 Z파일을 호스팅하는 서버에 해당 도메인을 추가하도록 설득 해야합니다.
marinus

1
아름다운, 이것은 내가 제일 좋아하는 :)
jcora

9

파이썬 247 230 227 문자 - 그리고 귀엽 버전

from matplotlib.pyplot import*
from numpy import*
y=x=arange(-8,11,.1)
x,y=meshgrid(x,y)
contour(x,y,(x*x*(x**2+2*y*y-y-40)+y*y*(y*y-y-40)+25*y+393)*((x+3)**2+(y-5)**2-2)*((x-3)**2+(y-5)**2-2)*(x*x+(y-2)**2-64),[0])
show()

여기에 이미지 설명을 입력하십시오

Python 243 문자-색상 사용

from pylab import*
from numpy import*
y=x=arange(-9,11,.1)
x,y=meshgrid(x,y)
contourf(x,y,(x*x*(x**2+2*y*y-y-40)+y*y*(y*y-y-40)+25*y+393)*((x+3)**2+(y-5)**2-2)*((x-3)**2+(y-5)**2-2)*(x*x+(y-2)**2-64),1,colors=("#F0E68C",'#20B2AA'))
show()

여기에 이미지 설명을 입력하십시오


8

C ++-불필요한 공백없이 122 자

이것은 내가 생각해 낼 수있는 가장 현실적입니다.

#include <iostream>

int main() {
  std::cout << "  |||||\n 0 . . 0\n0   ^   0\n0  \\_/  0\n 0     0\n  00000\n   888\n    8\n\n";
}

누락 된 사람들을 위해 다음과 같이 생성됩니다.

ASCII 아트 이미지


2
return 0;는 C : ISO C ++에서 필요하지 않습니다 :)
Shoe

감사. 그것은 미래의 퍼즐에서 캐릭터를 자르는 데 도움이 될 것입니다.
Hosch250

6
cowsay -f calvin Hey, What´s up?
 _________________
< Hey, What´s up? >
 -----------------
 \                   .,
   \         .      .TR   d'
     \      k,l    .R.b  .t .Je
       \   .P q.   a|.b .f .Z%      
           .b .h  .E` # J: 2`     .
      .,.a .E  ,L.M'  ?:b `| ..J9!`.,
       q,.h.M`   `..,   ..,""` ..2"`
       .M, J8`   `:       `   3;
   .    Jk              ...,   `^7"90c.
    j,  ,!     .7"'`j,.|   .n.   ...
   j, 7'     .r`     4:      L   `...
  ..,m.      J`    ..,|..    J`  7TWi
  ..JJ,.:    %    oo      ,. ....,
    .,E      3     7`g.M:    P  41
   JT7"'      O.   .J,;     ``  V"7N.
   G.           ""Q+  .Zu.,!`      Z`
   .9.. .         J&..J!       .  ,:
      7"9a                    JM"!
         .5J.     ..        ..F`
            78a..   `    ..2'
                J9Ksaw0"'
               .EJ?A...a.
               q...g...gi
              .m...qa..,y:
              .HQFNB&...mm
               ,Z|,m.a.,dp
            .,?f` ,E?:"^7b
            `A| . .F^^7'^4,
             .MMMMMMMMMMMQzna,
         ...f"A.JdT     J:    Jp,
          `JNa..........A....af`
               `^^^^^'`

5

PHP, 기타 여러 언어 ...-1601 자

                          oooo$$$$$$$$$$$$oooo
                      oo$$$$$$$$$$$$$$$$$$$$$$$$o
                   oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o         o$   $$ o$
   o $ oo        o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o       $$ $$ $$o$
oo $ $ "$      o$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$o       $$$o$$o$
"$$$$$$o$     o$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$o    $$$$$$$$
  $$$$$$$    $$$$$$$$$$$      $$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$
  $$$$$$$$$$$$$$$$$$$$$$$    $$$$$$$$$$$$$    $$$$$$$$$$$$$$  """$$$
   "$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$
    $$$   o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     "$$$o
   o$$"   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       $$$o
   $$$    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o
  o$$$oooo$$$$$  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$   o$$$$$$$$$$$$$$$$$
  $$$$$$$$"$$$$   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$     $$$$""""""""
 """"       $$$$    "$$$$$$$$$$$$$$$$$$$$$$$$$$$$"      o$$$
            "$$$o     """$$$$$$$$$$$$$$$$$$"$$"         $$$
              $$$o          "$$""$$$$$$""""           o$$$
               $$$$o                                o$$$"
                "$$$$o      o$$$$$$o"$$$$o        o$$$$
                  "$$$$$oo     ""$$$$o$$$$$o   o$$$$""
                     ""$$$$$oooo  "$$$o$$$$$$$$$"""
                        ""$$$$$$$oo $$$$$$$$$$
                                """"$$$$$$$$$$$
                                    $$$$$$$$$$$$
                                     $$$$$$$$$$"
                                      "$$$""  

스마일리 소스 : Asciiworld.com : 스마일리


4

html, CSS

짧거나 실제 코딩이 아니라는 것을 알고 있지만 여전히 이것을 게시하고 싶었습니다.

<head>
<style>

#a{
width:100px;
height:100px;
border-radius:50px;
border: 1px solid black; 
}
#b{
position: absolute;
top:30px;
left:30px;
width:20px;
height:20px;
border-radius:10px;
border: 1px solid black;
}
#c{
position: absolute;
top:0px;
left:40px;
width:20px;
height:20px;
border-radius:10px;
border: 1px solid black;
}#d{
position: absolute;
top:30px;
left:-30px;
width:40px;
height:20px;
border-radius:10px;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="a">
<div id="b"/>
<div id="c"/>
<div id="d"/>
</div>
</body>

jsFiddle


아마 더 좋아 보일 것입니다 #d{border-radius:20px/10px;}. 또는 #d{border-radius:0 0 20px 20px/0 0 10px 10px;}. 또는 #d{height:10px;border-radius:0 0 20px 20px/0 0 10px 10px;margin-top:10px;}.
manatwork

4

레브 무 24 자

아, 최소한의 인류. :-) 최소한의 인상적인 Rebmu 프로그램으로 , 프로그래밍 세계에서 파란 알약에 대한 찬사로 의도적으로 pHp를 포함시킵니다 .

H{ -- }pHp{|..|^/|\/|}pH

실행:

>> rebmu [H{ -- }pHp{|..|^/|\/|}pH]
 -- 
|..|
|\/|
 -- 

설명

Rebmu는 Rebol의 방언 일뿐 입니다. 구문 분석 제한 조건을 상속하고 대문자로 실행하여 공백없이 약어를 사용합니다. 첫 실행이 자본화되거나 자본화되지 않은 경우 특별한 대우를받습니다.

(그래서보다는 같은 용어 분리 AbcDefGhi는 차이를 사용할 수 있습니다 사이 ABCdefGHIabcDEFghi실행 시작하는 모든 대문자에서 첫 번째 항은 "설정 단어를!", 종종 문맥 욕망으로 해석 나타낸다 있도록 분리되어 정보를 제공합니다. 시퀀스의 비트를 짜내 과제 는 비디오 참조 )

이것을 네이티브 Rebol로 번역하려면 실제로 H가 아닌 대문자 H로 시작하는 것과 같은 것을 받아 들여야 h:합니다 h. 따라서 소스는 다음과 유사합니다.

h: { -- }
print h
print {|..|^/|\/|}
print h

문자열 --을 h에 할당합니다 (비대칭 문자열 구분 기호를 사용하여print {"Isn't it nice," said {Dr. Rebmu}, "when you have asymmetric multi-line string delimiters with no need for escaping matched nested pairs, and that accept apostrophes and quotes too?"}

h를 한 번 인쇄하고, ^/개행에 대한 이스케이프 시퀀스 인 다른 문자열을 인쇄합니다 (카트는 경로에 자주 나타나는 백 슬래시보다 소프트웨어에서 덜 사용됨) . h를 다시 인쇄합니다.


4

자바 스크립트 (262) (251)

편집 : 더 나은 눈을 추가했습니다.

웃는 얼굴을 콘솔에 인쇄합니다.

비트 마스크를 더 단순하게하고 얼굴을 덜 예쁘게 만들기 위해 문자를 많이 잃을 수도 있고, 문자 간격을 설명하기 위해 타원 대신 원 방정식을 사용할 수도 있습니다. 그러나 그것은 정신이 아닙니다.

당신은 변경할 수 있습니다 r크기를 변경하고 더 많거나 적은 세부 얼굴을 얻기 위해 변수를; 숫자 >=7 && <=99가 적 으면 좋은 결과를 얻을 수 있으며 글자 수 제한을 유지합니다.

function c(e,t,n){return t/2*Math.sqrt(1-e*e/(n*n))+.5|0}r=42;p=r/2;q=p/5;s="";for(y=-p;++y<p;){for(x=-r;++x<r;){d=c(y,r*2,p);e=c(y+q,r/5,q);f=e-p;g=e+p;h=c(y,r*1.3,r/3);s+=x>=d||x<=-d||x>=-g&&x<f||x<=g&&x>-f||y>q&&x>-h&&x<h?" ":0}s+="\n"}console.log(s)

인간이 읽을 수있는 내용 :

function c(y,w,h){return w/2*Math.sqrt(1-y*y/(h*h))+0.5|0}
r = 42
p = r/2
q = p/5
s = ''
for (y = -p; ++y < p;) {
  for (x = -r; ++x < r;) {
    d = c(y,r*2,p)
    e = c(y+q,r/5,q)
    f = e - p
    g = e + p
    h = c(y,r*1.3,r/3)
    s+=(x>=d||x<=-d||(x>-g&&x<f)||(x<g&&x>-f)||(y>q&&(x>-h&&x<h)))?' ':0
  }
  s += '\n'
}
console.log(s)

산출:

콘솔에 웃는

내 첫 골프 게임은 약간의 개선이 될 것입니다.


4

펄, 106 자

Perl oneliner는 Perl Acme::EyeDrops모듈이 이미 기계에 설치되어 있다면 명령 프롬프트에서 C & P하면됩니다 .

touch temp && perl -MAcme::EyeDrops='sightly' -e 'print sightly({Shape=>"smiley", SourceFile => "temp" } );'

여기에 이미지 설명을 입력하십시오

또 다른 방법은 웃는 얼굴로

     touch temp && perl -MAcme::EyeDrops='sightly' -e 'print sightly({Shape=>"smiley2",SourceFile=>"temp"});'

여기에 이미지 설명을 입력하십시오

또 다른 방법, 웃는 얼굴을 거꾸로 당기는

 touch temp && perl -MAcme::EyeDrops='sightly' -e 'print sightly({Shape=>"smiley2",SourceFile=>"temp",RotateFlip=>'true',Rotate=>'180'});'

여기에 이미지 설명을 입력하십시오


4

배쉬 + ImageMagick : 137 자

c=circle
convert -size 99x99 xc: -draw "fill #ff0 $c 49,49,49" -fill 0 -draw "$c 30,35,30,30 $c 70,35,70,30 ellipse 50,60,25,20,0,180" x:

샘플 출력 :

그래픽 스마일

그러나 이것이 도전 이므로 …

배쉬 + ImageMagick : 172 자

d=-draw
p=-pointsize
convert -size 99x99 xc: -font times.ttf $p 140 -stroke 0 -fill \#ff0 $d 'text 0,96 O' $p 40 $d 'text 25,50 "o 0"' $p 50 $d 'rotate 95 text 50,-40 D' x:

샘플 출력 :

ASCII 스마일


3

골프 스크립트, 27

주어진대로 정확하게 두 번째 예를 출력합니다.

' .'3*.'
. o o .
. \_/ .
'\

첫 번째 방법은 같은 방법으로 수행 할 수 있지만 두 번째 방법은 더 좋아 보인다고 생각합니다. :)


2

Brainf ***-2

+.

인쇄 또는 ASCII 값 1 (일부 플랫폼에서는 작동하지 않을 수 있음)


Nitpick : ASCII 1은 인쇄 할 수없는 문자 인 SOH입니다. 그 스마일리는 U + 263A 또는 CP437에서 1이며 아마도 당신이 사용하고있는 것입니다. 불행히도, 당신의 출력은 눈과 입에 충분한 "단위"를 사용하는 조건에 실패합니다.
Christopher Creutzig

2
@ChristopherCreutzig 그것은 그 조건에 실패하지 않습니다. 각 눈은 1 픽셀 정도이므로 입이 두 배 이상 큽니다.
Justin

특급. "ASCII ART"는 두 부분으로 구성됩니다. 나는 여기의도를 참조
s3lph

2

배쉬-하나의 라이너 : 442 자

c(){ e "define a(i){scale=scale(i);return(sqrt(i*i));};""$@"|bc -l;};e(){ echo "$@";};s(){ h=$1;c=$2;if [ -z $c ];then c=" ";fi;while (($((h=h-1))>0));do e -n "$c"; done; };m(){ t=`c 2*$1`;while (($((t=t-1))));do l=`c a\($1-$t\)+1`;s $l;q=`c 2*\($1-$l\)`;w=`s $q`;if (($l>$t&&$l<($t+3)&&$q>2)); then w=" "`s $((q-2)) 0`" ";elif (($t>($1+1)&&$q>3));then g=`s $(((q-1)/2)) 0`;w=" $g $g ";fi;e -n +;if [ ! -z "$w" ];then e -n "$w+";fi;e;done;};

출력 예 : (로 호출 m 8)

       +
      + +
     +   +
    + 0 0 +
   + 00 00 +
  + 000 000 +
 +           +
+             +
 +           +
  +         +
   +       +
    + 000 +
     +   +
      + +
       +

미쳤지 만 원 대신 다이아몬드를 사용하기로 결정했습니다. 눈은 안전 고글로 덮여 있습니다.

BASH-252 자 (감사 @manatwork)

s(){ (($1>1))&&echo -n "${2:- }"&&s $[$1-1] $2;};m(){ ((t=2*$1));while ((t=t-1));do v=$[$1-t];l=$[${v#-}+1];s $l;q=$[2*($1-l)];w=`s $q`;((l>t&&l<t+3&&q>2))&&w=" `s $[q-2] 0` ";((t>$1+1&&q>3))&&{ g=`s $[(q-1)/2] 0`;w=" $g $g ";};echo "+${w:+$w+}";done;}

1
시원한. 그 모양으로 내 gravatar 이미지를 대체 할 수 있습니다. :) 252 자로 줄일 수 있습니다 s(){ (($1>1))&&echo -n "${2:- }"&&s $[$1-1] $2;};m(){ ((t=2*$1));while ((t=t-1));do v=$[$1-t];l=$[${v#-}+1];s $l;q=$[2*($1-l)];w=`s $q`;((l>t&&l<t+3&&q>2))&&w=" `s $[q-2] 0` ";((t>$1+1&&q>3))&&{ g=`s $[(q-1)/2] 0`;w=" $g $g ";};echo "+${w:+$w+}";done;}. 또는 m 함수를 포기하고 코드를 스크립트 파일에 넣으면 245입니다. 아마도 계산을 조정하여 더 많이 줄일 수 있지만 지금은 시간이 없습니다.
manatwork

2

HTML + CSS, 83

<div><a>o<a>o</a><hr><hr><style>a,div{width:2em;border:2px solid;border-radius:8px

스크린 샷 (firefox 사용) : 여기에 이미지 설명을 입력하십시오

내 대답에 너무 늦어서 너무 나쁘다.


좀 더 그것을 좋아 border-radius:50%하고 단일 <hr>: dabblet.com/gist/8472397
manatwork

@manatwork 또는 이와 유사한 것 : jsfiddle.net/T9BdL/1
Tim Seguine

1
@TimSeguine은 문자 그대로의 공백이 아닌 문자를 사용하는 것보다 짧습니다 &nbsp;. jsfiddle.net/T9BdL/2
manatwork

1
얼굴을 겹치는 눈은 규칙에 위배된다고 생각합니다. 그것이 내가 현재처럼 그렇게 한 이유입니다. 또한 그것은 남쪽 공원에있는 캐나다 사람 얼굴을 생각 나게한다.
Leo Pflug 2012 년

2
실제로 골프는 아니지만 요청에 따라 CSS 전용 버전 : jsfiddle.net/T9BdL/9
Tim Seguine

1

골프 스크립트, 18

이 프로그램은 텍스트 편집기에서 이상한 / 잘못된 문자로 나타나는 이진 인코딩 값을 사용합니다.

다음은 16 진수 덤프입니다.

00000000  27 c1 94 80 a2 9c c1 27  7b 32 62 61 73 65 20 70  |'......'{2base p|
00000010  7d 25                                             |}%|

참고 : UTF-8 로켈에서는 작동하지 않지만 예를 들어 ISO-8859-1에서 잘 작동합니다.

이스케이프 문자가있는 확장 버전 :

"\xc1\x94\x80\xa2\x9c\xc1"{2base p}%

산출:

[1 1 0 0 0 0 0 1]
[1 0 0 1 0 1 0 0]
[1 0 0 0 0 0 0 0]
[1 0 1 0 0 0 1 0]
[1 0 0 1 1 1 0 0]
[1 1 0 0 0 0 0 1]

더 나은 출력을 {2base{38+}%n}위해 이진 버전을 23 바이트로 가져 오는 블록으로 바꿀 수 있습니다 . 확장 버전 :

"\xc1\x94\x80\xa2\x9c\xc1"{2base{38+}%n}%

산출:

''&&&&&'
'&&'&'&&
'&&&&&&&
'&'&&&'&
'&&'''&&
''&&&&&'

1

자바 스크립트

이 코드는 f12이 페이지 에서 실행해야합니다 .

console.log(document.getElementsByTagName("code")[0].innerHTML)

산출:

 0 0 0    . . .
0 . . 0  . o o .
0 --- 0  . \_/ .
 0 0 0    . . .

1

CJam, 18

짧은 코드를 사용하기로 결정했습니다 . 여기에서 시도하십시오 .

" ##O#- #"2/{_(N}%

설명

" ##O#- #"      "Push a string onto the stack";
2/              "Split it into an array of two-character groups";
{_(N}%          "For each item in the array, execute _(N : duplicate the element,
                 remove the first character and place it onto the stack after what's left,
                 and push a new line.";

이것은 내가 디자인 한 웃는 얼굴의 대칭을 이용합니다.

산출

 ## 
#OO#
#--#
 ## 

1
이 얼굴은 웃지 않고;).
Optimizer

그것은보다 미소에 더 가까이 @Optimizer 때문에이 대칭을 사용했습니다 어떻게 ..., 당신은 여기에 미소를 가질 수 없습니다.

사용 uu당신이 미소의 "고양이"종류려고하는 경우에 미소를위한 것은 ... 옵션입니다
mbomb007

1

파이썬

smileyFace = '''
       000000000000000
      00000000000000000
     000000   00   00000
    0000000 . 00 . 000000
   00000000   00   0000000
  0000000000000000000000000
 000000 . 00000000 . 0000000
  000000 . 000000 . 0000000
   0000000 ....... 0000000
    000000000000000000000
     0000000000000000000
      00000000000000000'''
print(smileyFace)

print('  _________\n /         \\\n |  /\\ /\\  |\n |    -    |\n |  \\___/  |\n \\_________/');

산출:

  _________
 /         \
 |  /\ /\  |
 |    -    |
 |  \___/  |
 \_________/

두 번째 예는 원이 없습니다
Jasen

@Jasen 나는 그것을 고쳤다.
Oliver Ni



0

쉘 명령 또는 내장

$ echo -e ' ,---.\n/ o o \\\n\ \\_/ /\n `---´'
 ,---.
/ o o \
\ \_/ /
 `---´
$ printf ' ,---.\n/ o o \\\n\ \\_/ /\n `---´\n'
 ,---.
/ o o \
\ \_/ /
 `---´

셸이나 명령 세트의 풍미에 따라 echo제어 문자를 사용하거나 이해하지 못할 수도 있습니다 -e... (... 그리고 Vroomfondel 일 수도 있고 아닐 수도 있습니다!) 실패, 사용 printf은 안전한 내기이어야합니다 ...


0

C 178 자 :

소스 (공백 추가-에서 제외하고 모두 제거 가능) int x

int x,y;
c(a,b,r)
{
  return  (x-a)*(x-a) + (y-b)*(y-b) < r*r;
}

main()
{
  for(x=9;x>=-9;--x)
  {
     for(y=-9;y<=9;++y)
       putchar(32<<(
         c(0,0,10)&&!(c(4,4,2)|c(4,-4,2)|c(3,0,8)&!c(7,0,10))
       ));
     putchar(10);}
 }

산출:

     @@@@@@@@@
    @@@@@@@@@@@
  @@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@
 @@@   @@@@@   @@@
@@@@   @@@@@   @@@@
@@@@   @@@@@   @@@@
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
@@@ @@@@@@@@@@@ @@@
@@@  @@@@@@@@@  @@@
@@@@           @@@@
@@@@@@       @@@@@@
 @@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@
    @@@@@@@@@@@
     @@@@@@@@@
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.