พิมพ์หน้ายิ้ม


48

ความต้องการ

เพื่อความท้าทายลองกำหนดหน่วย :

หน่วยถูกกำหนดให้เป็นจุดใด ๆ ที่ประกอบตารางที่วาดใบหน้า (พิกเซลสำหรับหน้าจออักขระสำหรับศิลปะ ASCII ฯลฯ )

ความต้องการน้อยที่สุดสำหรับใบหน้าที่มี:

ใบหน้าที่ยิ้มนั้นประกอบด้วยรูปร่างที่มีลักษณะคล้ายกับวงกลม (ไม่จำเป็นต้องสมบูรณ์แบบ) ในรัศมีใด ๆ จะต้องมีอย่างน้อย 1 หน่วยสำหรับดวงตาทั้งสองข้างและอย่างน้อย 2 หน่วยสำหรับปาก ดวงตาและปากควรอยู่ในรูปหน้า ปากสามารถปรับได้ตามที่คุณต้องการ (มีความสุขเศร้าไม่แยแส ฯลฯ )

นี่คือตัวอย่างของผลลัพธ์:

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

เป้าหมาย

แน่นอนว่าเป้าหมายหลักคือการสร้างรหัสที่สั้นที่สุดเท่าที่จะเป็นไปได้ แต่ศิลปะก็สำคัญเช่นกัน

ผู้ชนะ

ผู้ชนะจะถูกเลือกตามจำนวนคะแนนโหวตจากผู้ใช้อย่างน้อย 5 วันถัดไป



5
ว้าวคำถาม 8 ข้อในรายการคำถามยอดนิยม เว็บไซต์ของเราควรได้รับปริมาณการใช้ข้อมูลมากขึ้น
Justin

ใบหน้าที่เฉยเมยไม่ง่ายกว่าความสุขอย่างแน่นอนและบางครั้งก็ยากขึ้น
o0 '

2
จะไม่ตอบคำถามนี้เพราะมันไม่ตรงกับความต้องการขั้นต่ำ แต่ฉันต้องการที่จะพูดสอดใน ... alt + 1และalt + 2จะสร้าง☺และ☻ตามลำดับ เพื่อเหตุผลของการโต้เถียงฉันจะพิจารณาaltปุ่มกดตัวอักษรและเรียกว่า 2 ตัวอักษร
Dryden Long

1
หัวข้อนี้จะสิ้นสุดหรือไม่ :)
Avall

คำตอบ:


108

Javascript, 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)
}

Javascript, 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 ได้แต่คุณสามารถวางลงในคอนโซล Javascript ในเบราว์เซอร์ aby โอ้แล้วเปิดการใช้งานป๊อปอัปในหน้า :)

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 of Judea นี่คืออะไร ...
nitro2k01

2
ตอนนี้มันใช้งานได้ เอาฉันไปประมาณ 2
นาที

7
หลังจากใช้เวลานานมากในการพยายามปิดการใช้งานป๊อปอัปที่น่ารำคาญ ฉันปิดการใช้งาน adBLock และอนุญาตป๊อปอัปทั้งหมดในเบราว์เซอร์ของฉัน ... หลังจากครึ่งหน้าปรากฏขึ้นก็ตัดสินใจเปิดตัวป้องกันอีกครั้ง!
การกุศล Leschinski

4
ความคิดนอกกรอบที่น่าทึ่ง! ฉันไม่เคยคิดที่จะทำอะไรแบบนี้
Gari BN

4
นั่นเป็นต้นฉบับที่โดดเด่น!
Oberon

66

HTML, 200 141 ตัวอักษร

ขอบคุณที่เป็นประโยชน์ฉันตัดมันลงเหลือ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

@ คะแนนยอดเยี่ยมขอบคุณ :-)
ossifrage

158 ตัวอักษรและตอนนี้ผมอยู่ตรงกลางเพื่อให้ดูดีบนหน้าจอทุกขนาด jsfiddle.net/TdPkF/5
AverageMarcus

1
@squeamishossifrage คุณควรกำจัดขนทั้งหมดยกเว้น 3 เส้นจากนั้นก็จะเป็น Homer Simpson!
mbomb007

55

Brainfuck: 583 ตัวอักษร (ไม่นับช่องว่าง)

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

เอาท์พุท:

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

