Vẽ logo Thế vận hội Olympic [đã đóng]


107

Thử thách

Vẽ logo Thế vận hội Olympic ...

Logo Olympic Games

... như nghệ thuật nhân vật (ví dụ ASCII)!

Đầu ra mẫu

      * * *               * * *               * * *
  *           *       *           *       *           *
*               *   *               *   *               *
*               * * *               * * *               *
*           *   *   *   *       *   *   *   *           *
  *       *   *       *   *   *   *       *   *       *
      * * *               * * *               * * *
          *               *   *               *
            *           *       *           *
                * * *               * * *

Nghệ thuật của bạn không nhất thiết phải giống hệt tôi, nhưng nó phải thể hiện các vòng tròn Olympic đủ tốt để nó có thể nhận ra.

Quy tắc

  • Chương trình phải viết nghệ thuật vào bàn điều khiển.
  • Mã ngắn nhất (tính bằng byte, bất kỳ ngôn ngữ nào) sẽ thắng.
  • Một giải pháp in các vòng có màu tương ứng (hoặc đại diện gần gũi) sẽ được trao phần thưởng hai mươi điểm.

Người chiến thắng sẽ được chọn vào ngày 23 tháng 2 thứ vào cuối Thế vận hội mùa đông 2014.


Người chiến thắng


7
20 điểm thưởng. Ừm, tại sao tôi lại muốn +20 cho điểm của mình?
Justin

21
Hum, đây là một nhãn hiệu mới
moala

4
@moala Tôi nghĩ rằng điều này thuộc chính sách sử dụng hợp lý.
Nzall

11
Về màu sắc, rõ ràng là chúng là các vòng lồng vào nhau , không chỉ đơn thuần là chồng chéo . Rất ít các mục cho đến nay đã chiếm cho điều đó.
Rob Kennedy

6
Hoàn toàn IANAL: ok để viết phần mềm rút ra O ****** ic R ** gs, không ok để thực hiện nó. :-)
Carl Witthoft

Câu trả lời:


23

APL (82) (-20 = 62)

Chỉnh sửa: để thay đổi, chương trình này đủ đơn giản để TryAPL chạm vào nó, vì vậy bạn có thể chạy nó ở đó (chỉ cần dán dòng vào).

Không chắc chắn nếu tôi có thể yêu cầu bit 'màu', tôi đại diện cho tất cả chúng khác nhau.

2/' ▓█░▓▒'[1+(13↑⍉n)⌈¯13↑⍉32↑¯26↑⌈1.1×11↓n←⍉c,0,2×c,0,2×c←(⍳2/10)∊⌈5+5×1 2∘○¨⍳1e4]

Bảng điều khiển APL không hỗ trợ màu, vì vậy tôi đã sử dụng các ký tự khối được tô bóng (việc gán bất kỳ loại nghệ thuật ASCII nào khác sẽ đơn giản như thay thế các ký tự ở đầu chuỗi.)

Chúng sẽ trông giống như các vòng tròn không bị phá vỡ (tùy thuộc vào phông chữ của bạn.)

      2/' ▓█░▓▒'[1+(13↑⍉n)⌈¯13↑⍉32↑¯26↑⌈1.1×11↓n←⍉c,0,2×c,0,2×c←(⍳2/10)∊⌈5+5×1 2∘○¨⍳1e4]
    ▓▓▓▓▓▓▓▓▓▓▓▓          ████████████          ▓▓▓▓▓▓▓▓▓▓▓▓    
  ▓▓            ▓▓      ██            ██      ▓▓            ▓▓  
▓▓                ▓▓  ██                ██  ▓▓                ▓▓
▓▓            ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒              ▓▓
▓▓          ░░    ▓▓  ██  ░░      ▒▒    ██  ▓▓  ▒▒            ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
  ▓▓      ░░    ▓▓      ██  ░░  ▒▒    ██      ▓▓  ▒▒        ▓▓  
    ▓▓▓▓▓▓░░▓▓▓▓          ██░░██▒▒████          ▓▓▒▒▓▓▓▓▓▓▓▓    
          ░░                ░░  ▒▒                ▒▒            
            ░░            ░░      ▒▒            ▒▒              
              ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒                

Hoặc là:

      2/' bByRg'[1+(13↑⍉n)⌈¯13↑⍉32↑¯26↑⌈1.1×11↓n←⍉c,0,2×c,0,2×c←(⍳2/10)∊⌈5+5×1 2∘○¨⍳1e4]
    bbbbbbbbbbbb          BBBBBBBBBBBB          RRRRRRRRRRRR    
  bb            bb      BB            BB      RR            RR  
bb                bb  BB                BB  RR                RR
bb            yyyyyyyyyyyy          gggggggggggg              RR
bb          yy    bb  BB  yy      gg    BB  RR  gg            RR
bb        yy      bb  BB    yy  gg      BB  RR    gg          RR
bb        yy      bb  BB    yy  gg      BB  RR    gg          RR
bb        yy      bb  BB    yy  gg      BB  RR    gg          RR
  bb      yy    bb      BB  yy  gg    BB      RR  gg        RR  
    bbbbbbyybbbb          BByyBBggBBBB          RRggRRRRRRRR    
          yy                yy  gg                gg            
            yy            yy      gg            gg              
              yyyyyyyyyyyy          gggggggggggg                

165

Hàng hóa 64 CƠ BẢN

Viết trực tiếp trong màn hình và bộ nhớ màu.

Chương trình

Đầu ra:

Đầu ra


Đây là cách bạn làm điều này với các họa tiết.


1
Điều đó thật tuyệt. +1. Chúng ta có thể có được số byte không?
Adam Maras

2
Hãy nhớ rằng bạn có thể viết tắt các lệnh và số dòng trên C64 BASIC nếu bạn muốn chơi gôn.
Gabriele D'Antona

