Disegna il logo dei Giochi Olimpici [chiuso]


107

Sfida

Disegna il logo dei Giochi Olimpici ...

Logo dei giochi olimpici

... come personaggio (es. ASCII) arte!

Uscita campione

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

La tua arte non deve assomigliare esattamente alla mia, ma deve rappresentare gli anelli olimpici abbastanza bene da essere riconoscibile.

Regole

  • Il programma deve scrivere l'arte sulla console.
  • Vince il codice più breve (in byte, qualsiasi lingua).
  • Una soluzione che stampa anelli nei rispettivi colori (o una rappresentazione ravvicinata) riceverà un bonus di meno venti punti.

Il vincitore sarà scelto il 23 febbraio ° al termine delle Olimpiadi invernali del 2014.


Vincitori


7
20 punti bonus. Ehm, perché dovrei voler +20 al mio punteggio?
Justin,

21
Hum, questo è un marchio ...
Moala,

4
@moala Penso che questo rientri nella politica di utilizzo corretto.
Nzall,

11
A colori, è evidente che sono anelli ad incastro , non semplicemente sovrapposti . Finora sono state poche le voci.
Rob Kennedy,

6
Totalmente IANAL: ok per scrivere il software che disegna gli O ****** ic R ** gs, non ok per eseguirlo. :-)
Carl Witthoft,

Risposte:


23

APL (82) (-20 = 62)

Modifica: per cambiare, questo programma è abbastanza semplice che TryAPL lo toccherà, quindi puoi eseguirlo lì (basta incollare la linea).

Non sono sicuro di poter rivendicare il bit "color", ma li sto rappresentando in modo diverso.

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]

La console APL non supporta il colore, quindi ho usato caratteri a blocchi ombreggiati (assegnare qualsiasi tipo di altra arte ASCII sarebbe semplice come sostituire i caratteri all'inizio della stringa.)

Dovrebbero apparire come cerchi ininterrotti (a seconda del tipo di carattere.)

      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]
    ▓▓▓▓▓▓▓▓▓▓▓▓          ████████████          ▓▓▓▓▓▓▓▓▓▓▓▓    
  ▓▓            ▓▓      ██            ██      ▓▓            ▓▓  
▓▓                ▓▓  ██                ██  ▓▓                ▓▓
▓▓            ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒              ▓▓
▓▓          ░░    ▓▓  ██  ░░      ▒▒    ██  ▓▓  ▒▒            ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
  ▓▓      ░░    ▓▓      ██  ░░  ▒▒    ██      ▓▓  ▒▒        ▓▓  
    ▓▓▓▓▓▓░░▓▓▓▓          ██░░██▒▒████          ▓▓▒▒▓▓▓▓▓▓▓▓    
          ░░                ░░  ▒▒                ▒▒            
            ░░            ░░      ▒▒            ▒▒              
              ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒                

O:

      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

Commodore 64 BASIC

Scrivere direttamente sullo schermo e nella memoria colore.

Programma

Produzione:

Produzione


Ecco come lo fai con gli sprite.


1
È fantastico. +1. Possiamo ottenere un conteggio di byte?
Adam Maras,

2
Ricorda che puoi abbreviare anche comandi e numeri di riga su C64 BASIC se vuoi giocare a golf.
Gabriele D'Antona,

15
L'unica cosa che mi preoccupa di questa risposta è: come va questa arte ASCII?
Justin,

10
questa è l'arte di PETSCII
Gabriele D'Antona,

7
@Quincunx: poiché PETSCII è anche noto come CBM ASCII, questo potrebbe essere idoneo. Se si desidera utilizzare un personaggio diverso per il disegno (per renderlo più simile all'arte ASCII classica), sostituire 160 (spazio invertito) con 42 (asterisco) nella riga 100 dovrebbe fare il trucco.
Heinzi,

86

HTML Fiddle - 48 , 35 , 33 caratteri (Grazie @Dom e @cnst!)

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

Produzione:

inserisci qui la descrizione dell'immagine


2
Puoi salvare più caratteri usando: OOO<div style="margin:-10px 5px">OOinvece ... (Penso che debba essere un blocco, quindi il <div/>)
Dom Hastings,

Dato che questo non è un output da console, sei migliore del contest olimpico in
CousinCocaine

@DomHastings: buona chiamata! Risposta aggiornata :)
Briguy37,

3
Allora perché preoccuparsi di div, può semplicemente usare pinvece!
CNST

