วาดหมวกลับต้อนรับอย่างอบอุ่น


56

Winter Bash 2014นั้นยอดเยี่ยมและเราทุกคนไม่ชอบหมวกใช่ไหม โดยเฉพาะหมวกลับ!

ดังนั้นทำไมไม่ลองสวมหมวกลับสักอันล่ะ?

ความท้าทาย

งานของคุณคือการวาดหมวกต้อนรับอย่างอบอุ่นตามสัดส่วนในภาษาที่คุณเลือกและมีโครงสร้างที่แน่นอนตามที่ปรากฏในหน้านี้

เช่นเคยคุณสามารถแสดงหมวกเป็นไฟล์หรือหน้าจอโดยใช้กราฟิกแบบเวกเตอร์หรือแรสเตอร์ หากเอาต์พุตของคุณ rasterised ภาพของคุณต้องมีขนาด 400x400 พิกเซลหรือมากกว่า

นอกจากนี้เนื้อหาที่แท้จริงของหมวก (พื้นที่ของรูปสี่เหลี่ยมผืนผ้าที่มีขอบเขตของส่วนที่มีสี) ควรครอบคลุมมากกว่า 40% ของภาพที่ส่งออกของคุณ

ข้อมูลจำเพาะ

ภาพด้านล่างแสดงขนาดต่าง ๆ ของหมวก ขนาดทั้งหมดอยู่ในหน่วยเช่นพิกเซล รัศมีเส้นขอบทั้งหมดในภาพจะถูกวาดด้วยรัศมีของ13หน่วย

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

สี :

  • สีแดงในดาวและวงแหวนวงกลม - rgb (255, 28, 34)
  • สีเหลืองในวงกลม - rgb (255, 202, 87)
  • สีเทาอ่อนที่สุด - rgb (88, 88, 92)
  • Darkest grey - rgb (31, 26, 26)
  • สีเทากลาง - rgb (64, 64, 64)

เกณฑ์การให้คะแนน

นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ

ในฐานะที่เป็นคำเตือนใช้การบีบอัดที่มีอยู่ (เช่นการฝัง GIF บีบอัด) ตกอยู่ในช่องโหว่หลายมาตรฐาน


เกี่ยวกับการแก้ไขที่แนะนำ: ฉันเลือกที่จะปฏิเสธ ฉันเห็นภาพแสดงอย่างถูกต้องตามที่เป็นอยู่
— mbomb007

คำตอบ:


15

GolfScript ( 376 373 364 350 หรือ645 610 607ไบต์)

ตามข้อกำหนดดั้งเดิมซึ่งเรียกว่าการสร้าง SVG ที่แน่นอน SVG ที่ตีกอล์ฟจะถูกสร้างขึ้นใน 607 ไบต์

รหัสประกอบด้วยอักขระที่ไม่พิมพ์จำนวนมากดังนั้นนี่คือผลลัพธ์ xxd:

0000000: 221a c837 cde6 0c0c 4658 5786 cead ca66  "..7....FXW....f
0000010: 3507 d130 1577 4657 4067 df6b 97e7 510f  5..0.wFW@g.k..Q.
0000020: cbb0 e3e5 77c6 a91d d830 fa92 eea0 d447  ....w....0.....G
0000030: 7721 cc59 3f4c 230b e0bb fd3e ecf3 d4f7  w!.Y?L#....>....
0000040: 2c6b abd5 b1e5 939d 68b4 e89e 39ca a259  ,k......h...9..Y
0000050: b934 ef6f 203a 7abf 1a2c b468 3351 4c53  .4.o :z..,.h3QLS
0000060: c056 9a59 f38c a97e cf82 8840 ee7c 43e4  .V.Y...~...@.|C.
0000070: 123f df1a 00d4 542d a29c 0195 3ad5 4af4  .?....T-....:.J.
0000080: c644 57c7 0b6b 4d4f 908b 8cf7 c8e2 536d  .DW..kMO......Sm
0000090: 9d36 1139 1406 5c5c dcbc 3a11 1993 63a6  .6.9..\\..:...c.
00000a0: 4f8b 7b62 de77 5158 a485 dec1 87b4 1d11  O.{b.wQX........
00000b0: 01b1 e49d 8adb 0b29 ad44 93e4 7bbd 027e  .......).D..{..~
00000c0: 7a6f 60ca 99f4 6ab3 7bc0 63c3 ba70 1220  zo`...j.{.c..p. 
00000d0: 1aea 9206 da5a 95ce 6f70 67f8 856e 8807  .....Z..opg..n..
00000e0: adec e533 0c1e 3dc6 96e5 54d4 2837 4497  ...3..=...T.(7D.
00000f0: f5ea 2135 d261 9c02 fa61 c12a 7180 085a  ..!5.a...a.*q..Z
0000100: a5b8 e3d6 68cb 0659 f4ad d01d 5fc4 9e5b  ....h..Y...._..[
0000110: d030 46d5 96c4 439f da99 2cb1 52b9 5d53  .0F...C...,.R.]S
0000120: 098e 7598 2785 a962 a40d edbd 18cb e46c  ..u.'..b.......l
0000130: 6edb ba9f 17be 36ab ef23 0caf 3ce8 352d  n.....6..#..<.5-
0000140: fad5 762b a388 ca17 413f 7dac 6dd1 116e  ..v+....A?}.m..n
0000150: b2e8 9cd1 d00a dda1 716d a148 acc7 8749  ........qm.H...I
0000160: f2c3 a7a9 8128 02e9 d83c f350 7a02 74ec  .....(...<.Pz.t.
0000170: 6270 6089 a16d 7bfa b6dd e56a 366a d85b  bp`..m{....j6j.[
0000180: 33e5 b777 05c1 6f4e f06b ca95 3ffc 49f7  3..w..oN.k..?.I.
0000190: 1a08 6bc5 abb0 c745 e439 b87e b81c 52c8  ..k....E.9.~..R.
00001a0: a445 935e 5c5c 00d3 34de c002 721c b69d  .E.^\\..4...r...
00001b0: 16ee aab0 9562 4d44 44ed 0193 13a7 eed2  .....bMDD.......
00001c0: 99e4 6350 a756 c21a 980b 6bca 57f9 8443  ..cP.V....k.W..C
00001d0: eecc 9fd1 05ce 78c4 f95f dc90 8926 6eb4  ......x.._...&n.
00001e0: 88b8 7b90 44be 33c3 cc2a b032 d809 17d0  ..{.D.3..*.2....
00001f0: 7e32 c4c9 e37f ceb3 b1e0 b634 a690 8163  ~2.........4...c
0000200: cd34 e3d9 9768 3e13 ac10 5003 1cb7 af6b  .4...h>...P....k
0000210: 863f cba0 9896 e50a d029 8e2b 584c d86f  .?.......).+XL.o
0000220: 67a7 120e 318a cb22 3235 3662 6173 6520  g...1.."256base 
0000230: 3132 3462 6173 655b 305d 2f28 3332 2c7b  124base[0]/(32,{
0000240: 5c5b 3124 295d 2f5c 3224 3d2a 7d2f 5c2c  \[1$)]/\2$=*}/\,
0000250: 297b 2d2e 3634 3e33 322a 2b7d 2b25 2b    ){-.64>32*+}+%+

มันเป็นตัวแปรในเอ็นจินไวยากรณ์เชิงสร้างสรรค์ที่ผู้ติดตามจะคุ้นเคยกับ:

'MAGIC STRING'256base 124base[0]/(40,{\[1$)]/\2$=*}/\,){-.64>32*+}+%+

มันกลับกลายเป็นว่าจะดีกว่าเล็กน้อยสำหรับ SVG ที่มีขนาดตัวพิมพ์เล็กกว่าบีบอัดและจากนั้นให้ตัวพิมพ์เล็กหลังจากการบีบอัด

เมื่อรันจะสร้าง SVG ขนาด 840 ไบต์:

<svg width="192" height="192"><g transform="translate(-19.356 39.823) scale(.11435537421402706)"><path d="m873 126c-28-56-97-79-153-50l-361 182c-40 20-63 60-62 102v369c0 63 51 114 114 114h1198c63 0 114-51 114-114v-369c1-62-22-82-62-102l-361-182c-56-29-125-6-153 50c-28 56-6 124 49 152h-372c55-28 77-96 49-152z" fill="#231f20"/><path d="m1642 812c0 60-49 109-109 109h-1047c-60 0-109-49-109-109v-435c0-60 49-109 109-109h96.557636322653a530 274 0 0 1 854.884727354693 0h96.557636322653c60 0 109 49 109 109v435z" fill="#424143"/><path d="m1561 826c0 52-42 95-95 95h-912c-52 0-95-42-95-95v-463c0-52 42-95 95-95h912c52 0 95 42 95 95v463z" fill="#595a5c"/><circle cy="594" cx="1010" r="199" fill="#f9c960" stroke="#ec2227" stroke-width="42"/><path d="m1063 615l85-62-105 0-33-100-33 100-105 0 85 62-32 100 85-62 85 62z" fill="#ec2227"/></g></svg>

ฉันปรับแต่งตำแหน่งโดยมิลลิวินาทีสองสามตัวและแก้ไขอสมมาตรขนาดเล็กหนึ่งอันในส่วนสีเทาที่มืดที่สุด


แต่การเปลี่ยนแปลงคำถามและการสนทนาในการแชทระบุว่าจริง ๆ แล้วอนุญาตให้สร้าง SVG ที่ดีซึ่งสามารถทำได้ใน 364 ไบต์ เชนการคลายบีบอัดจะคล้ายกันดังนั้นเอาต์พุต xxd ของไฟล์ GolfScript คือ:

0000000: 2710 9f1d b7bb 6ca9 ad60 1325 b869 45a6  '.....l..`.%.iE.
0000010: 9371 2eee 1271 1dac 0244 9ca3 2820 e6be  .q...q...D..( ..
0000020: b038 68e4 4e53 bbe9 7809 a67a 5f02 2f14  .8h.NS..x..z_./.
0000030: 66a1 0cb3 648c 76d4 0450 028d fd32 b81f  f...d.v..P...2..
0000040: 351a d449 bba8 e685 4de8 1fc0 abfd 8b9f  5..I....M.......
0000050: d9d9 33cd 16e9 5c27 b7a0 dc0f 4138 a2ca  ..3...\'....A8..
0000060: 2b45 a2c2 571e 7e1e 1030 dcfd b48e 377b  +E..W.~..0....7{
0000070: 112e 7762 d14c 1fed 0bcb 15b4 c383 f828  ..wb.L.........(
0000080: b317 8c9f 890b ce84 7782 4c10 fc8e 7602  ........w.L...v.
0000090: 9fef 9563 fe30 45b0 7144 30b3 f3c5 fa22  ...c.0E.qD0...."
00000a0: ccae 8a08 c506 466b 6b84 317e 62dd a558  ......Fkk.1~b..X
00000b0: 8423 d8ef 9d67 e807 0d23 847d 4dab 68ff  .#...g...#.}M.h.
00000c0: 952b ca20 14d3 0881 2880 6611 eb53 10c6  .+. ....(.f..S..
00000d0: 0058 573f 3c87 957c 8512 59ff 94f3 ae38  .XW?<..|..Y....8
00000e0: 4145 bf8d 4123 6e84 aa62 904d a878 0bca  AE..A#n..b.M.x..
00000f0: 854b deaa 32ae 70fc b31a 9578 676a df8a  .K..2.p....xgj..
0000100: 7310 ecfc 47d2 5dde 1a8c 3898 943b ede3  s...G.]...8..;..
0000110: d0a2 55a4 eb00 b623 0302 d79c a712 b616  ..U....#........
0000120: 5037 dc2d 0dad 2732 3536 6261 7365 2031  P7.-..'256base 1
0000130: 3133 6261 7365 5b30 5d2f 2832 312c 7b5c  13base[0]/(21,{\
0000140: 5b31 2429 5d2f 5c32 243d 2a7d 2f5c 2c29  [1$)]/\2$=*}/\,)
0000150: 7b2d 2e36 343e 3332 2a2b 7d2b 252b       {-.64>32*+}+%+

และสร้างไฟล์ SVG ขนาด 547 ไบต์:

<svg width="1426" height="858"><path d="m475 114-361.5 182v370h1199v-370l-361.5-182" stroke="#231f20" stroke-linecap="round" stroke-linejoin="round" stroke-width="227"/><ellipse cx="713" cy="367" rx="530" ry="274" fill="#424143"/><rect x="80" y="205" width="1266" height="653" rx="109" ry="109" fill="#424143"/><rect x="161" y="205" width="1103" height="653" rx="95" ry="95" fill="#595a5c"/><circle cx="713" cy="531" r="199" fill="#f9c960" stroke="#ec2227" stroke-width="42"/><path d="m713 390 85 262-223-162 276 0-223 162z" fill="#ec2227"/></svg>

ขอบคุณPaul LeBeau ที่ชี้ให้เห็นการประหยัดขนาด 7 ไบต์ใน SVG ซึ่งแปลเป็น 9 ไบต์ใน GolfScript และสำหรับคำตอบของเขาซึ่งแสดงให้เห็นว่าดาวนั้นสามารถดึงดูดได้เพียง 5 คะแนน (ใช้คำตอบของเขาฉันสามารถลงไป 329 bytes หรือ 323 กับ tweaking บางคำตอบของเขา แต่ฉันไม่พอใจกับที่)

ส่งออกที่ 50% ด้วย Inkscape:

ภาพหมวกแสดงเป็น PNG

หากต้องการดูโครงสร้างนี่คือ SVG ที่แสดงผลด้วยfill="none"ทุกสิ่งและสีเติมบางส่วนเปลี่ยนเป็นสีเส้นขีด: จัดเค้าร่างภาพ


@Optimizer แต่แตกต่างจาก JS หนึ่งซึ่งเกือบจะสมบูรณ์แบบพิกเซล นอกเหนือจากการเล่นกอล์ฟแล้วความแตกต่างเพียงอย่างเดียวของ SVG ดั้งเดิมคือการแก้ไขความไม่สมดุล ถ้าฉันผ่อนคลายในรูปแบบของภาพที่มีเครื่องหมายกำกับของมาร์ตินฉันอาจประหยัดได้มาก
— Peter Taylor

ไม่จำเป็นต้องใช้ "<g>" และ "</g>" ดังนั้นคุณควรประหยัดได้มากกว่านี้
— Paul LeBeau

@ PaulLeBeau จริงมากขอบคุณ
— Peter Taylor

26

SVG ( 462 460 454 429 384 365 ไบต์)

ฉันรู้ว่ามันไม่ใช่ภาษาโปรแกรม แต่อย่างน้อยฉันก็คิดว่านี่จะเป็นประโยชน์กับทุกคนที่สร้างเอาต์พุต SVG ...

นี่คือพื้นฐานของ SVG ของ Peter Taylor

ด้วยการใช้ coords ดั้งเดิมและปรับเส้นทางให้เหมาะสมฉันจึงพยายามลด SVG ลง ฉันยังแก้ไขสี

<svg><g stroke-linecap=round stroke-linejoin=round stroke-width=26><path d=M54,13,13,36V75H151V36L110,13 stroke=#1f1a1a /><path d=M21,84V36H37A91,91,0,0,1,127,36h16V84z stroke=#404040 /><path d=M30,36v48h104V36z stroke=#58585c fill=#58585c /></g><circle cx=82 cy=60 r=23 fill=#ffca57 stroke=#ff1c22 stroke-width=5 /><path d=M82,43,92,74,66,55H98L72,74z fill=#ff1c22

ปรับปรุง:แก้ไขข้อบกพร่องที่ชี้ให้เห็นโดยPeter Taylorและตำแหน่งของ rects และบันทึกอีก 2 ไบต์

อัปเดต 2:รวมการแก้ไขและคำแนะนำอื่นจาก Peter (-6 ไบต์)

อัปเดต 3:เพิ่งสังเกตเห็นคำแนะนำในขณะนี้ระบุรัศมีทั้งหมดเป็น 13 ดังนั้นการใช้ประโยชน์จากสิ่งนั้นและปรับเส้นทางให้ดีขึ้นอีกเล็กน้อยฉันจึงบันทึกอีก 25 ไบต์ ซออ่านเพิ่มเติมได้ที่นี่

อัปเดต 4:เนื่องจากฉันสมมติว่า SVG ถูกฝังอยู่ใน HTML (SVG แบบสแตนด์อโลนต้องมีการประกาศเนมสเปซ) ฉันจึงสามารถบีบสิ่งนี้ได้อีก (a) ฉันไม่ต้องการแอตทริบิวต์ความกว้างและความสูงเนื่องจากขนาดของ SVG นั้นเล็กกว่าเบราว์เซอร์ขนาดเริ่มต้นที่มอบให้กับวัตถุที่มีขนาดไม่ใหญ่ (300x150) และ (b) โปรแกรมแยกวิเคราะห์ HTML จะให้อภัยเกี่ยวกับคุณลักษณะที่ไม่ ไม่มีเครื่องหมายอัญประกาศดังนั้นจึงสามารถนำบางส่วนออกได้ (แนวคิดจากSqueamish Ossifrage ) บันทึกอีก 45 ไบต์

อัปเดต 5:การใช้ลูกเล่นของhslเพื่อลบสีและวางแท็กปิดท้ายต่อท้าย เราบันทึกอีก 19 ไบต์ ตอนหลังดูเหมือนจะโกงฉันเล็กน้อยในตอนแรก แต่เนื่องจากมันใช้ได้กับเบราว์เซอร์ทุกตัวฉันจึงเปลี่ยนใจ :) ขอบคุณ hsl!


ความคิดที่ดีบางอย่าง แต่มีข้อบกพร่องที่ไม่ดีอย่างหนึ่ง สีเทากลางไม่สูงพอที่จะครอบคลุมสีเทาเข้ม ฉันไม่แน่ใจว่าสิ่งนี้จะได้รับการแก้ไขที่ดีที่สุดโดยการเพิ่มfill="none"ในกลุ่มหรือโดยการปรับเส้นโค้ง
— Peter Taylor

เห็นดีขอบคุณ แก้ไขแล้ว ฉันไม่ได้ใช้รัศมีส่วนโค้งที่เหมาะสมเพราะฉันลืมที่จะลบความกว้างครึ่งจังหวะ
— Paul LeBeau

<rect>ควรมีความสูงมากกว่า74 78และฉันจะทำให้มันประหยัด 5 ถ่านที่จะแทนที่ด้วย<path>กับทั้งสองfillและstroke, stroke-width="18"จากนั้นก็ย้ายภายใน<g>และร่วมกันย้ายจากสองเส้นทางไปยังstroke-width="18" <g>การมีอีกอัน<path>แทนที่จะเป็น a <rect>ควรช่วยให้การบีบอัดเล็กน้อย
— Peter Taylor

ขอบคุณ ดูเหมือนว่าจะมีความแตกต่างระหว่างรัศมี (8 กับ 9) ซึ่งเป็นเหตุผลว่าทำไมฉันถึงมีความแตกต่าง แต่มันก็ไม่ชัดเจนนัก
— Paul LeBeau

Radii ระบุเป็น 13 ฉันเห็นแล้วดังนั้นฉันจึงอัปเดต SVG
— Paul LeBeau

20

Mathematica 787 612 600 514 506 ไบต์

จำนวนรหัสที่น่าแปลกใจที่จำเป็น จะถูกตีอย่างแน่นอน

ฟอร์มที่ไม่ดี

red=RGBColor[1.,.11,.13]
yellow=RGBColor[1.,.79,.34]
lightGrey=RGBColor[.35,.35,.36]
midGrey=RGBColor[.25,.25,.25]
r=RoundingRadius->8;
pentagonalVertices[offset_]:=Table[{Cos[2π k/5+ offset],Sin[2π k/5+offset]},{k,0,5}];
x=63;x2=72;
y=37;
pts={{e=22,50},{h=72,30},{h,-17},{-h,-15},{-h,30},{-e,50}};
pts2={{-h,-15},{-h,30},{-e,50}}
Graphics[{
{Black,Thickness[.13],JoinForm["Round"],CapForm["Round"], Line[pts]},
midGrey,Rectangle[{-x2,-y},{x2,y},r],
Disk[{0,-55},104,{Pi/3,2Pi/3}],
White,Rectangle[{-40,-60},{40,0},r],
lightGrey,Rectangle[{-x,-y},{x,y},r],
red,Disk[{0,0},25],yellow,Disk[{0,0},19.5],red,
GraphicsComplex[16.7 pentagonalVertices[Pi/2],Polygon[{1,3,5,2,4}]],
GraphicsComplex[6.4 pentagonalVertices[3 Pi/2],Polygon[{1,2,3,4,5}]]}]

หมวก

แข็งแรงเล่นกอล์ฟ

g=GraphicsComplex;c=RGBColor;d=c[1.,.11,.13];o="Round";k=Rectangle;j=Disk;n=Polygon;r=RoundingRadius->8;w@s_:=Table[{Cos[2\[Pi]k/5+s],Sin[2\[Pi]k/5+s]},{k,0,5}];x=63;i=72;y=37;p={{e=22,50},{h=72,30},{h,-17},{-h,-15},{-h,30},{-e,50}};Graphics[{Thickness[.13],JoinForm@o,CapForm@o,Line@p,c[.25,.25,.25],k[{-i,-y},{i,y},r],j[{0,-55},104,{\[Pi]/3,2\[Pi]/3}],White,k[{-40,-60},{40,0},r],c[.35,.35,.36],k[{-x,-y},{x,y},r],d,j[{0,0},25],c[1.,.79,.34],j[{0,0},19.5],d,g[16.7w[\[Pi]/2],n[{1,3,5,2,4}]],g[6.4w[3\[Pi]/2],n[{1,2,3,4,5}]]}]

ฉันจะถามวิธีนับไบต์ได้อย่างไร (ฉันใหม่ที่นี่) ฉันได้ 651 ไบต์เมื่อนับรุ่นgolfed
— Jean-Paul

1
ฉันใช้แอพตัวนับอัตโนมัติที่ Wolfram ใช้เพื่อประเมินความยาวของการส่งเข้าประกวดครั้งเดียว ( blog.wolfram.com/2014/11/10/… ) มันจะไม่นับช่องว่างเพิ่มเติมรวมถึงการอ่าน ที่จริงแล้วมันอ่านตัวอักษรไม่ใช่ตัวอักษรไม่ใช่ไบต์ แต่ฉันคิดว่าถ่านหนึ่งตัว = หนึ่งไบต์
— DavidC

มีเหตุผล! เสียดายที่ฉันทำแบบนั้นไม่ได้เหมือนกัน :) ขอบคุณสำหรับคำตอบ
— Jean-Paul

ฉันคิดว่าคุณสามารถเห็นมันเป็นอย่างนั้น แต่นั่นทำให้การแสดงผลที่อ่านยากเป็นเรื่องยากในบรรทัดเดียว ฉันชอบที่จะให้มันชัดเจน
— DavidC

18

HTML + ES6, 533

<canvas id=D width=600 height=400><script>c=D.getContext('2d')
S=x=>c.strokeStyle=F(x)
F=x=>c.fillStyle=x
W=x=>c.lineWidth=x
B=x=>c.stroke()||c.fill()||c.beginPath()
G='s.charCodeAt(i++)*9-300,'
L=s=>B()||eval('for(i in s)i%2||c.lineTo('+G+G+'0)')&&B()
c.lineCap=c.lineJoin='round'
W(60)
S('#1F1A1A')
L(';,+3+BXBX3H,')
S('#404040')
L('.3.EUEU3.3')
c.arc(291,390,270,4,5.2,0)
B()
S('#58585C')
L('131ERER313')
S(R='#FF1C22')
F('#FFCA57')
W(30)
c.arc(291,240,69,0,7,0)
B()
c.font='105px serif'
S(R)
c.fillText('\u2605',239,276)</script>

ตัวอย่าง (แก้ไขแล้ว):

<canvas style="margin:-40px 0 0 100px;height:250px;" id=D width=600 height=400><script>stages=[function(){c=D.getContext('2d');S=function(x){return c.strokeStyle=F(x)};F=function(x){return c.fillStyle=x};W=function(x){return c.lineWidth=x};B=function(x){return c.stroke()||c.fill()||c.beginPath()};G='s.charCodeAt(i++)*9-300,';L=function(s){return B()||eval('for(i in s)i%2||c.lineTo('+G+G+'0)')&&B()}},function(){c.lineCap=c.lineJoin='round';W(60);S('#1F1A1A');L(';,+3+BXBX3H,')},function(){S('#404040');L('.3.EUEU3.3')},function(){c.arc(291,390,270,4,5.2,0);B()},function(){S('#58585C');L('131ERER313')},function(){S(R='#FF1C22');F('#FFCA57');W(30);c.arc(291,240,69,0,7,0);B()},function(){c.font='105px serif';S(R);c.fillText('\u2605',239,276)}];next=function(i){stages[i]();if(i<6)setTimeout(next,1000,i+1)};next(0)</script>

หมวก!


@Optimizer ฉันได้เพิ่มรูปภาพเนื่องจากมันดูดีสำหรับฉันทั้งใน FF และ Chrome แบบอักษรต้องแตกต่างกันใน Windows หรือบางอย่าง
— grc

@grc ฉันคิดว่าคุณไม่สามารถใช้แบบอักษรบางตัวที่พร้อมใช้งานได้ในทุกระบบ โดยเฉพาะอย่างยิ่งไม่ได้ถ้าคุณใช้serifซึ่งไม่ได้เป็นแบบอักษรที่เฉพาะเจาะจง ...
— อเล็กซานเดอร์

ใน Arial Unicode MS (แบบอักษร Windows Arial ซึ่งมี codepoint) ที่ codepoint ไม่มีรูปร่างที่เหมาะสม คะแนนมีฐานที่แคบกว่า
— Peter Taylor

13

HTML + CSS, 676 636 625 ไบต์

นี้สามารถแข็งแรงเล่นกอล์ฟเป็นจำนวนมากโดยการกำจัดเหล่านั้นleft:XXXpxและการใช้การจัดเรียงของกลางบางส่วนleft:XXXpxตอนนี้ใช้การแปลงไปยังศูนย์ทุกอย่างแทน

*{left:50%;transform:translate(-50%);position:absolute;border-radius:13px;height:75px}a,b,f{width:145px;background:#404040}b{width:126px;background:#58585C}c{width:163px;height:61px;top:50px}d,e{width:68px;height:40px;top:-15px}c,d,e{background:#1F1A1A}d{left:0;transform:skew(0deg,-26deg);border-radius:9px 24px}e{left:96px;transform:skew(0deg,26deg);border-radius:24px 9px}f{height:40px;width:99px;top:-13px;border-radius:150px/60px}g{height:34px;width:34px;background:#FFCA57;border:5px solid #FF1C22;border-radius:40px;top:13px;color:#FF1C22;font-size:1cm;line-height:31px;padding:3px}
<c><d></d><e></e><f></f><a><b><g>★

หมายเหตุ: วิธีนี้ใช้งานได้ดีที่สุด / ตามที่คาดไว้ใน Firefox บน Windows

ผลลัพธ์สุดท้ายมีลักษณะดังนี้:

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


ฉันไม่เคยเห็นแท็ก HTML ที่ตีกอล์ฟ น่าสนใจ
— Arturo Torres Sánchez

1
@ ArturoTorresSánchezแล้วคุณต้องดูสิ่งนี้
— เครื่องมือเพิ่มประสิทธิภาพ

ตอนนี้ดาวเปลี่ยนไปทางซ้ายเล็กน้อยและด้านบนของ FF 34.0 / Windows
— n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

8

ActionScript 3.0, 491 ไบต์

แบบฟอร์ม Golfed:

var h=new Shape(),g=h.graphics,l=g.lineTo,m=g.moveTo,s=g.lineStyle,b=g.beginFill,e=g.endFill,r=g.drawRoundRect;s(23,0x231F20);m(77,18);l(41,36);l(41,73);m(125,18);l(161,36);l(161,73);s();b(0x424143);g.drawEllipse(48,16,106,55);e();b(0x424143);r(38,27,126,65,23,23);e();b(0x595A5C);r(46,27,110,65,17,17);e();s(4.2,0xEC2227);b(0xF9C960);g.drawCircle(101,59,20);e();s();b(0xEC2227);m(106,61);l(115,55);l(104,55);l(101,45);l(98,55);l(87,55);l(96,61);l(93,71);l(101,65);l(110,71);e();addChild(h);

ผลลัพธ์: http://megaswf.com/file/2708781.swf


1
หรือ: var ww=new WarmWelcome(); stage.addChild(ww);และวาดมันใน Flash ด้วยการเชื่อมโยง AS3:)
— wchargin

7

MATLAB R2013a, 551 541

นี่คือรหัสกอล์ฟครั้งแรกของฉัน ดังนั้นหากสิ่งใดไม่เป็นไปตามกฎโปรดสอน / บอกฉัน :)