15
Điều duy nhất làm phiền tôi về câu trả lời này là: Nghệ thuật ascii này như thế nào?
Justin

10
đây là nghệ thuật của PETSCII
Gabriele D'Antona

7
@Quincunx: Vì PETSCII còn được gọi là CBM ASCII, nên điều này có thể đủ điều kiện. Nếu bạn muốn sử dụng một ký tự khác để vẽ (để làm cho nó trông giống nghệ thuật ASCII cổ điển hơn), thay thế 160 (không gian đảo ngược) bằng 42 (dấu hoa thị) trong dòng 100 nên thực hiện thủ thuật.
Heinzi

86

HTML Fiddle - 48 , 35 , 33 ký tự (Cảm ơn @Dom và @cnst!)

OOO<p style="margin:-15px 6px">OO

Đầu ra:

nhập mô tả hình ảnh ở đây


2
Bạn có thể lưu nhiều ký tự hơn bằng cách sử dụng: OOO<div style="margin:-10px 5px">OOthay vào đó ... (Tôi nghĩ rằng nó cần phải là một khối, do đó <div/>)
Dom Hastings

Vì đây không phải là đầu ra của giao diện điều khiển, bạn nên tham gia cuộc thi olympics kiểu tự do: codegolf.stackexchange.com/q/19050/15168
CousinCocaine

@DomHastings: Gọi tốt! Trả lời cập nhật :)
Briguy37

3
Vậy thì tại sao phải bận tâm div, chỉ có thể sử dụng pthay thế!
cnst

2
@PygameNerd: Nó phụ thuộc vào định nghĩa của bạn về "nghệ thuật ASCII": Có nếu định nghĩa của bạn là "các ký tự ASCII được sắp xếp để tạo thành một hình ảnh"; không nếu định nghĩa của bạn là "các ký tự ASCII trong trình soạn thảo văn bản có chiều rộng cố định để tạo thành một hình ảnh". Về việc nó có được xuất ra bàn điều khiển như CousinCocaine đã nói hay không, nếu định nghĩa là "Đơn vị điều khiển hoặc giám sát của máy tính, có chứa bàn phím hoặc phím, công tắc, v.v." , sau đó đầu ra trình duyệt web là một phần của màn hình và do đó là bàn điều khiển (mặc dù đây có thể không phải là mục đích của OP).
Briguy37

76

BASH có màu - 271 - 20 = 251 - Với các vòng vướng víu; P

o='_4mGA  _0mGA  _1mG\n _4m/A \A _0m/A \\_1mA /A \\\n_4mD_3m---_0mD_2m---_1mD\n _4m\A_3m/_4m/A_0m\\_3m\\A_2m/_0m/A_1m\\_2m\A _1m/\n_4mG_3mD_0m---_2mD_1m---\n_3m   A\A /A _2m\A /_1m\n _3mA G  A_2mG\n';o=${o//D/|A   |};o=${o//A/    };o=${o//G/   ---};printf "${o//_/\\e[3}"

Kết quả:

nhập mô tả hình ảnh ở đây


niềm vui của nó một: 61 - 20 = 41.

x='_4mO_3m^_0m0_2m^_1mO\n_3m V _2mV\n';printf "${x//_/\\e[3}"

nhập mô tả hình ảnh ở đây


Phiên bản LZ77:

echo H4sIALOY5VIAA12QwRXAIAhD767ghQV8CnYbXYENOnw1YqX1xk8wQGz1UiJKKRFebLX8ARsIs7g0g/djN7CdRAYC7Pf6h+5RVR3foMdTMcqHWlS3jKr5RKO/g25doJdXZ+ii75CseU2zNkGzH6HYCPKhPGmA2Wh3+7mEDHMgb/2cUPYJH2gPhtZxAQAA|base64 -d|zcat

13
Không có nhiều câu trả lời cho đến nay có được sự chồng chéo xen kẽ của các vòng đúng, vì vậy đây là giá trị nâng cao ngay cả khi điểm số cao hơn một chút.
Peter Taylor

1
bash: !/\\e[3}": event not found:(
Alter Lagos

Tôi nghĩ rằng phiên bản bash của bạn là hợp lệ - không ở đâu trong OP nó chỉ định kích thước của đồ họa - nhưng bạn cần sửa các vòng hình chữ "V". Có lẽ một dấu ngã (~) cho đáy của các vòng?
AmeliaBR

@AlterLagos: Bạn có thể tìm thấy bản cập nhật hoạt động?
Runium

@AmeliaBR: Vâng, cái đó là nhiều hơn cho niềm vui của nó, và nó không có ý nghĩa nghiêm trọng. Đã thử với nhiều. Có lẽ đây là nhiều hơn để thích? x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"- (Tôi hơi ác với 5 người ở đây.) Hoặc thậm chí điều này có thể tốt hơn, với suy nghĩ chồng chéo: x='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"- mặc dù nó có thể trông lộn xộn hơn những người khác.
Runium

76

Sinclair BASIC trên ZX Spectrum 48K (261 byte)

Danh sách cơ bản:

Danh sách cơ bản

Kết quả cuối cùng:

Kết quả

Chương trình đang chạy và đo mã:

Chương trình đang chạy

Danh sách BASIC ở định dạng văn bản:

5 INK VAL "7": CLS 
10 LET a=VAL "42": LET b=VAL "131": LET c=VAL "40": CIRCLE INK SGN PI;a,b,c: CIRCLE INK PI-PI;a+a+a,b,c: CIRCLE INK VAL "2";VAL "210",b,c
20 LET a=VAL "84": LET b=VAL "87": CIRCLE INK VAL "6";a,b,c: CIRCLE INK VAL "4";a+a,b,c
30 FOR l=PI-PI TO VAL "21": FOR c=PI-PI TO VAL "31": IF ATTR (l,c)<>VAL "63" THEN PRINT INK VAL "8";AT l,c;"*"
40 NEXT c: NEXT l

Tệp TAP với chương trình, phù hợp với trình giả lập hoặc máy thật bằng DivIDE hoặc DivMMC: http://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap


17
Tôi thích phần xác thực :)
Thorbjørn Ravn Andersen