11
รหัสต้นฉบับดูเหมือนเล็กน้อย (ถ้าคุณลองยากมาก ... ) ฉันสงสัยว่ามันจะยากขนาดไหนที่จะทำให้โค้ดและเอาต์พุตทั้งคู่เป็นใบหน้า ...
w4etwetewtwet

1
@handuel ทั้งสองเป็นใบหน้า แต่ต่างกัน คุณหมายถึงรหัสและผลลัพธ์ที่ได้จะเหมือนควินินหรือไม่? ฉันแน่ใจว่าสามารถทำได้
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
เครื่องมือที่เหมาะสมสำหรับงานที่เหมาะสม
อัลฟ่า

ฉันจะไม่พูดว่า SVG เป็นภาษาการเขียนโปรแกรมจริงๆ
Oliver Ni

@Oliver ภาษาการเขียนโปรแกรมมากเท่ากับ HTML คือ ... (ซึ่งไม่ใช่)
mbomb007

37

ทับทิม, 224

ดักลาสอดัมส์จะต้องตกใจ :-P

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

QBasic 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 art ตามพิกเซลของตัวละครที่ยิ้มมากกว่าเพียงแค่พิมพ์ตัวอักษรอย่างเต็มรูปแบบ เวอร์ชันที่ไม่ได้เพิ่มประสิทธิภาพแสดงให้เห็นว่า IDE ของ QBasic บันทึกไฟล์อย่างไร IDE คือ "ช่วย" แก้ไขไวยากรณ์สำหรับเราและเพิ่มช่องว่างจำนวนมากที่ "จำเป็น"

เอาท์พุท: ASCII QBasic ยิ้มไม่ได้เพิ่มประสิทธิภาพ

QBasic 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 สิ่งที่ทำ:

  • ลบช่องว่างที่ไม่จำเป็นออกทั้งหมด (D'เอ่อ!)
  • เปลี่ยนการแบ่งบรรทัด CRLF เป็น LF เท่านั้น
  • แทนที่CHR$(1)ด้วยสตริงที่มีอักขระจริง (นี่คือภาพประกอบที่มีอักขระ Unicode ที่ตรงกันหากคุณต้องการลองใช้รหัสจริงโปรดแทนที่ด้วยอักขระ ASCII จริง 1 โดยใช้ตัวแก้ไขฐานสิบหก)
  • แทนที่PRINTด้วยความ?เป็นประเพณีพื้นฐานที่อนุญาตให้
  • แทนที่IFบรรทัดด้วยบรรทัดที่พิมพ์อักขระตามค่าพิกเซลแหล่งที่มา นี่จะเป็น 0 หรือ 3 0 คือสีดำ อักขระ 0 พิมพ์อักขระว่างซึ่งถือว่าเป็นช่องว่าง 3 คือสีขาวในจานสี 4 สีของ CGA อักขระ ASCII 3 คือหัวใจ

เอาท์พุท: ปรับแต่งรอยยิ้ม ASCII ของ QBasic

กราฟิกแบบ QBasic, 83 (การเพิ่มช่องว่าง)

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

แต่เดี๋ยวก่อนฉันถามคุณที่นี่คุณไม่สามารถใช้คำสั่งกราฟิกในตัวของ QBasic ได้หรือไม่ แน่นอน แต่นั่นจะไม่ช่วยให้คุณประหยัดไบต์ใด ๆ เนื่องจากความฟุ้งซ่านของภาษา แต่มันมีฟังก์ชั่นในตัวที่จะวาดวงกลมโค้งระหว่างมุมที่กำหนดสองอันเท่านั้นซึ่งถือว่าดี มุมจะได้รับในเรเดียนและ4และ5.4ใกล้เคียงกับส่วนโค้งเป็นวงกลมสมมาตรแน่นิ่งπ*3/2หรือถ้าคุณได้เข้าร่วมด้านดีτ*3/4 ,

เอาท์พุท: QBasic กราฟิกยิ้มที่ปรับให้เหมาะสม

หมายเหตุ: ขนาดในคำตอบนี้แสดงถึงจำนวนไฟล์ในหน่วยไบต์


ฉันรู้สึกว่าฉันอาจจะเป็นคนสุดท้องที่นี่ที่ยังสามารถอ่าน QBASIC ... :) Nice one
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 สามารถเขียนด้วยชุดอักขระไบต์เดียว (ดั้งเดิม) ของตัวเองที่จับคู่สัญลักษณ์ APL กับค่า 128 ไบต์บน ดังนั้นเพื่อจุดประสงค์ในการให้คะแนนโปรแกรมของ N chars ที่ใช้อักขระ ASCII และสัญลักษณ์ APLเท่านั้นจึงถือได้ว่ามีความยาว N ไบต์