2
@PygameNerd: dipende dalla tua definizione di "arte ASCII": Sì se la tua definizione è "caratteri ASCII disposti a formare un'immagine"; no se la tua definizione è "caratteri ASCII in un editor di testo a larghezza fissa per formare un'immagine". Per quanto riguarda se viene emesso sulla console come ha detto CousinCocaine, se la definizione è "L'unità di controllo o monitoraggio di un computer, contenente la tastiera o i tasti, gli interruttori, ecc." , quindi l'output del browser Web fa parte del monitor e quindi della console (sebbene questo non sia probabilmente ciò che l'OP intendeva).
Briguy37,

76

BASH a colori - 271 - 20 = 251 - Con anelli intrecciati; 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}"

Risultato:

inserisci qui la descrizione dell'immagine


E il per divertimento uno: 61-20 = 41.

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

inserisci qui la descrizione dell'immagine


Versione LZ77:

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

13
Finora non molte risposte ottengono la sovrapposizione alternata degli anelli, quindi questo vale un voto anche se il punteggio è un po 'più alto.
Peter Taylor,

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

Penso che la tua versione bash sia valida - in nessun punto dell'OP si specifica la dimensione del grafico - ma è necessario correggere gli anelli a "V". Forse una tilde (~) per il fondo degli anelli?
AmeliaBR,

@AlterLagos: potresti trovare aggiornamenti funzionanti?
Runium,

@AmeliaBR: Sì, quello era più per divertimento, e non significava sul serio. Provato con vari. Forse questo è più di gradimento? x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"- (Sono un po 'cattivo con il 5 qui.) O anche questo potrebbe essere migliore, con in mente la sovrapposizione: x='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"- anche se potrebbe sembrare più disordinato degli altri.
Runium,

76

Sinclair BASIC su ZX Spectrum 48K (261 byte)

Elenco di BASE:

Elenco di base

Risultato finale:

Risultato

Esecuzione del programma e misurazione del codice:

Programma in esecuzione

Elenco di BASE in formato testo:

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

File TAP con il programma, adatto per emulatori o macchine reali utilizzando DivIDE o DivMMC: http://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap


17
Mi piace la parte di asciificazione :)
Thorbjørn Ravn Andersen,

1
È adorabile!
pcn

L'uso della grafica dello sprite Z80 è semplicemente geniale !! PS sottrae 20 punti per i colori.
Tomas,

È così sporco generare arte regolare e poi trarne arte ASCII. :)
undergroundmonorail

Potresti includere il codice sorgente in un modulo in grado di copiare?
Paŭlo Ebermann,

44

Quindi in realtà non ho letto correttamente, è arte ASCII, quindi suppongo che questo non sia valido. Oops!


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

In Chrome:

Cos'è questo!  Una bandiera olimpica per le formiche?

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
Puoi avvicinare un po 'i colori senza penalità: blu #06f#fa0#193
:,

2
Dato che questo non è un output per console, sei migliore del contest olimpico in
CousinCocaine

39

Rubino: 198 caratteri - 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*''}*$/

(Nota che ^[sono singoli caratteri.)

Esecuzione di esempio:

logo di giochi olimpici


37

Mathematica - 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}]

Ecco l'uscita

inserisci qui la descrizione dell'immagine

Un'altra versione, basata sulla rasterizzazione della grafica vettoriale

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}]

inserisci qui la descrizione dell'immagine


2
Ottieni punti per l'output più bello.
Michael Stern,

Bel lavoro. Ho pubblicato la mia versione del tuo codice.
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

Ritengo che questo valga come "arte ASCII", sebbene non scriva sulla console. Produzione:

Anelli olimpici

Questo potrebbe essere giocato un po 'di più.


19
Se questa è l'arte ASCII, è sicuramente la prima che abbia visto usare asterischi ruotati.
TheBlastOne

2
Sono sicuro che non sarà l'ultimo.
Pseudonimo del

25

Script di comando di Windows - 112 percento di byte

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

Anelli olimpici al 100%

E, naturalmente, la versione cheat'ish obbligatoria - 4 byte

%~n0

salvato come:

@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
abbiamo bisogno di più risposte in BAT e CMD :)
Einacio,

21

Un altro tentativo in Perl, 130 120

Grazie a manatwork per l'aiuto in questo

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

Produzione:

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