1
Cái này thật đáng yêu!
pcnTháng

Việc sử dụng đồ họa sprite Z80 chỉ đơn giản là thể loại !! PS trừ 20 điểm cho màu sắc.
Tomas

Cảm thấy thật bẩn thỉu khi tạo ra nghệ thuật thông thường và sau đó tạo ra nghệ thuật ASCII từ nó. :)
undergroundmonorail

Bạn có thể bao gồm mã nguồn ở dạng có thể sao chép không?
Paŭlo Ebermann

44

Vì vậy, tôi đã không thực sự đọc đúng, đó là nghệ thuật ASCII, vì vậy tôi đoán điều này không hợp lệ. Úi!


HTML 121 (141 - 20)

<pre style=line-height:3px;letter-spacing:-3px><font color=#06f>O <font color=#000>O <font color=red>O
 <font color=#fa0>O <font color=#193>O

Trong Chrome:

Cái này là cái gì!  Một lá cờ Olympic cho kiến?

PHP 103 (123 - 20)

<pre style=line-height:3px;letter-spacing:-3px><?=($f='<font color=')."#06f>O ${f}#000>O ${f}red>O
 ${f}#fa0>O ${f}#193>O";

2
Bạn có thể có được màu sắc gần hơn một chút mà không bị phạt: blue : #06f, yellow : #fa0, green:#193
squeamish ossifrage

2
Vì đây không phải là đầu ra của giao diện điều khiển, bạn nên tham gia cuộc thi olympics kiểu tự do: codegolf.stackexchange.com/q/19050/15168
CousinCocaine

39

Ruby: 198 ký tự - 20 = 178

a=[*0..9].map{[' ']*35}
d=->c,x,y=0{11.times{|i|7.times{|j|a[y+j][x+i]="^[[3#{c}m#^[[0m"if[248,774,1025,1025,1025,774,248][j]&1<<i!=0}}}
d[4,0]
d[0,12]
d[1,24]
d[3,6,3]
d[2,18,3]
$><<a.map{|r|r*''}*$/

(Lưu ý ^[là các ký tự đơn.)

Chạy mẫu:

logo trò chơi olympic


37

Toán học - 185

c[x_, y_] := 
 Table[Boole[Abs[(i - x)^2 + (j - y)^2 - 16] < 4], {i, 0, 15}, {j, 0, 
   30}]
MatrixForm@
 Replace[Blue c[5, 4] + Black c[5, 14] + Red c[5, 24] + 
   Yellow c[9, 9] + Green c[9, 19], {0 -> "", 
   c_ + _ | c_ :> Style["*", c]}, {2}]

Đây là thông số

nhập mô tả hình ảnh ở đây

Một phiên bản khác, dựa trên việc rasterization đồ họa vector

MatrixForm@
 Replace[ImageData@
   Rasterize[
    Graphics[{Blue, Circle[{4, 9}, 4], Black, Circle[{14, 9}, 4], Red,
       Circle[{24, 9}, 4], Yellow, Circle[{9, 4}, 4], Green, 
      Circle[{19, 4}, 4]}], ImageSize -> {30, 15}], {c_ :> 
    Style["*", RGBColor@c]}, {2}]

nhập mô tả hình ảnh ở đây


2
Bạn nhận được điểm cho đầu ra đẹp nhất.
Michael Stern

Công việc tốt đẹp. Tôi đã đăng phiên bản mã của riêng bạn.
Mr.Wizard

34

PostScript, 203 (-20 = 183)

%!
/Courier findfont 12 scalefont setfont
/l { setrgbcolor translate 20 { 0 30 moveto (*) show 18 rotate } repeat } def
140 200 0 0 1 l 45 -30 1 1 0 l 45 30 0 0 0 l 45 -30 0 1 0 l 45 30 1 0 0 l
showpage

Tôi duy trì rằng điều này được tính là "nghệ thuật ASCII", mặc dù nó không ghi vào bảng điều khiển. Đầu ra:

Vòng Olympic

Điều này có thể được chơi golf nhiều hơn một chút.


19
Nếu đây là nghệ thuật ASCII, thì đây chắc chắn là lần đầu tiên tôi thấy sử dụng các dấu sao xoay.
TheBlastOne

2
Tôi chắc chắn nó sẽ không phải là người cuối cùng.
Bút danh

25

Tập lệnh lệnh Windows - 112 phần trăm byte

%1%0 @echo. set
%2.= oooo 
%2,=o    o
%1%.%%.%%.%&%1%,%%,%%,%&%1o  %.%%.%  o&%1%.%%.%%.%&%1   %,%%,%&%1   %.%%.%

Nhẫn Olympic 100%

Và tất nhiên, phiên bản gian lận bắt buộc - 4 byte

%~n0

lưu dưới dạng:

@echo. oooo  oooo  oooo&echo.o    oo    oo    o&echo.o   oooo  oooo   o&echo. oooo  oooo  oooo&echo.   o    oo    o&echo.    oooo  oooo.cmd

10
chúng tôi cần nhiều câu trả lời hơn trong BAT và CMD :)
Einacio

21

Một nỗ lực khác ở Perl, 130 120

Cảm ơn manatwork đã giúp với điều này