11

Bash, 63 ตัวอักษร

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

เอาท์พุท:

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

Artistry:

วัว


9

Bash, 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

Python 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;ไม่จำเป็นใน ISO C ++ :)
รองเท้า

ขอบคุณ ที่จะช่วยตัดตัวละครในปริศนาในอนาคต
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;}หรือมีการ
จัดการ

4

Rebmu 24 ตัวอักษร

โอ้มนุษย์น้อยที่สุด :-) โปรแกรม Rebmu ที่น่าประทับใจอย่างน้อยที่สุดดังนั้นการฝังค่า pHp โดยมีจุดประสงค์เพื่อส่งส่วยยาเม็ดสีน้ำเงินในโลกแห่งการเขียนโปรแกรม :

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

การดำเนินการ:

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

คำอธิบาย

Rebmu เป็นเพียงภาษาของREBOL มันสืบทอดข้อ จำกัด ในการแยกวิเคราะห์ใช้คำย่อที่ไม่มีช่องว่างคั่นด้วยการรันตัวพิมพ์ใหญ่ มันมีการดูแลเป็นพิเศษเมื่อวิ่งครั้งแรกจะเป็นตัวพิมพ์ใหญ่กับ uncapitalized

(ดังนั้นแทนที่จะแยกคำเช่นAbcDefGhiนั้นสามารถใช้ความแตกต่างระหว่างABCdefGHIและabcDEFghiบีบข้อมูลออกเล็กน้อยลำดับที่การรันเริ่มต้นในตัวพิมพ์ใหญ่ทั้งหมดจะถูกแยกดังนั้นคำแรกหมายถึง "set-word!" ซึ่งมักตีความตามบริบทว่าเป็นความปรารถนา สำหรับการมอบหมาย ดูวิดีโอ )

หากคุณต้องการที่จะแปลนี้เพื่อพื้นเมือง REBOL คุณต้องยอมรับสิ่งเช่นว่ามันเริ่มต้นด้วย 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 หนึ่งครั้งพิมพ์สตริงอื่นโดยที่^/ลำดับ escape สำหรับบรรทัดใหม่(carets ที่ใช้ในซอฟต์แวร์น้อยกว่าแบ็กสแลชที่ปรากฏบ่อยในพา ธ )พิมพ์ h อีกครั้ง


4

JavaScript 262 251

แก้ไข:เพิ่มดวงตาที่ดีขึ้น

พิมพ์ใบหน้าที่ยิ้มเข้าไปในคอนโซล

อาจสูญเสียอักขระบางตัวเพื่อทำให้ bitmask ของฉันง่ายขึ้นและพิมพ์ใบหน้าที่น่ารักน้อยลงหรือใช้สมการวงกลมแทนวงรีเพื่ออธิบายระยะห่างของตัวอักษร - แต่นั่นไม่ใช่วิญญาณ

คุณสามารถเปลี่ยน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

Perl, 106 ตัวอักษร

มันเป็น Perl oneliner เพียงแค่ต้อง C & P มันบนพรอมต์คำสั่งให้Acme::EyeDropsโมดูลPerl ติดตั้งแล้วบนเครื่อง

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

Bash + 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:

ตัวอย่างผลลัพธ์:

กราฟิกยิ้ม

แต่เช่นนี้เป็นท้าทาย ...

Bash + 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

GolfScript, 27

เอาต์พุตนี้เป็นตัวอย่างที่ 2 ตามที่กำหนด

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

อันแรกทำได้แบบเดียวกัน แต่ฉันคิดว่าอันที่สองดูดีกว่า :)


2

Brainf *** - 2

+.

พิมพ์หรือค่า ASCII 1 (อาจไม่ทำงานกับบางแพลตฟอร์ม)