แบบฟอร์ม Golfed:

hold on
r=[1 .11 .13];h=[];b=2.4;q=-37;o='Curvature';p='Position'
x='FaceColor';z='EdgeColor';v=@rectangle;t=@repmat;s=@set
for i=1:19;h=[h v(p,[-82+b*i -32+i 22 73]) v(p,[60-b*i -32+i 22 73])];end
s(h,o,1,x,[.12 .1 .1])
c=.8:.01:2.2
h=[h fill(104*cos(c),104*sin(c)-52,t(.25,1,3))]
h=[h v(p,[-72 q 144 74],o,.1,x,t(.25,1,3))]
a=v(p,[-63 q 126 74])
a=[a v(p,[-63 q 126 74])]
s(a,o,.1,x,[t(.35,1,2) .36])
v(p,[-20 -20 40 40],o,1,x,[1 .79 .34],z,r,'LineWidth',10)
plot(0,0,'rp',['Marker' x],r,'MarkerSize',58.5)
s([a h],z,'none')
axis equal off

เอาท์พุท (rasterized):

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


6

LaTeX / TikZ (613 ไบต์)

\RequirePackage{xcolor,tikz}\RequirePackage[active,tightpage]{preview}\PreviewMacro[[!]\tikz\def~#1{\definecolor#1{HTML}}~1{EC2227}~2{F9C960}~3{595A5C}~4{231F20}~5{424143}\def\r{rounded
corners}\def\R{radius}\tikz[x=1pt,y=1pt]{\def~{\fill[}\draw[4,line
width=22.8,line
cap=round,line
join=round](-23.8,41.7)--(-59.9,23.5)--(-59.9,-13.3)--(59.9,-13.3)--(59.9,23.5)--(23.8,41.7);~5,x
\R=53,y
\R=27.4](0,16.4)circle;~5,\r=10.9](-63,-32.65)rectangle(63,32.65);~3,\r=9.5](-55.1,-32.65)rectangle(55.1,32.65);~1,\R=22](0,0)circle;~2,\R=17.8](0,0)circle;~1](90:14.1)\foreach\!in{0,...,4}{--(90+\!*144:14.1)}--cycle;}\stop