for(qw(15005 40410 802a0 80a28 41414 15005 808 2a0)){$s=sprintf"%20b",hex;$s=~y/01/ #/;print$s.substr(reverse($s),1).$/}

Đầu ra:

   # # #         # # #         # # #   
 #       #     #       #     #       # 
#         # # #         # # #         #
#       # #   # #     # #   # #       #
 #     # #     # #   # #     # #     # 
   # # #         # # #         # # #   
        #       #     #       #        
          # # #         # # #          

3
Bạn có thể dự phòng: 4 ký tự bằng cách sử dụng forthay vì foreach; 2 nhân vật bằng cách loại bỏ (... )vòng sprintf()tranh cãi 's; 2 ký tự bằng cách xóa hextham số; 1 ký tự bằng cách sử dụng y///thay vì tr///; 1 ký tự bằng cách loại bỏ cuối cùng ;.
thao tác

@manatwork Cảm ơn! Tôi thậm chí chưa bao giờ nghe nói y///trước đây. Sẽ đi và tìm nó bây giờ.
squossish ossifrage

20

Python: 157 140 138 133 122 107 ký tự

107

(nhờ thao tác )

for o in"jzd360 1zlpwci 3ydgr29 20pzv5u jzd360 149ytc b8n40".split():print bin(int(o,36))[2:].rjust(34,'0')

đầu ra mẫu:

0001001000000001001000000001001000
0100000010000100000010000100000010
1000000001001000000001001000000001
0100000110000110000110000110000010
0001001000000001001000000001001000
0000000100000010000100000010000000
0000000001001000000001001000000000

157

print'\n'.join(['{0:b}'.format(o).rjust(39,'0') for o in [45099909288,137984246274,275230249985,276241138945,137984246274,45099909288,1078001920,352343040]])

122

(chỉ mới bắt đầu cái này, tôi sẽ cố gắng cải thiện nó)

h=lambda x:bin(int("15bb511iun9aqulod22j8d4 ho8skh  "[x::8],36))[2:].rjust(20)
for x in range(8):print h(x)+h(x)[::-1][1:]

với đầu ra tốt hơn: 120 ký tự

for o in"jzd360 1zlpwci 3ydgr29 20pzv5u jzd360 149ytc b8n40".split():print bin(int(o,36))[2:].replace('0',' ').rjust(34)

đầu ra mẫu:

   1  1        1  1        1  1   
 1      1    1      1    1      1 
1        1  1        1  1        1
 1     11    11    11    11     1 
   1  1        1  1        1  1   
       1      1    1      1       
         1  1        1  1         

1
Còn cơ sở 36 thì sao? Điều này có 140 ký tự : print'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()]). Về phiên bản đầu ra tốt hơn, bạn có thể rjust()sử dụng tham số thứ hai. (Và chèn một người nổi tiếng trong tiêu đề của bài đăng này.)
manatwork

Tôi đang tìm kiếm một giải pháp tốt hơn, bạn trông thật tuyệt!
evuez

1
Cải thiện tốt đẹp với bin(). Nhưng tại sao bạn sử dụng str()xung quanh nó? bin()Giá trị trả lại đã có str.
thao tác

3
Không phải dòng thứ 5 phải 010000010100000101000101000001010000010không? Hai chiếc nhẫn phía dưới trông hơi vỡ đối với tôi.
squossish ossifrage

@manatwork thực sự, đã không nghĩ về điều đó!
evuez

17

Perl, 177 163

Một phiên bản cải tiến nhờ có Dom Hastings:

$s=$"x3;print"  .-~-. "x3 .$/." /$s  \\"x3 .$/."|$s$s "x4 ."
 \\$s ./~\\.$s./~\\.$s /
  '-./'$s'\\-/'$s'\\.-'
"."$s |$s"x3 ."
$s "." \\$s  /"x2 ."
$s"."$s'-.-'"x2;

Đầu ra:

  .-~-.   .-~-.   .-~-. 
 /     \ /     \ /     \
|       |       |       |       
 \    ./~\.   ./~\.    /
  '-./'   '\-/'   '\.-'
    |       |       |   
     \     / \     /
      '-.-'   '-.-'

2
Hoan hô cho Perl! Một vài khoản tiết kiệm bổ sung: thay vì sử dụng "\n"như $r, bạn có thể sử dụng $/mặc định này "\n", các dòng mới theo nghĩa đen thậm chí có thể giúp bạn tiết kiệm nhiều hơn ở một vài nơi. Bạn cũng có thể tiết kiệm thêm 1 char bằng cách sử dụng $s=$"x3chứ không phải $s=" ". Mong rằng sẽ giúp!
Dom Hastings

15

C, 257 byte

#include <stdio.h>
d(i,j){int r=35;float x=r,y=0;while(--r>0){char s[8]={29,(((int)y+j)/32)+32,(((int)y+j)%32)+96,(((int)x+i)/32)+32,(((int)x+i)%32)+64,31,'.',0};puts(s);x-=0.2*y;y+=0.2*x;}}main(){d(140,200);d(185,170);d(230,200);d(275,170);d(320,200);}

Điều này có thể đã được chơi golf nhiều hơn một chút.

Điều này phải được chạy trên Tektronix 4010 (hoặc trình giả lập như xterm -t). Đầu ra:

Xuất chi

Đây thực sự là nghệ thuật ASCII, vì tất cả đều là '.' nhân vật. Và nó xuất ra giao diện điều khiển, theo yêu cầu. Một số trình giả lập Tektronix hỗ trợ màu. Của tôi thì không, vì vậy tôi không thể làm điều đó.


12

Java, 181 179 161 156 byte

enum M{M;{System.out.print(new java.math.BigInteger("2b13bp4vx9rreb1742o0tvtpxntx0mgsfw48c4cf",36).toString(2).replaceAll(".{29}","$0\n"));System.exit(1);}}

(Không biên dịch trên jdk 1.7, yêu cầu 1.6 hoặc thấp hơn)

Đầu ra:

11100011111110001111111000111
10111110111011111011101111101
01111111000111111100011111110
10111100111001110011100111101
11100011111110001111111000111
11111101111101110111110111111
11111111000111111100011111111

Chắc chắn không phải là người chiến thắng, nhưng thôi nào, đó là java .


2
Dự phòng 2 ký tự bằng cách không bắt trong replaceAll()biểu thức chính quy và đặt lại toàn bộ phần khớp : replaceAll(".{29}","$0\n"). (Có thể có thêm một dòng ngắt ở cuối tệp của bạn, vì tôi chỉ đếm được 181 ký tự trong mã được đăng.)
manatwork

1
Một điều nữa: loại bỏ importvà đặt tên gói trực tiếp trong lệnh gọi hàm tạo. Điều đó làm giảm kích thước xuống 161 ký tự.
thao tác

Đã tiết kiệm thêm 5 byte bằng cách thay đổi class M{static{...thành enum M{M;{.... Bước tiến lớn tiếp theo là loại bỏ BigInteger, điều đó có thể không? Tôi đang cố gắng thực hiện một số phép thuật với String.format nhưng chưa có kết quả.
Yurii Shylov

12

Haskell, 200

main=mapM(putStrLn.map(\b->if b then '#' else ' '))$(map.map)(\(x,y)->or$map(\(n,m)->(<2).abs.(18-)$sqrt$(n-x)^2+(m-y*2)^2)$[(20,20),(60,20),(100,20),(40,40),(80,40)])$map(zip[0..120].repeat)[0..30]

Đầu ra:

            #################                       #################                       #################            
         ########### ###########                 ########### ###########                 ########### ###########         
      #######               #######           #######               #######           #######               #######      
     #####                     #####         #####                     #####         #####                     #####     
   #####                         #####     #####                         #####     #####                         #####   
  #####                           #####   #####                           #####   #####                           #####  
 #####                             ##### #####                             ##### #####                             ##### 
 ####                               #### ####                               #### ####                               #### 
 ####                               #### ####                               #### ####                               #### 
 ###                                 ### ###                                 ### ###                                 ### 
 ####                           #################                       #################                           #### 
 ####                        ########### ###########                 ########### ###########                        #### 
 #####                    #######  ##### #####  #######           #######  ##### #####  #######                    ##### 
  #####                  #####    #####   #####    #####         #####    #####   #####    #####                  #####  
   #####               #####     #####     #####     #####     #####     #####     #####     #####               #####   
     #####            #####    #####         #####    #####   #####    #####         #####    #####            #####     
      #######        #####  #######           #######  ##### #####  #######           #######  #####        #######      
         ########### ###########                 ########### ###########                 ########### ###########         
            #################                       #################                       #################            
                     ###                                 ### ###                                 ###                     
                     ####                               #### ####                               ####                     
                     ####                               #### ####                               ####                     
                     #####                             ##### #####                             #####                     
                      #####                           #####   #####                           #####                      
                       #####                         #####     #####                         #####                       
                         #####                     #####         #####                     #####                         
                          #######               #######           #######               #######                          
                             ########### ###########                 ########### ###########                             
                                #################                       #################                                

đánh gôn ra khỏi:

{-# LANGUAGE NoMonomorphismRestriction #-}

olympMids = [(1,1),(3,1),(5,1),(2,2),(4,2)]
circleRadius = 0.9
circleBorder = 0.1
scaleFactor = 20
verticalScale = 0.5

distance :: Floating a => (a,a) -> (a,a) -> a
distance (x,y) (x2,y2) = sqrt $ (x2-x)^2 + (y2-y)^2

match :: (Floating a, Ord a) => (a,a) -> (a,a) -> Bool
match v v2 = (<circleBorder) . abs . (circleRadius-) $ distance v v2

matchOlymp :: (Floating a, Ord a) => (a,a) -> Bool
matchOlymp v = or $ map (match $ scale v) $ olympMids
  where
    scale (x,y) = (x / scaleFactor, y / scaleFactor / verticalScale)

board :: (Enum a, Num a) => a -> a -> [[(a, a)]]
board lx ly = map (zip [0..lx] . repeat) [0..ly]

printOlymp = mapM (putStrLn . map to) $ (map.map) matchOlymp $ board 120 30

main = printOlymp

to :: Bool -> Char
to True = '#'
to False = ' '

2
Tôi vẫn cười map.mapvì nó nghe buồn cười. : D
Vektorweg

Có vẻ như bị cồng kềnh ...
SamB

Những chiếc nhẫn hay mật mã?
Vektorweg

Ý tôi là những chiếc nhẫn :-)
SamB

11

Ruby, 9

p"\044"*5

#satire

Các quy tắc cho phép nghệ thuật trông không giống như ví dụ, nhưng nó phải "đại diện cho các vòng tròn Olympic đủ tốt để nó có thể nhận ra" .

Bạn có thể nhận ra đại diện này của logo Thế vận hội Olympic.


Hài hước :) Là một người Chicago, tôi có thể nói với bạn đó chính xác là những gì thị trưởng nhìn thấy khi anh ta tán tỉnh các trò chơi!
Dean Radcliffe

Là một Vancouverite (Trò chơi 2010), tôi cũng có thể liên quan. :-)
Darren Stone

8
Tôi cảm thấy như đang bỏ lỡ một trò đùa bên trong ở đây :-P
Doorknob

2
@DoorknobofSnow Xin lỗi, tôi mặc dù bạn đang nhầm lẫn về mã ký tự. Nếu bạn không có kết nối giữa Thế vận hội và ký hiệu đô la, tôi không thể giúp bạn ở đó.
AmeliaBR

8
đầu ra là:
$
Roger

11

Javascript - 170 185 189 Chars

'jzd36071zlpwci73ydgr29720pzv5u7jzd3607149ytc7b8n40'.split(7).map(function(x){a=parseInt(x,36).toString(2);console.log((Array(35-a.length).join(0)+a).replace(/0/g,' '))})

Đầu ra:

   1  1        1  1        1  1    
 1      1    1      1    1      1  
1        1  1        1  1        1 
 1     11    11    11    11     1  
   1  1        1  1        1  1    
       1      1    1      1        
         1  1        1  1         

Javascript thứ 2 - 25 ký tự

console.log('O O O\n O O')

Đầu ra:

O O O 
 O O 

Thứ hai là lười biếng


1
Bạn có thể rảnh rỗi; 2 ký tự bằng cách sử dụng nhóm 4 4 làm phân cách thay vì sử dụng. Và sử dụng chữ số 4 (không có dấu ngoặc kép) làm split()tham số; 2 ký tự bằng cách loại bỏ 2 ;s cuối cùng .
manatwork

Phiên bản chỉ dành cho Firefox ở trên có thể được giảm hơn nữa, xuống còn 172 ký tự : 'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))}).
manatwork

Cảm ơn, đã thêm đề xuất của bạn, tôi sẽ để trình duyệt độc lập ngay bây giờ.
Eduard Florinescu

Không phải là ascii ...
njzk2

@ njzk2 Yup, đã giải quyết nó _סּ
Eduard Florinescu

11

Nhị phân! (265 PHÍ)

0001111100000000111110000000011111000
0100000001000010000000100001000000010
1000000001111100000000011111000000001
0100000011000011000001100001100000010
0001111100000000111110000000011111000
0000000010000001000001000000100000000
0000000001111100000000011111000000000

Nó quá lớn để giành chiến thắng, nhưng ít nhất nó trông rất tuyệt!


Logo Olympic trong Ma trận.
user13107

@ user13107 Cái gì?
Dozer789

10

PHP - 99 (-20?)

 bbbb  ####  rrrr
b    b#    #r    r
b   ybyy  g#gg   r
 bbyb  ##g#  rrrr
   y    yg    g
    yyyy  gggg

Đó là điều chắc chắn có thể nhận ra. Tôi nói rằng "màu sắc" của tôi đếm; đó là một đại diện gần gũi.

Nếu bạn không thích điều đó, thì đây là

GolfScript - 101 (-20?)

' bbbb  ####  rrrr
b    b#    #r    r
b   ybyy  g#gg   r
 bbyb  ##g#  rrrr
   y    yg    g
    yyyy  gggg'

16
Mã ở đâu?
Hoàn tác

14
@Undo Đó mã ;-)
Doorknob

Trong thực tế, tôi không biết PHP. Đó là chương trình / phong cách PHP duy nhất tôi biết viết. (Chắc chắn tôi đã trải qua một hướng dẫn, nhưng tôi đã quên nó).
Justin

2
Không phải PHP sẽ xuất hiện dưới dạng bbbb #### rrrr bb # #rrb ybyy g # gg r bbyb ## g # rrrr y yg g yyyy gggg trên màn hình?
Ông Lister

4
Bạn cần thêm header("Content-Type: text/plain"), mặc định cho các máy chủ web là văn bản / html
Kroltan

10

Bash + ImageMagick: 163 ký tự

e=ellipse
c=,10,5,0,360
convert -size 70x20 xc:black +antialias -stroke white -fill none -draw "$e 10,5$c$e 34,5$c$e 58,5$c$e 22,10$c$e 46,10$c" xpm:-|tr -dc ' .
'

Đầu ra mẫu:

.

     ...........             ...........             ...........
   ....       ....         ....       ....         ....       ....
 ...             ...     ...             ...     ...             ...
..                 ..   ..                 ..   ..                 ..
..                 ..   ..                 ..   ..                 ..
.                ...........             ...........                .
..             ......   ......         ......   ......             ..
..           ...   ..   ..   ...     ...   ..   ..   ...           ..
 ...        ..   ...     ...   ..   ..   ...     ...   ..        ...
   ....     ......         ......   ......         ......     ....
     ...........             ...........             ...........
            ..                 ..   ..                 ..
            ..                 ..   ..                 ..
             ...             ...     ...             ...
               ....       ....         ....       ....
                 ...........             ...........

10

Perl 6: 112 77 56 ký tự, 75 byte

say flip .ord.base(2).trans("01"=>" @")for"𜜜𢢢񃣡𦶲𜜜䔐㣠".comb
  • Chuỗi Unicde! (chuỗi trên là "\ x1C71C \ x228A2 \ x438E1 \ x26DB2 \ x1C71C \ x4510 \ x38E0")
  • .comb đưa ra một Danh sách các ký tự riêng biệt trong Chuỗi (dù sao không có đối số)
  • .ord cho mã số ký tự từ ký tự
  • .base(2) trả về một chuỗi với mã hóa cơ sở 2 của Int đó
  • .trans thay thế các chữ số bằng dấu cách và @ để nhìn rõ hơn
  • flip đảo ngược các ký tự của chuỗi để thiếu 0 dẫn đầu không làm rối bản vẽ.
  @@@ @@@ @@@
 @ @ @ @ @ @
@ @@@ @@@ @
 @ @@ @@ @@ @@ @
  @@@ @@@ @@@
    @ @ @ @
     @@@ @@@

edit2: giải pháp mới hơn bằng cách sử dụng các từ qwote và mã hóa cơ sở 36

say flip :36($_).base(2).trans("01"=>" @")for<2HWC 315U 5XI9 3ESY 2HWC DN4 B8G>
  • <ABC DEF GHI> là một cú pháp trích dẫn trong perl6, vì vậy bạn nhận được một danh sách các Chuỗi
  • :36($_)tạo một Int từ một chuỗi được mã hóa cơ sở 36 trong $_( forbiến mặc định của vòng lặp)

chỉnh sửa: giải pháp cũ có bản vẽ (sao chép) đẹp hơn nhưng dài hơn:

  say flip :36($_).base(2).trans("01"=>" o")for<KPVBKQ0 1RE099TU 3IFSZG1T 3IWIUAYP 1SDK5282 KPVBKQ0 HTTBLS 5TRXMO>
   ooooooooo
 oooooo
oooooooo
oooooooooo
 oooooooooo
   ooooooooo
        ồ
          oooooo

10

Toán học 185 175

10 byte được lưu bởi mathe.

Các vòng bên dưới là ASCII 'O's.

Chữ "O", hơi mờ, trong Century Gothic, được in 5 lần ở cỡ chữ = 145 điểm máy in.

Đây không phải là nghệ thuật đầu cuối. Tuy nhiên, nó hoàn toàn thỏa mãn định nghĩa của Wikipedia về nghệ thuật Ascii: http://en.wikipedia.org/wiki/ASCII_art .

Graphics[{Opacity@.8,Style["O",#]~Text~#2&@@@{{Blue,{-1.5,1}},{Black,{0,1}},{Red,{1.5,1}},{Orange,{-.8,.4}},{Darker@Green,{.8,.4}}}},BaseStyle->{145,FontFamily->"Century Gothic"}]

vòng Olympic


2
Vì đây không phải là đầu ra của giao diện điều khiển, bạn nên tham gia cuộc thi olympics kiểu tự do: codegolf.stackexchange.com/q/19050/15168
CousinCocaine

FontSize -> có thể gỡ bỏ.
mathe

@ tiện, Đúng. Tôi chỉ sử dụng kích thước phông chữ để làm cho đầu ra có kích thước hợp lý.
DavidC

@DavidC Ý tôi là bạn có thể thay thế FontSize -> 145bằng 145.
mathe

@ tiện. Đúng! Cảm ơn.
DavidC

8

JavaScript: 153 ký tự

Tôi muốn xem liệu tôi có thể làm điều đó nhanh hơn bằng cách sử dụng đại số để thực sự vẽ biểu đồ cho các vòng tròn không:

s="";c=[3,7,11,7,19,7,7,4,15,4];for(y=10;y>0;y--){s+="\n";for(x=0;x<23;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-9;t&=(d<0?-d:d)>3}s+=t}}

( clà một mảng gồm năm (x, y) cặp, tâm của các vòng tròn, được làm phẳng để lưu mười ký tự.)

đầu ra:

1110000000111111111000000011111111100000001111
1000111110001111100011111000111110001111100011
0011111111100111001111111110011100111111111001
0011111111100000001111111110000000111111111001
0011111110000111000011111000011100001111111001
1000111100001111100001110000111110000111100011
1110000000111111111000000011111111100000001111
1111111100111111111001110011111111100111111111
1111111110001111100011111000111110001111111111
1111111111100000001111111110000000111111111111

159 ký tự dễ đọc hơn một chút:

s="";c=[3,7,11,7,19,7,7,4,15,4];for(y=10;y>0;y--){s+="\n";for(x=0;x<23;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-9;t&=(d<0?-d:d)>3}s+=t?" ":t}}

đầu ra:

   0000000         0000000         0000000    
 000     000     000     000     000     000  
00         00   00         00   00         00 
00         0000000         0000000         00 
00       0000   0000     0000   0000       00 
 000    0000     0000   0000     0000    000  
   0000000         0000000         0000000    
        00         00   00         00         
         000     000     000     000          
           0000000         0000000            

Trong 167 ký tự chúng ta có "màu sắc":

s="";c=[3,7,11,7,19,7,7,4,15,4];for(y=10;y>0;y--){s+="\n";for(x=0;x<23;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-9;t&=(d<0?-d:d)>3;h=t?i:h}s+=t?" ":h}}

đầu ra:

   8888888         0000000         2222222    
 888     888     000     000     222     222  
88         88   00         00   22         22 
88         8844400         0066622         22 
88       4444   0044     6600   2266       22 
 888    4444     0004   6000     2226    222  
   8888888         0000000         2222222    
        44         44   66         66         
         444     444     666     666          
           4444444         6666666            

Và với 189 ký tự , tôi cũng có thể rđiều chỉnh bán kính :

r=5;s="";c=[r,0,2*r+1,r,3*r+2,0,4*r+3,r,5*r+4,0];for(y=-r;y<3*r;y++){s+="\n";for(x=0;x<9*r;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-r*r;t&=(d<0?-d:d)>r;h=t?i:h}s+=t?" ":h}}

http://jsfiddle.net/mblase75/5Q6BX/


7

APL, 8 ký tự / byte *

Đây là một câu trả lời thúc đẩy số lượng char thấp nhất (đây là mã golf)

2 5⍴'○ '

Đầu ra:

○ ○ ○
 ○ ○ 

Biểu tượng là, toán tử vòng tròn APL. Thay vào đó, bạn có thể đặt 'O', trong trường hợp bạn muốn đầu ra ASCII đúng. Tôi chỉ nghĩ rằng nó phù hợp để sử dụng một biểu tượng APL.


Chỉ dành cho đá, đây là phiên bản màu (37 ký tự - 20 = 17 điểm)

2 20⍴'m',⍨¯2↓3↓∈(⊂'m○ ^[[3'),⍪'40132 '
                      ‾‾ ← single Esc character, type Ctrl+V Esc on the terminal

Output: vòng màu đầu ra thiết bị đầu cuối ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL có thể được viết ở riêng (di sản) charset byte đơn của nó mà các bản đồ ký tự APL đến trên 128 giá trị byte. Do đó, với mục đích ghi điểm, một chương trình gồm các ký tự N chỉ sử dụng các ký tự ASCII và các ký hiệu APL có thể được coi là dài N byte.


7

CSS, 1176 922 855 771 byte, phần thưởng màu -20 = 751

html,head,title,body{display:block; color:transparent; font:bold 1em/1 monospace; height:0}
link,meta,style{display:none}
:before,:after{float:left; color:#000; white-space:pre;
content:'   @@@@@@@\A  @@@     @@@\A@@         @@ \A            @@\A@@         @@\A@@         @@\A  @@@     @@@\A    @@@@  @'}
html:before{color:blue}
title:before,title:after{color:blue; position:absolute; left:0; top:3em; content:'@@'}
title:after{color:red; top:7em; content:'                                   @@'}
head:after{color:red}
body:before{clear:left; content:'     '}
body:after,html:after{position:relative; top:-5em; color:#EC0;
content:'    @  @@@@\A   @@@     @@@\A  @@         @@\A  @@         @@\A  @@\A  @@         @@\A   @@@     @@@\A     @@@@@@@'}
html:after{color:#090}

Chỉ CSS, không cần đánh dấu. Xem fiddle markupless tại đây: http://jsfiddle.net/XcBMV/12/

Nhẫn

Trong màu sắc, và với sự chồng chéo chính xác.


6

Perl - 12 ký tự

say"OOO\nOO"

OK, vì vậy nó không phải là một kết xuất đặc biệt nghệ thuật. ;-)

Hơi dễ thương:

perl -MTerm::ANSIColor=:constants -E'say ON_BRIGHT_WHITE,BLUE,O,BLACK,O,RED,O,$/,YELLOW,O,GREEN,O,RESET'

6

Bộ nạp OL OL 16 bit của GAS hội - 617 - 20 = 597

Phát điên về chiều dài ở đây, vì vậy chỉ cho niềm vui của nó.


Nó không tải nhiều, nhưng nó tải logo Thế vận hội Olympic dưới dạng ASCII với màu sắc;)