3
Puoi risparmiare: 4 caratteri usando forinvece di foreach; 2 caratteri rimuovendo gli argomenti di (... )round sprintf(); 2 caratteri rimuovendo hexil parametro di; 1 carattere usando y///invece di tr///; 1 personaggio rimuovendo il finale ;.
arte

@manatwork Grazie! Non ne ho mai sentito parlare y///prima. Andrà a cercarlo ora.
ossifrage schifoso

20

Python: 157 140 138 133 122 107 caratteri

107

(grazie a manatwork )

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

uscita campione:

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

(appena iniziato questo, proverò a migliorarlo)

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:]

con un output migliore: 120 caratteri

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

uscita campione:

   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
Che dire della base 36? Questo ha 140 caratteri: print'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()]). Per quanto riguarda la versione "migliore uscita", è possibile risparmiare rjust()il secondo parametro. (E inserisci una "t" nell'intestazione di questo post.)
arte

Stavo cercando una soluzione migliore, la tua sembra fantastica!
evuez,

1
Bel miglioramento con bin(). Ma perché lo usi str()intorno? bin()il valore di ritorno è già str.
arte

3
La quinta riga non dovrebbe essere 010000010100000101000101000001010000010? I due anelli inferiori mi sembrano un po 'spezzati.
ossifrage schifoso

@manatwork davvero, non ci ho pensato!
evuez,

17

Perl, 177 163

Una versione migliorata grazie a 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;

Produzione:

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

2
Evviva Perl! Un paio di risparmi extra: invece di usare "\n"as $r, puoi usare le $/impostazioni predefinite "\n", letterali letterali potrebbero anche salvarti di più in un paio di posti. Puoi anche salvare 1 carattere in più usando $s=$"x3invece di $s=" ". Spero che aiuti!
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);}

Questo avrebbe potuto essere giocato a golf un po 'di più.

Questo deve essere eseguito su un Tektronix 4010 (o un emulatore come xterm -t). Produzione:

Ooutput

Questa è davvero l'arte ASCII, dal momento che quelli sono tutti "." personaggi. E fa l'output sulla console, come richiesto. Alcuni emulatori Tektronix supportano il colore. Il mio no, quindi non potevo farlo.


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);}}

(Non compilare su jdk 1.7, richiede 1.6 o precedente)

L'output:

11100011111110001111111000111
10111110111011111011101111101
01111111000111111100011111110
10111100111001110011100111101
11100011111110001111111000111
11111101111101110111110111111
11111111000111111100011111111

Sicuramente non è un vincitore, ma dai, è Java .


2
Spare 2 caratteri da non catturare replaceAll()'s espressioni regolari e rimettendo l'intera parte trovati: replaceAll(".{29}","$0\n"). (Potrebbe esserci un'interruzione di riga aggiuntiva alla fine del file, poiché conto solo 181 caratteri nel codice pubblicato.)
manatwork

1
Ancora una cosa: rimuovere il importe inserire il nome del pacchetto direttamente nella chiamata del costruttore. Ciò riduce la dimensione a 161 caratteri.
arte

Risparmiato altri 5 byte cambiando class M{static{...in enum M{M;{.... Il prossimo grande passo è sbarazzarsi di BigInteger, è possibile? Sto cercando di fare un po 'di magia con String.format ma non ho ancora risultati.
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]

Produzione:

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

golfato da:

{-# 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
Rido ancora map.mapperché sembra divertente. : D
Vektorweg,

Sembra un po 'gonfio ...
SamB,

gli anelli o il codice?
Vektorweg,

Intendo gli anelli :-)
SamB,

11

Ruby, 9

p"\044"*5

#satira

Le regole consentono un'arte che non assomiglia esattamente all'esempio, ma deve "rappresentare gli anelli olimpici abbastanza bene da essere riconoscibile" .

Puoi riconoscere questa rappresentazione del logo dei Giochi Olimpici.


Divertente :) Da Chicago, posso dirti che è esattamente quello che ha visto il sindaco mentre corteggiava i giochi!
Dean Radcliffe,

Come Vancouverite (2010 Giochi), posso anche riferirmi. :-)
Darren Stone,

8
Mi sento come se mi stessi perdendo una battuta interna qui :-P
Maniglia della porta

2
@DoorknobofSnow Spiacente, pensavo che ti fossi confuso riguardo ai codici dei personaggi. Se non ottieni il collegamento tra le Olimpiadi e il simbolo del dollaro, non posso aiutarti.
AmeliaBR,

8
l'output è:
$
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,' '))})