ผลที่ได้pdflatexคือไฟล์ PDF ที่มีหมวกเป็นกราฟิกแบบเวกเตอร์และกล่องที่มีขอบเขต จำกัด

ผลลัพธ์

Ungolfed

\documentclass{minimal}
% Package xcolor provides color model HTML
% in order to take the exact same values, used in the SVG file 
\usepackage{xcolor}
\usepackage{tikz}

% Package preview is used to get a correct bounding
% box for the graphics
\usepackage[active,tightpage]{preview}
\PreviewEnvironment[{[]}]{tikzpicture}

% Color definitions. one digit instead of a name saves many bytes
\definecolor1{HTML}{EC2227}
\definecolor2{HTML}{F9C960}
\definecolor3{HTML}{595A5C}
\definecolor4{HTML}{231F20}
\definecolor5{HTML}{424143}

\begin{document}
  \begin{tikzpicture}[x=1pt,y=1pt]
    % Draws the dark lines in the background
    \draw[4,line width=22.8,line cap=round,line join=round]
    (-23.8,41.7)--(-59.9,23.5)--(-59.9,-13.3)
    --(59.9,-13.3)--(59.9,23.5)--(23.8,41.7);
    % Draws the ellipsis
    \fill[5,x radius=53,y radius=27.4](0,16.4)circle;
    % Draw the rear rectangle 
    \fill[5,rounded corners=10.9](-63,-32.65)rectangle(63,32.65);   
    % Draws the rectangle in the foreground
    \fill[3,rounded corners=9.5](-55.1,-32.65)rectangle(55.1,32.65);
    % Draws the red full circle
    \fill[1,radius=22](0,0)circle;  
    % Draws the inner yellow circle 
    \fill[2,radius=17.8](0,0)circle;
    % Draw the star
    \fill[1](90:14.1)\foreach\!in{0,...,4}{--(90+\!*144:14.1)}--cycle;
  \end{tikzpicture}%
