Défi
Dessinez le logo des Jeux Olympiques ...
... comme un personnage (par exemple, ASCII)!
Exemple de sortie
* * * * * * * * *
* * * * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * *
* * * *
* * * * * *
Votre art ne doit pas nécessairement ressembler au mien, mais il doit bien représenter les anneaux olympiques pour être reconnaissable.
Règles
- Le programme doit écrire l’art sur la console.
- Le code le plus court (en octets, toutes les langues) l'emporte.
- Une solution qui imprime des anneaux dans leurs couleurs respectives (ou une représentation proche) se verra attribuer un bonus de moins vingt points.
Le gagnant sera choisi le 23 Février rd à la fin des Jeux olympiques d' hiver de 2014.
Gagnants
- Or : marinus - APL, 62 points
- Argent : Ayiko - Perl 6, 75 points
Bronze : evuez - Python, 107 points
Choix populaire : Danko Durbić - Commodore 64 BASIC
Réponses:
APL (82) (-20 = 62)
Edit: pour faire changement, ce programme est assez simple pour que TryAPL le touche, vous pouvez donc l'exécuter ici (il suffit de coller la ligne).
Je ne suis pas sûr de pouvoir revendiquer le bit 'couleur', je les représente tous différemment.
La console APL ne prend pas en charge les couleurs. J'ai donc utilisé des caractères ombrés (l'attribution de tout autre type d'art ASCII serait aussi simple que de remplacer les caractères au début de la chaîne.)
Ils doivent ressembler à des cercles ininterrompus (selon votre police de caractères).
Ou:
la source
Commodore 64 BASIC
Ecrire directement dans l'écran et dans la mémoire couleur.
Sortie:
Voici comment vous faites cela avec les sprites.
la source
HTML Fiddle -
48,35, 33 caractères (Merci @Dom et @cnst!)Sortie:
la source
OOO<div style="margin:-10px 5px">OO
place ... (Je pense que cela doit être un bloc, d'où le<div/>
)div
, peut simplement utiliser à lap
place!BASH en couleur - 271 - 20 = 251 - avec anneaux enchevêtrés; P
Résultat:
Et pour le plaisir : 61 - 20 = 41.
Version LZ77:
la source
bash: !/\\e[3}": event not found
:(x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"
- (Je suis un peu mal avec le 5 ici.) Ou même cela pourrait être mieux, avec le chevauchement en tête:x='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"
- même si cela peut paraître plus compliqué que les autres.Sinclair BASIC sur le ZX Spectrum 48K (261 bytes)
Liste BASIC:
Résultat final:
Programme en cours et mesure du code:
Liste BASIC en format texte:
Fichier TAP avec le programme, adapté aux émulateurs ou aux machines réelles utilisant DivIDE ou DivMMC: http://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap
la source
Donc, je n'ai pas vraiment lu correctement, c'est de l'art ASCII, alors je suppose que c'est invalide. Oops!
HTML 121 (141 - 20)
En Chrome:
PHP 103 (123 - 20)
la source
#06f
#fa0
#193
Ruby: 198 caractères - 20 = 178
(Notez que ce
^[
sont des caractères uniques.)Échantillon échantillon:
la source
Mathematica - 185
Voici la sortie
Une autre version, basée sur la pixellisation de graphiques vectoriels
la source
PostScript, 203 (-20 = 183)
Je maintiens que cela compte comme "art ASCII", bien que cela n’écrive pas sur la console. Sortie:
Cela pourrait être joué un peu plus au golf.
la source
Script de commande Windows - 112
% d'octetsEt bien sûr, la version cheat'ish obligatoire - 4 octets
enregistré en tant que:
la source
Une autre tentative à Perl,
130120Merci à manatwork d’avoir aidé avec cela
Sortie:
la source
for
place deforeach
; 2 caractères en supprimant les arguments de(
…)
roundsprintf()
; 2 caractères en supprimanthex
le paramètre '; 1 caractère en utilisanty///
au lieu detr///
; 1 personnage en supprimant la finale;
.y///
. Je vais aller le chercher maintenant.Python:
157140138133122107 caractères107
(merci à manatwork )
exemple de sortie:
157
122
(Je viens de commencer celui-ci, je vais essayer de l'améliorer)
avec une meilleure sortie: 120 caractères
exemple de sortie:
la source
print'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()])
. En ce qui concerne la version «meilleure sortie», vous pouvez utiliserrjust()
le second paramètre. (Et insérez un «t» dans l'en-tête de ce message.)bin()
. Mais pourquoi utilisez-vousstr()
autour de cela?bin()
La valeur de retour de est déjàstr
.010000010100000101000101000001010000010
? Les deux anneaux inférieurs me semblent un peu cassés.Perl,
177163Une version améliorée grâce à Dom Hastings:
Sortie:
la source
"\n"
as$r
, vous pouvez utiliser la valeur par$/
défaut"\n"
, les retours à la ligne littéraux pourraient même vous faire économiser davantage à plusieurs endroits. Vous pouvez également enregistrer 1 caractère supplémentaire en utilisant$s=$"x3
plutôt que$s=" "
. J'espère que ça t'as aidé!C, 257 octets
Cela aurait pu être joué un peu plus au golf.
Cela doit être exécuté sur un Tektronix 4010 (ou un émulateur tel que xterm -t). Sortie:
C’est en effet un art ASCII, puisque ce sont tous des "." personnages. Et il envoie la sortie à la console, comme demandé. Certains émulateurs Tektronix prennent en charge la couleur. La mienne non, alors je ne pouvais pas faire ça.
la source
Java,
181179161156 octets(Ne compilera pas sur jdk 1.7, nécessite 1.6 ou moins)
Le résultat:
Certainement pas un gagnant, mais bon, c'est java .
la source
replaceAll()
expression régulière de » et remettre toute la partie matched:replaceAll(".{29}","$0\n")
. (Il se peut qu'il y ait un saut de ligne supplémentaire à la fin de votre fichier, car je ne compte que 181 caractères dans le code envoyé.)import
et mettez le nom du paquet directement dans l’appel du constructeur. Cela réduit la taille à 161 caractères.class M{static{...
àenum M{M;{...
. La prochaine grande étape consiste à se débarrasser de BigInteger, est-ce possible? J'essaie de faire de la magie avec String.format mais je n'ai pas encore de résultats.Haskell, 200
Sortie:
joué au golf sur:
la source
map.map
cause de ça parce que ça a l'air drôle. : DRubis, 9
#satire
Les règles permettent un art qui ne ressemble pas exactement à l'exemple, mais il doit "représenter les anneaux olympiques assez bien pour qu'il soit reconnaissable" .
Vous pouvez reconnaître cette représentation du logo des Jeux Olympiques.
la source
Javascript - 170
185189CharsSortie:
2e javascript - 25 caractères
Sortie:
Le second est paresseux
la source
split()
paramètre; 2 caractères en supprimant les 2 dernières;
s.'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))})
.Binaire! (265 CHARS)
C'est trop gros pour gagner, mais au moins ça a l'air cool!
la source
PHP - 99 (-20?)
C'est clairement reconnaissable. Je dis que mes "couleurs" comptent; c'est une représentation proche.
Si vous n'aimez pas cela, alors voici
GolfScript - 101 (-20?)
la source
header("Content-Type: text/plain")
la valeur par défaut pour les serveurs Web est text / htmlBash + ImageMagick: 163 caractères
Exemple de sortie:
la source
Perl 6:
1127756 caractères, 75 octets.comb
donne une liste des caractères séparés dans une chaîne (sans argument de toute façon).ord
donne le numéro de code du caractère à partir du caractère.base(2)
retourne une chaîne avec un encodage en base 2 de cet Int.trans
remplace les chiffres par des espaces et @ pour une meilleure visibilitéflip
inverse les caractères d'une chaîne pour que les 0 manquants ne gâchent pas le dessin.edit2: solution plus récente utilisant des mots qwote et encodés en base 36
<ABC DEF GHI>
est une syntaxe de mots de citation en perl6, vous obtenez donc une liste de chaînes:36($_)
crée un Int à partir d'une chaîne encodée en base 36$_
(for
variable de boucle par défaut)edit: l'ancienne solution a un dessin plus joli (copié) mais est plus longue:
la source
Mathematica
18517510 octets enregistrés par mathe.
Les anneaux ci-dessous sont des ASCII 'O's.
La lettre "O", légèrement translucide, de style gothique centré, imprimée 5 fois avec une taille de police = 145 points d’imprimante.
Ce n'est pas un art terminal. Cependant, il correspond pleinement à la définition de l'art ascii dans Wikipedia: http://en.wikipedia.org/wiki/ASCII_art .
la source
FontSize ->
Peut être enlevé.FontSize -> 145
par145
.JavaScript: 153 caractères
Je voulais voir si je pouvais le faire plus rapidement en utilisant l'algèbre pour représenter graphiquement les cercles:
(
c
est un tableau de cinq (x, y) paires, les centres des cercles, aplatis pour enregistrer dix caractères.)sortie:
159 caractères est un peu plus lisible:
sortie:
En 167 caractères, nous avons des "couleurs":
sortie:
Et avec 189 caractères , je peux également régler le rayon
r
:http://jsfiddle.net/mblase75/5Q6BX/
la source
APL, 8 caractères / octets *
Voici une réponse qui demande le plus petit nombre de caractères (c'est le code de golf après tout)
Sortie:
Le symbole est ○, opérateur de cercle APL. Vous pouvez mettre un "O" à la place, au cas où vous voudriez une sortie strictement ASCII. Je pensais qu'il était approprié d'utiliser un symbole APL.
Juste pour le plaisir, voici une version couleur (37 caractères - 20 = 17 points)
Sortie: ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL peut être écrit dans son propre jeu de caractères codé sur un octet (existant) qui mappe les symboles APL sur les valeurs supérieures à 128 octets. Par conséquent, aux fins de la notation, un programme de N caractères qui utilise uniquement des caractères ASCII et des symboles APL peut être considéré comme ayant une longueur de N octets.
la source
CSS,
1176922855771 octets, bonus de -20 couleurs = 751CSS uniquement, aucun balisage requis. Voir le violon sans bille ici: http://jsfiddle.net/XcBMV/12/
En couleur et avec le bon chevauchement.
la source
Perl - 12 caractères
OK, ce n'est donc pas un rendu particulièrement artistique. ;-)
Légèrement plus mignon:
la source
Chargeur OL pour BIOS 16 bits GAS Assembly - 617 - 20 = 597
Devenir fou ici, alors, rien que pour le plaisir.
Ça charge peu, mais ça charge le logo des Jeux Olympiques en ASCII avec des couleurs;)
Code:
(Linux) Construire et extraire une image MBR
Courir dans un émulateur
(Je ne l'ai pas encore testé sur mon ordinateur personnel ...)
Résultat
la source
TI-Basic (16 octets)
Remarque: TI-Basic est segmenté. Si je me souviens bien,
ClrHome
etDisp
sont des jetons d'un octet.la source
la source