Produzione:

   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         

2 ° Javascript - 25 caratteri

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

Produzione:

O O O 
 O O 

Il secondo è pigro


1
Puoi risparmiare; 2 caratteri usando "4" come separatore anziché "." E usando la cifra 4 (senza virgolette) come split()parametro; 2 caratteri rimuovendo gli ultimi 2 ;s.
arte

A (al momento) di Firefox versione solo di quanto sopra può essere ridotto ancora di più, a 172 caratteri: 'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))}).
arte

Grazie, aggiunto il tuo suggerimento, per ora lo lascerò indipendente dal browser.
Eduard Florinescu,

◯ non è ascii ...
njzk2

@ njzk2 Yup, risolto סּ_סּ
Eduard Florinescu,

11

Binario! (265 CHARS)

0001111100000000111110000000011111000
0100000001000010000000100001000000010
1000000001111100000000011111000000001
0100000011000011000001100001100000010
0001111100000000111110000000011111000
0000000010000001000001000000100000000
0000000001111100000000011111000000000

È troppo grande per vincere, ma almeno sembra bello!


Logo olimpico nella matrice.
user13107,

@ user13107 Cosa?
Dozer789,

10

PHP - 99 (-20?)

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

Questo è sicuramente riconoscibile. Dico che i miei "colori" contano; è una rappresentazione stretta.

Se non ti piace, ecco qui

GolfScript - 101 (-20?)

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

16
Dov'è il codice?
Annulla il

14
@Undo Questo è il codice ;-)
Maniglia della porta

In verità, non conosco PHP. Questo è l'unico programma / stile PHP che so scrivere. (Sicuro di aver seguito un tutorial, ma l'ho dimenticato).
Justin,

2
Il PHP non verrebbe fuori come bbbb #### rrrr bb # #rrb ybyy g # gg r bbyb ## g # rrrr y yg g yyyy gggg sullo schermo?
Lister

4
È necessario aggiungere header("Content-Type: text/plain"), l'impostazione predefinita per i server Web è text / html
Kroltan,

10

Bash + ImageMagick: 163 caratteri

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 ' .
'

Uscita campione:

.

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

10

Perl 6: 112 77 56 caratteri, 75 byte

say flip .ord.base(2).trans("01"=>" @")for"𜜜𢢢񃣡𦶲𜜜䔐㣠".comb
  • Stringhe Unicde! (la stringa sopra è "\ x1C71C \ x228A2 \ x438E1 \ x26DB2 \ x1C71C \ x4510 \ x38E0")
  • .comb fornisce un elenco dei caratteri separati in una stringa (senza argomenti comunque)
  • .ord fornisce il numero di codice carattere dal carattere
  • .base(2) restituisce una stringa con codifica base-2 di quell'int
  • .trans sostituisce le cifre con spazio e @ per una migliore visibilità
  • flip inverte i caratteri di una stringa in modo che gli 0 iniziali mancanti non rovinino il disegno.
  @@@ @@@ @@@
 @ @ @ @ @ @
@ @@@ @@@ @
 @ @@ @@ @@ @@ @
  @@@ @@@ @@@
    @ @ @ @
     @@@ @@@

edit2: soluzione più recente che utilizza parole qwote e codifica base-36

say flip :36($_).base(2).trans("01"=>" @")for<2HWC 315U 5XI9 3ESY 2HWC DN4 B8G>
  • <ABC DEF GHI> è una sintassi tra virgolette in perl6, in modo da ottenere un elenco di stringhe
  • :36($_)crea un Int da una stringa codificata base-36 in $_( forvariabile di default del ciclo)

modifica: la vecchia soluzione ha un disegno (copiato) più bello ma è più lunga:

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

10

Mathematica 185 175

10 byte salvati da mathe.

Gli anelli sotto sono ASCII 'O's.

La lettera "O", leggermente traslucida, in Century Gothic, stampata 5 volte alla dimensione del carattere = 145 punti di stampa.

Questa non è arte terminale. Tuttavia, soddisfa pienamente la definizione di Wikipedia sull'arte 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"}]

anelli olimpici


2
Dato che questo non è un output per console, sei migliore del contest olimpico in
CousinCocaine

FontSize -> può essere rimosso.
mathe