\end{document}

ค่าถูกนำมาจากไฟล์ SVG ซึ่งมีความแม่นยำมากขึ้น (แต่ยังมีข้อผิดพลาดในการปัดเศษ) ส่วนที่ยากที่สุดคือเส้นที่เอียงด้านมืดในพื้นหลัง พวกเขาจะถูกวาดเป็นเส้นหนามากกับเส้นโค้งมนและร่วม

นิเมชั่น


ช่างเป็นความงาม :)
— Jean-Paul

2

Perl + TK: 555

บรรทัดใหม่มีไว้เพื่อให้อ่านเท่านั้นแม้ว่าฉันจะสูญเสียตัวแปรจำนวนมาก

use Tk;@w=(-width=>13);$c=tkinit->Canvas->pack;
$c->createPolygon($a=131,$b=163,168,150,$a,$b,$e=269,$b,232,150,$e,$b,$e,$d=225,$a,$d,-outline=>"#1f1a1a",@w);
$c->createPolygon(137,$f=169,263,$f,263,$g=231,137,$g,-outline=>$h="#".40x3,@w);
$c->createOval($a,147,$e,$g,-fill=>$h,-outline=>$h);
$c->createPolygon(143,$f,257,$f,257,$g,143,$g,-fill=>$l="#58585c",-outline=>$l,@w);
$c->createOval(175,175,$d,$d,-width=>5,-fill=>"#ffca57",-outline=>$r="#ff1c22");
$c->createPolygon((map{200+($_%2?17:6)*sin.628*$_,200+($_%2?17:6)*cos.628*$_}0..11),-fill=>$r);
MainLoop

นี่คือภาพ:

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

ฉันไม่คิดว่ามันใกล้จะสมบูรณ์แบบ แต่ใกล้พอ :)

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