Nitpick: ASCII 1 คือ SOH ซึ่งเป็นอักขระที่ไม่สามารถพิมพ์ได้ รอยยิ้มนั้นคือ U + 263A หรือ 1 ใน CP437 สิ่งที่คุณอาจใช้ น่าเสียดายที่ผลลัพธ์ของคุณล้มเหลวในการใช้“ หน่วย” ที่เพียงพอสำหรับดวงตาและปาก
Christopher Creutzig

2
@ChristopherCreutzig มันไม่ได้ล้มเหลวเงื่อนไขนั้น ดวงตาแต่ละข้างมีขนาดประมาณ 1 พิกเซลดังนั้นปากจะมีขนาดใหญ่กว่าสองเท่า
Justin

ค่าประสบการณ์ "ASCII ART" ประกอบด้วยสองส่วน ฉันไม่เห็นพวกเขาที่นี่
s3lph

2

Bash - หนึ่งซับ: 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;}ตัวอักษร: หรือ 245 ถ้าคุณยอมแพ้ฟังก์ชั่น m และใส่รหัสลงในไฟล์สคริปต์ อาจลดลงได้มากขึ้นด้วยการปรับแต่งการคำนวณ แต่ตอนนี้ฉันไม่มีเวลา
จัดการ

2

HTML + CSS, 83

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

สกรีนช็อต (ใช้ Firefox): ป้อนคำอธิบายรูปภาพที่นี่

เลวร้ายเกินไปที่ฉันสายเกินไปกับคำตอบของฉัน (ได้ +10 ตัวแทนก็สายเกินไป ... )


ผมชอบมันมากขึ้นด้วยborder-radius:50%และเป็นหนึ่งเดียว<hr>: dabblet.com/gist/8472397
manatwork

@ manatwork หรือชอบสิ่งนี้: jsfiddle.net/T9BdL/1
Tim Seguine

1
@TimSeguine โดยใช้อักขระเว้นวรรคแบบไม่มีตัวอักษรจะสั้นกว่า&nbsp;: jsfiddle.net/T9BdL/2
จัดการ

1
ฉันคิดว่าดวงตาที่เหลื่อมกันกับใบหน้าเป็นสิ่งที่ผิด นั่นเป็นเหตุผลว่าทำไมฉันถึงทำแบบนี้ นอกจากนี้ยังทำให้ฉันนึกถึงชาวแคนาดาที่ต้องเผชิญในเซาท์พาร์ก
Leo Pflug

2
ไม่ใช่ golfed จริง ๆ แต่ตามที่ร้องขอรุ่น css เท่านั้น: jsfiddle.net/T9BdL/9
Tim Seguine

1

GolfScript, 18

โปรแกรมนี้ใช้ค่าที่เข้ารหัสแบบไบนารีซึ่งปรากฏเป็นอักขระแปลก ๆ / ไม่ถูกต้องในโปรแกรมแก้ไขข้อความ

นี่คือการถ่ายโอนข้อมูล hex:

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

เวอร์ชันขยายที่มีอักขระที่ใช้ Escape:

"\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

JavaScript

รหัสนี้จะต้องทำงานใน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 มันใกล้กว่ารอยยิ้มมากกว่านี้ ... เพราะฉันใช้ความสมมาตรคุณจึงไม่สามารถยิ้มได้ที่นี่

ใช้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

HTML 5: 321 ตัวอักษร

<canvas id=a><script>_=document.getElementById("a"),c=_.getContext("2d"),p=Math.PI,P=2*p;C();c.arc(95,85,40,0,P);B();c.lineWidth=2;c.stroke();c.fillStyle="red";C();c.arc(75,75,5,0,P);B();C();c.arc(114,75,5,0,P);B();C();c.arc(95,90,26,p,P,true);B();function C(){c.beginPath()};function B(){c.closePath();c.fill()}</script>

ซอ: http://jsfiddle.net/wfNGx/

ป้อนคำอธิบายรูปภาพที่นี่

ที่มา: http://www.codecademy.com/courses/web-beginner-en-SWM11/0/1


0

คำสั่ง Shell หรือ builtin

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

ทั้งนี้ขึ้นอยู่กับรสชาติของเชลล์หรือชุดคำสั่งของคุณechoอาจหรือไม่อาจ interprete อักขระควบคุมด้วยหรือ witout -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.