Mã số:

.code16;S:jmp o;nop;o:mov $1984,%ax;mov %ax,%ds;mov %ax,%es;movw $t,%si;r:lodsb;or %al,%al;jz q;cmp $33,%al;jg k;movb $0,c;call X;inc %dh;mov $0,%dl;call G;jmp r;k:sub $48,%al;mov %al,%cl;add %al,c;lodsb;cmp $32,%al;je v;mov %al,%bl;and $15,%bl;mov $35,%al;v:mov $9,%ah;mov $0,%bh;mov $0,%ch;int $16;call X;mov c,%dl;call G;jmp r;q:ret;G:mov $2,%ah;int $16;X:mov $3,%ah;mov $0,%bh;int $16;ret;c:.byte 0;t:.asciz "3 5A9 5H9 5D!1 1A7 1A5 1H7 1H5 1D7 1D!1A9 1A4N9 1H4B9 1D!1A7 1N1 1A3 1H1 1N5 1B1 1H3 1D1 1B7 1D!1 1A5 1N1 1A5 1H1 1N3 1B1 1H5 1D1 1B5 1D!3 4A1N9 4H1B9 5D!8 1N7 1N5 1B7 1B!9 1 5N9 5B!";.=S+510;.word 0xaa55

(Linux) Xây dựng và trích xuất hình ảnh MBR