@mathe, True. Ho usato la dimensione del carattere semplicemente per rendere l'output una dimensione ragionevole.
DavidC

@DavidC Voglio dire che potresti sostituirlo FontSize -> 145con 145.
mathe

@mathe. Sì! Grazie.
DavidC

8

JavaScript: 153 caratteri

Volevo vedere se potevo farlo più velocemente usando l'algebra per rappresentare graficamente i cerchi:

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}}

( cè un array di cinque coppie (x, y), i centri dei cerchi, appiattiti per salvare dieci caratteri.)

produzione:

1110000000111111111000000011111111100000001111
1000111110001111100011111000111110001111100011
0011111111100111001111111110011100111111111001
0011111111100000001111111110000000111111111001
0011111110000111000011111000011100001111111001
1000111100001111100001110000111110000111100011
1110000000111111111000000011111111100000001111
1111111100111111111001110011111111100111111111
1111111110001111100011111000111110001111111111
1111111111100000001111111110000000111111111111

159 caratteri è un po 'più leggibile:

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}}

produzione:

   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            

In 167 caratteri abbiamo "colori":

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}}

produzione:

   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            

E con 189 caratteri , posso anche rregolare il raggio :

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 caratteri / byte *

Ecco una risposta che spinge per il conteggio dei caratteri più basso (dopo tutto questo è codice golf)

2 5⍴'○ '

Produzione:

○ ○ ○
 ○ ○ 

Il simbolo è ○, operatore cerchio APL. È possibile invece inserire una 'O', nel caso si desideri un output strettamente ASCII. Ho appena pensato che fosse appropriato usare un simbolo APL.


Solo per i calci, ecco una versione a colori (37 caratteri - 20 = 17 punteggio)

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

Output: colore suona uscita terminale ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL può essere scritto nel proprio set di caratteri a byte singolo (legacy) che associa i simboli APL ai valori superiori di 128 byte. Pertanto, ai fini del calcolo del punteggio, un programma di N caratteri che utilizza solo caratteri ASCII e simboli APL può essere considerato lungo N byte.


7

CSS, 1176 922 855 771 byte, -20 bonus di colore = 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}

Solo CSS, nessun markup necessario. Vedi il violino senza markup qui: http://jsfiddle.net/XcBMV/12/

Anelli

A colori e con la sovrapposizione corretta.


6

Perl - 12 caratteri

say"OOO\nOO"

OK, quindi non è un rendering particolarmente artistico. ;-)

Leggermente più carino:

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

6

Caricatore OL BIOS a 16 bit dell'Assemblea GAS - 617-20 = 597

Impazzire per la lunghezza qui, quindi per puro divertimento.


Non carica molto, ma carica il logo dei Giochi Olimpici come ASCII con i colori;)

Codice:

.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) Compilare ed estrarre l'immagine MBR

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

In esecuzione nell'emulatore

(Non l'ho ancora testato sul mio computer di casa ...)

qemu-system-i386 olymp.img

Risultato

inserisci qui la descrizione dell'immagine


4
Sei sicuro che l'idea di non usare le risorse esterne sia estrema, vero? +1
Adam Maras,

@AdamMaras: Sì, e c'è quello;), ho dovuto provare. Il prossimo è incorporare un carico reale di SO. O`Loader II.
Runium,

Come viene valutato se si misura il binario, supponendo che il disco avesse già un settore di avvio in modo da poter saltare le 55h AAh alla fine (insieme a qualsiasi padding associato)?
SamB,

@SamB: sarebbero 275 byte, 255 pt dove la parte di codice è di circa 91 byte e la variabile + dati del diagramma 184 byte.
Runium,

5

TI-Basic (16 byte)

Nota: TI-Basic è tokenizzato. Se ricordo bene, ClrHomee Dispsono token a un 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();
}

Compilatore turbo c ++ 3.0 realizzato.  Ho provato a rendere il codice il più breve possibile


7
1) Utilizzare Markdown per contrassegnare il blocco di codice e mantenere leggibile il codice pubblicato. 2) Dato che si tratta di una sfida con il golf del codice , prova a ridurre le dimensioni del tuo codice in modo strettamente necessario. 3) Aggiungi una linea di intestazione alla tua risposta (enfatizzata con un po 'di markup fino alle tue preferenze (di solito intestazione 1 o grassetto )), specificando la lingua utilizzata, la lunghezza del codice e il punteggio guadagnato.
arte
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.