as -o olymp.o olymp.S
objcopy -O binary olymp.o olymp.img

Chạy trong trình giả lập

(Chưa thử nghiệm nó trên máy tính ở nhà của tôi ...)

qemu-system-i386 olymp.img

Kết quả

nhập mô tả hình ảnh ở đây


4
Bạn chắc chắn có ý tưởng không sử dụng tài nguyên bên ngoài đến mức cực đoan, phải không? +1
Adam Maras

@AdamMara: Vâng, và có thế;), đã phải thử. Tiếp theo là kết hợp tải thực tế của HĐH. Trình tải II.
Runium

Làm thế nào để ghi điểm nếu bạn đo nhị phân, giả sử rằng đĩa đã có khu vực khởi động để bạn có thể bỏ qua 55h AAh ở cuối (cùng với bất kỳ phần đệm liên quan nào)?
SamB

@SamB: Đó sẽ là 275 byte, 255 pt trong đó phần mã khoảng 91 byte và dữ liệu biến + lô 184 byte.
Runium

5

TI-Basic (16 byte)

Lưu ý: TI-Basic được mã hóa. Nếu tôi nhớ chính xác ClrHomeDisplà mã thông báo một byte.

ClrHome
Disp "O O O"," O O

4
#include<iostream.h>
#include<conio.h>
#define tc textcolor

void circle(int x,int y,int k)
{
  tc(k);
  int n;
  for(n=0;n<=6;n++)
  {

    if(n==0||n==6)
    {
      gotoxy(x+3,y+n);
      cprintf("* * *");
    }
    else if(n==1||n==5)
    {
      gotoxy(x+1,y+n);
      cprintf("*");
      gotoxy(x+9,y+n);
      cprintf("*");
    }
    else if(n>1&&n<5)
    {
      gotoxy(x,y+n);
      cprintf("*");
      gotoxy(x+10,y+n);
      cprintf("*");
    }
  }
}

void main()
{
  clrscr();
  circle(1,1,BLUE);
  circle(14,1,WHITE);
  circle(27,1,RED);
  circle(8,4,YELLOW);
  circle(21,4,GREEN);
  _setcursortype(0);
  getch();
}

Được thực hiện trong trình biên dịch turbo c ++ 3.0.  Đã thử t làm cho mã càng ngắn càng tốt


7
1) Vui lòng sử dụng Markdown để đánh dấu khối mã và giữ cho mã được đăng có thể đọc được. 2) Vì đây là một thử thách chơi gôn mã , vui lòng cố gắng giảm kích thước mã của bạn xuống mức cần thiết. 3) Vui lòng thêm một dòng tiêu đề vào câu trả lời của bạn (nhấn mạnh với một số đánh dấu tùy theo sở thích của bạn (thường là tiêu đề 1 hoặc in đậm )), chỉ định ngôn ngữ được sử dụng, độ dài của mã và điểm số kiếm được.
thao tác
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.