Générer une grille de couleurs RVB


47

Cette! est une grille de couleurs RVB ...

Grille RVB de base

Fondamentalement, c'est une matrice à 2 dimensions dans laquelle:

  • La première ligne et la première colonne sont en rouge.
  • La deuxième ligne et la deuxième colonne sont vertes.
  • La troisième ligne et la troisième colonne sont en bleu.

Voici les couleurs décrites graphiquement, en utilisant les lettres R, G et B.

diagramme de ligne et de colonne

Voici comment nous calculons la couleur de chaque espace de la grille.

  • Rouge + Rouge = Rouge (# FF0000)
  • Vert + Vert = Vert (# 00FF00)
  • Bleu + Bleu = Bleu (# 0000FF)
  • Rouge + Vert = Jaune (# FFFF00)
  • Rouge + Bleu = Violet (# FF00FF)
  • Vert + Bleu = Teal (# 00FFFF)

Le défi

  • Écrivez le code pour générer une grille de couleurs RVB.
  • C'est du code golf, alors essayez de le faire avec le plus petit nombre d'octets.
  • Utilisez n’importe quel langage de programmation ou de balisage pour générer votre grille.
  • Ce qui m'importe:
    • Le résultat devrait afficher graphiquement une grille RVB avec les couleurs définies.
  • Des choses qui m'importe peu:
    • Si le résultat est une image, HTML, SVG ou un autre balisage.
    • La taille ou la forme des blocs de couleur.
    • Bordures, espacement, etc. entre ou autour des blocs.
    • Il n'est certainement pas nécessaire que les étiquettes vous indiquent quelles doivent être les couleurs des lignes et des colonnes.

2
Pouvons-nous sortir un objet mage natif à notre langage, par exemple un Bitmapobjet en C #?
Incarnation de l'Ignorance

1
@EmbodimentofIgnorance sonne bien pour moi.
AJFaraday

11
J'attends la solution dans Piet
manassehkatz-Reinstate Monica

4
@manassehkatz Est-il simplement possible que coder en dur les données serait un meilleur golf que de les exécuter?
AJFaraday

3
Ce n’est pas vraiment important, mais j’aurais personnellement utilisé du cyan et du magenta au lieu de sarcelle et de pourpre (ou autre chose). Autant que je sache, il s'agit des termes officiels utilisés dans l'impression ou les modèles de couleurs soustractives tels que CMYK .
Arnauld

Réponses:


34

Bash, 44

  • 2 octets économisés grâce à @NahuelFouilleul
  • 2 octets sauvegardés grâce à @manatwork
printf "${f=^[[3%dm.}$f$f
" 1 3 5 3 2 6 5 6 4

Ici, les blocs sont des .personnages. ^[est un caractère d'échappement ASCII littéral (0x1b).

entrez la description de l'image ici

Vous pouvez recréer ce script comme suit:

base64 -d <<< cHJpbnRmICIke2Y9G1szJWRtLn0kZiRmCiIgMSAzIDUgMyAyIDYgNSA2IDQ= > rgbgrid.sh

11
que diable? s'il vous plaît expliquer :)
flawr

1
peut économiser 2 octets en utilisant une extension de shellprintf ${f=\\e[3%dm.}$f$f\\n 1 3 5 3 2 6 5 6 4
Nahuel Fouilleul

1
Celui-ci a vraiment éclairé ma journée, merci!
AJFaraday

4
printf \\e[3%dm. 1'développe \\e[31m.le code d'échappement ANSI pour le rouge , etc., et .constitue le caractère à imprimer.
Fredrik Pihl

3
Continuant avec la suggestion de @ NahuelFouilleul, citez-la deux fois: printf "${f=^[[3%dm.}$f$f␤" 1 3 5 3 2 6 5 6 4(Où ^[est un caractère d'échappement littéral = 1 octet et un caractère de nouvelle ligne littéral = 1 octet.)
manatwork

26

Assemblage 8088, IBM PC DOS,  44  43 octets

Référencement:

BE 0122     MOV  SI, OFFSET CTBL    ; load color bar table into [SI]
        LOOP_COLOR: 
B9 0001     MOV  CX, 1              ; display 1 char and clear CH (changed by INT 10H:3)
AC          LODSB                   ; load next color byte 
8A D8       MOV  BL, AL             ; move new color to BL
3C 10       CMP  AL, 010H           ; if this is third color in row: SF=0, CF=0 
                                    ; else if last color: SF=1, CF=0
                                    ; else continue on same row: CF=1
B8 09DB     MOV  AX, 09DBH          ; AH=9 (write char with attr), AL=0DBH (a block char) 
CD 10       INT  10H                ; call PC BIOS, display color block
B4 03       MOV  AH, 3              ; get cursor position function
CD 10       INT  10H                ; call PC BIOS, get cursor
72 04       JC   NEXT_COL           ; if not last in row, move to next column 
78 09       JS   EXIT               ; if last color, exit 
B2 FF       MOV  DL, -1             ; otherwise move to first column and next row 
        NEXT_COL:
42          INC  DX                 ; move to next column (and/or row)
B4 02       MOV  AH, 2              ; set cursor position function 
CD 10       INT  10H                ; call PC BIOS, set cursor position
EB E2       JMP  LOOP_COLOR         ; loop to next color byte 
        EXIT:
C3          RET                     ; return to DOS
CTBL    DB  0CH, 0EH, 1DH, 0EH, 0AH, 1BH, 0DH, 0BH, 91H ; color table

Ceci utilise les INT 10Hservices vidéo IBM PC BIOS pour écrire la grille de couleurs à l'écran. Malheureusement, la seule façon d'écrire un attribut de couleur spécifique nécessite également d'écrire du code pour placer le curseur à l'emplacement correct suivant. Il y a donc beaucoup de code supplémentaire pour cela.

Voici la sortie s'exécutant sur un IBM PC CGA (en mode texte 40x25 pour l'agrandir).

entrez la description de l'image ici

Téléchargez et testez RGBGRID.COM pour DOS.


1
Cela fonctionnera-t-il in do, prib pas mais serait cool s'il le faisait.
Maréchal artisanat

@marshalcraft Oui, cela ne fonctionnera que sous DOS ou en utilisant un émulateur DOS tel que DOSBox, pcjs.org, etc. J'ai ajouté un lien pour télécharger l'exécutable afin que vous puissiez l'essayer.
640 Ko

Windows est livré avec un émulateur de dos limité, probablement maintenant appelé invite de commande, ce que j'aurais probablement dû dire, serait bien si cela fonctionnait avec cmd ou PowerShell haha.
marshal craft

1
@marshalcraft Vous avez raison, cependant, puisqu'il s'agit d'un exécutable 16 bits pour DOS, il est préférable d'exécuter Windows si vous utilisez une version 32 bits, car l'environnement d'exécution est de 16 bits. Cependant, une édition 64 bits de Windows ne l'exécutera pas car elle ne dispose que d'un runtime 32 bits.
640 Ko

1
Dieu c'est une bonne réponse
Samy Bencherif


18

Code machine 80386, IBM PC DOS, 38 octets

hex:

B0 13 CD 10 68 00 A0 1F 66 C7 06 00 00 28 2C 24
00 66 C7 06 40 01 2C 30 34 00 66 C7 06 80 02 24
34 20 00 CD 16 C3

asm:

mov al,13h
int 10h ; initialize vga 13h mode (320x200x256 colors)
push 0a000h
pop ds ; push video buffer address to ds
mov dword ptr ds:0, 242c28h ; print 3 pixels
mov dword ptr ds:320, 34302ch ; print 3 pixels
mov dword ptr ds:640, 203424h ; print 3 pixels
int 16h ; wait for any keypress
ret ; exit to os

Sortie mise à l'échelle de dosbox:

entrez la description de l'image ici


Notez que ceci mov al, 13hest incorrect à moins que DOSBox ne garantisse son ah = 0entrée au programme.
Margaret Bloom

@MargaretBloom ax est 0 au début de l'application com dans ms dos
Iłya Bursov

Merci Iłya, c'est bon à savoir!
Margaret Bloom

18

Excel VBA (fenêtre immédiate), 80 octets

For i=1To 9:Cells(i Mod 3+1,(i+1)/3).Interior.ColorIndex=Mid(673486857,i,1):Next

Excel VBA (Fonction), 96 octets

Sub g()
For i=1To 9
Cells(i Mod 3+1,(i+1)/3).Interior.ColorIndex=Mid(673486857,i,1)
Next
End Sub

Ce n'est pas un outil horrible pour le travail ... J'apprécie le fait qu'Excel affiche déjà une grille, il s'agit donc de définir la couleur de fond.

Excel Color Grid

Nous remercions @Neil d'avoir suggéré d'utiliser ColorIndexplutôt que d' Coloréconomiser 43 octets.

-21 octets grâce à @Keeta

-16 octets grâce à @Chronocidal pour avoir suggéré la "fenêtre immédiate"

-2 octets grâce à @i_saw_drones

Beaucoup de changements de ma soumission originale :)


1
Vous pourriez probablement faire mieux avec ColorIndexun nombre de 3 à 8, que vous pourriez encoder dans une chaîne ou quelque chose.
Neil

@ Neil - En effet :) J'ai été capable de l'obtenir un peu plus court avec ça. Merci pour le conseil.
Dana

Je n'ai rien vu qui vous empêche de changer ceci en Sub F () et End Sub pour plus d'économies.
Keeta

1
N'en faites pas une fonction et lancez-la dans la fenêtre Immédiat pour supprimer 21 octets:for i=1 To 3:for j=1 To 3:Cells(i,j).Interior.ColorIndex=Mid("367408005",i*j,1):next j,i
Chronocidal

1
Vous pouvez également supprimer les guillemets de la chaîne. VBA forcera automatiquement le nombre à former une chaîne.
i_saw_drones

16

GFA Basic 2.02 (Atari ST), 48 octets

Une liste modifiée manuellement au format .LST. Inclut de nombreux caractères non imprimables, dont les codes sont indiqués entre parenthèses.

?"[ESC]c[SOH] [ESC]c[ETX] [ESC]c[ENQ] "[CR]
?"[ESC]c[ETX] [ESC]c[STX] [ESC]c[ACK] "[CR]
?"[ESC]c[ENQ] [ESC]c[ACK] [ESC]c[EOT] "[CR]

Le système d'exploitation de l'Atari ST définit les commandes VT52 étendues qui sont utilisées ici.

Sortie

24×248×8

sortie

capture d'écran de Steem SSE


+1 pour m'avoir rendu nostalgique de mon fidèle vieux ST.
Wossname

16

SVG, 210 182 octets

<svg><path d="h3v3h-3" fill=#f0f/><path d="h2v2h-2" fill=#ff0/><path d="m1 1h2v2h-2" fill=#0ff/><line x2=1 stroke=red/><path d="m1 1h1v1h-1" fill=#0f0/><path d="m2 2h1v1" fill=#00f/>

Étant donné que la taille ou la forme des blocs de couleur n'a pas d'importance, vous pouvez créer plusieurs octets avec cette disposition légèrement étrange:

mise en page svg


J'aime beaucoup l'ingéniosité de cette solution.
AJFaraday

16

HTML + CSS, 121 120 octets

Le pire morceau de HTML que j'ai jamais écrit. Sauvegarde d'un octet grâce à @Gust van de Wal

b{color:#ff0}a{color:cyan}i{color:lime}u{color:blue
<pre><body bgcolor=#f0f text=red><b>█
█<i><a>█
 █<u>

HTML + CSS, 114 octets (semi-valide)

Je mets ceci comme semi-valide parce que le bleu n'est pas exactement bleu # 0000FF et repose aussi sur le fait de ne pas avoir cliqué sur le lien.

Merci à @Lynn pour l'idée

b{color:#ff0}i{color:lime}c{color:cyan
<pre><body bgcolor=#f0f text=red><b>█
█<i><c>█
 █<a href=x>


3
Vous pouvez omettre le dernier crochet de fermeture dans le CSS. De plus, un travail incroyable (et écoeurant)!
Gust van de Wal

3
Vous pouvez modifier les noms de balises pour éviter le CSS par défaut mise en forme, par exemple <w>, <x>, <y>et <z>.
darrylyeo

1
<a href=x>█sera bleu par défaut, vous épargnant quelques octets de CSS :)
Lynn

15

ditaa , 118 bytes

/----+----+----\
|cF00|cFF0|cF0F|
+----+----+----+
|cFF0|c0F0|c0FF|
+----+----+----+
|cF0F|c0FF|c00F|
\----+----+----/

Ceci est la sortie utilisant l' -Eoption:

entrez la description de l'image ici


13

R, 89 50 48 octets

Version la plus récente:

image(matrix(c(6,4,5,2:4,1,2),3),col=rainbow(6))

Pas assez d'éléments dans le vecteur pour remplir la matrice 3x3, donc il enroule autour et réutilise le premier élément.

Anciennes versions:

image(matrix(c(6,4,5,2:4,1,2,6),3),col=rainbow(6))

image(matrix(c(3,5,6,2,4,5,1:3),3),col=c('red','yellow','magenta','green','cyan','blue'))

entrez la description de l'image ici


3
Bienvenue chez PPCG!
Incarnation de l'Ignorance

1
wow c'est Rainbow Six !
Yong Quan

@alephalpha Yikes, je ne peux pas croire que j'ai raté ça. Je suis allé de l'avant et j'ai corrigé la version la plus ancienne et le décompte des caractères
Anjama

12

Excel-VBA, 89 73 72 70 octets

Edit: Vous pouvez utiliser la fenêtre immédiate et vous passer de Sub/ End Subpour sauvegarder 16 octets:

For i=1To 9:[A:C].Cells(i).Interior.ColorIndex=Mid(367648785,i,1):Next

Réponse originale:

Sub a()
For i=1To 9
[A1:C3].Cells(i).Interior.ColorIndex=Mid(367648785,i,1)
Next
End Sub

Cela a été inspiré par la suggestion de Neil concernant cette réponse et constitue ma première soumission!

Résultat:

Grille de résultat

-2 octets : Suppression des numéros de ligne de cellule - grâce à Taylor Scott !


3
Bienvenue chez PPCG!
Johan du Toit

1
Je vous remercie! J'espère que je vais apprendre quelques astuces des maîtres :)
i_saw_drones

For i=1To 9:[A:C].Cells(i).Interior.ColorIndex=Mid(367648785,i,1):Nextpour 70
Taylor Scott

11

Perl 6 (et probablement similaire pour de nombreuses langues) (31 octets)

{'ÿ   ÿÿÿ ÿ ÿÿ  ÿ ÿÿÿ ÿ ÿÿ  ÿ'}   # replace spaces with ASCII 00
                                  # which I can't seem to enter

Cela génère un fichier TIFF sans tête, qui était généré par Photoshop avec l’extension de fichier .raw et qui est présumé être carré, sauf indication contraire au moment de l’ouverture. Jouer avec la profondeur de couleur (si autorisée) pourrait la réduire davantage.


11

ffplay (ffmpeg), 93 octets

ffplay -f rawvideo -s 3x3 -pix_fmt rgb24 "data:/;base64,/wAA//8A/wD///8AAP8AAP///wD/AP//AAD/"

Vieux :

ffplay -f lavfi -i testsrc=s=3x3,geq=r=255*not(X*Y):g=255*not((X-1)*(Y-1)):b=255*not((X-2)*(Y-2))

10

TEX(MathJax), 122bytes

Golf'd:

$\def\c#1{\color{#1}{\rule{5em}{5em}}}\c{red}\c{yellow}\c{fuchsia}\\\c{yellow}\c{lime}\c{aqua}\\\c{fuchsia}\c{aqua}\c{blue}$

Ungolf'd:

$$
\def\coloredBox#1{\color{#1}{\rule{5em}{5em}}}
\coloredBox{red}
\coloredBox{yellow}
\coloredBox{fuchsia} \\
\coloredBox{yellow}
\coloredBox{lime}
\coloredBox{aqua}    \\
\coloredBox{fuchsia}
\coloredBox{aqua}
\coloredBox{blue}
$$

Modifications:

  1. Merci à @flawr pour avoir expliqué comment corriger les couleurs!

  2. 14bytes\rule{5em}{5em}

    , mais ce n’est pas tout à fait pareil.

  3. Pourrait probablement supprimer quelques octets supplémentaires en trouvant des noms de couleurs qui ressemblent de manière acceptable aux couleurs souhaitées.

  4. TEX'd

    RedGreenBlueRedGreenBlue.


1
Je pense que tes couleurs ne sont pas correctes. Mais à part cela j'upvote votre message si seulement pour le titre :)
flawr

TEX

1
Il semble que mathjax utilise les noms de couleurs CSS. Ainsi , vous pouvez remplacer purplepar fuchsiaet tealavec aquaet greenavec des limechoses serait alors correct je pense.
mardi

Juste pour le noter: Le jeu ci-dessus pourrait être un peu plus sophistiqué en supprimant quelques-uns {}. Mais cela violerait trop de principes de codage propres pour ma santé mentale. = P
Nat

5
Il suffit de noter que la communauté PPCG n'a jamais été réputée pour sa santé mentale. Si quelque chose probablement pour le manque de celui-ci.
mardi

10

Lua + LÖVE / Love2D , 186 183 octets

t={[0>1]=0,[0<1]=1}l=love g=l.graphics function l.draw()for i=1,3 do for j=1,3 do g.setColor(t[i<2 or j<2],t[i==2 or j==2],t[i>2 or j>2])g.rectangle('fill',j*10,i*10,10,10)end end end

Essayez-le en ligne!

entrez la description de l'image ici

Ma première entrée de golf de code!


1
Bienvenue chez Code Golf! Bon travail!
AJFaraday

1
Je pense que vous pouvez utiliser des expressions dans votre table de vérité: t={[0>1]=0,[0<1]=1}.
manatwork

1
@manatwork intelligent!
Sheepolution le

un autre löver, ravi de vous voir ici
Lycea

10

MATL, 44 23 21 20 19 octets

Un portage direct de ma réponse Octave avec les suggestions de @ExpiredData et @LuisMendo.

126973007Bo7B3*e0YG

essayez-le en ligne


9

Octave / MATLAB , 57 56 40 octets

-17 octets grâce à @ExpiredData! Découvrez leur solution encore plus golfeuse !

image(reshape(de2bi(126973007),[3,3,3]))

Essayez-le en ligne!


1
Est-ce que l'image fonctionne au lieu de imshow? Je n'ai plus de licence Matlab et je suis au téléphone, donc je ne peux pas la tester
Données expirées le

2
@ExpiredData Merci beaucoup, cela fonctionne vraiment!
mardi

2
Vous pouvez probablement le faire aussi Essayez-le en ligne!
Données expirées le

1
@ExpiredData --- Très belle astuce, merci beaucoup! :) --- pourquoi ne postez-vous pas cela comme une réponse personnelle?
mardi

3
Ok, je vais le faire
Données expirées le

9

Factorio Blueprint String, 705 octets

Je reconnais que je ne fais que repousser les limites de ce qui compte comme solution.

0eNrdWNGOqyAQ/ReedeNo0daH/ZHNTYOW7ZJFNAi91zT99wua7ZpdaaT1pb40oQ6HOecwA3pGBde0kUwolJ8RK2vRovztjFp2FITb/1TXUJQjpmiFAiRIZUdtzYkMGyIoR5cAMXGg/1AOlz8BokIxxegA0w+6vdBVQaUJuAKQstSV5kTV0qA2dWvm1MKuZ3FecIA6lIf4BV8uwS+YeDKPXzBhPKAkUxjJPAy4AbG5QljZFBEqLOuqYGKa1Vc6YAQzE5Ss+b6gH+TETLQJeWdcUemQ/8Sk0oSPHOgjQkkPqMfT1kEYWzEsI2hpc2gtFtgfO2NkDTMjbIKnCOLv1SrCechJ1UzwSm7zKpksNVN78+xwnffOZKv2s2kS0akPJo4D10FslEd2UDVE9oLn6NU+1i01S/HaKqmkpvNl2DhkSGfJEK1Eha1DhWyWCmvZCzuHCtu7aj5asuQ7ynn99/GqT0f07BjAwXnnx3kohEW7XMPE5+OEs5+EUwdhiL4T0IVh3LNzHlMwfUoB+LTPeK19A2LPkoGbety1f46SUvH4BoLExTHxOCKe3mmIXTJ43ogGp5MlnS47soTR+GeryFyUscex+PzOu65IkPr0OrzW2wFkHn0Ar3c3eN6S4pt63NUH7GvtAn3AafTOo+yf3+jhbDcv9/1XgHz00SBAJ+NNn3uWRJDiDcDWXIf+Aya7oEk=

Sortie produite lors de la mise en jeu (paramètres graphiques bas utilisés):

entrez la description de l'image ici

Pour prouver que cette solution est valable, vous devez échantillonner cette grille de pixels qui correspondent exactement à la spécification:

entrez la description de l'image ici

Le reste de l'image est classé comme une bordure ou un espacement qui, comme le dit la question, n'a pas d'importance.



8

HTML / CSS, 278 141 137 octets

r{color:red}y{color:#ff0}m{color:#f0f}g{color:#0f0}c{color:#0ff}l{color:#00f
<pre><r><y><m><y><g><c><m><c><l>

-137 octets grâce aux commentateurs, notamment @data
-4 octets grâce à @Einacio

Utilise Unicode (U + 2588) pour les "blocs" et utilise les classes CSS / style en ligne pour les colorer.

Je pense que les <font>tags pourraient être plus joués au golf, mais les changer en un tag plus court, tel que <a>rompt l' colorattribut


1
Laisser de côté </td>, le navigateur est assez intelligent pour ajouter automatiquement cette balise de fermeture
Ferrybig

3
Si vous utilisez des éléments obsolètes, vous pouvez également spécifier la couleur d'arrière-plan d'une cellule en utilisant<td bgcolor=#f00>
Ferrybig

2
Peut-être une question noob, mais ne pouvez-vous pas éviter d'utiliser le tableau et imprimez simplement le et passez à une nouvelle ligne avec <br>?
frarugi87

1
@ frarugi87 oui - 235 au total:<span style="color:red">█<span class=a>█<span class=b>█<br><span class=a>█<span style="color:#0f0">█<span class=c>█<br><span class=b>█<span class=c>█<span style="color:#00f">█
ASCII uniquement

1
@ ASCII uniquement b {color: # ff0} u {color: # f0f} i {color: # 0ff} <pre> <font color = red> <b> <u> <b> <font = chaux> █ <i> <u> <i> <font color = blue>
données du

7

JavaScript, 108 102 octets

console.log(`%c█%c█%c█
`.repeat(3),...[...`320251014`].map(c=>`color:#`+`f0ff00f0`.substr(c,3)))

Pas d'extrait, car cela ne fonctionne que dans une console de navigateur réelle et non dans la console de l'extrait. Edit: Merci à @AJFaraday pour la capture d'écran. Explication: Les navigateurs permettent au premier paramètre d' console.loginclure des substitutions. La %csubstitution prend un paramètre et l'applique comme CSS (assaini). Chaque bloc est donc coloré en utilisant la sous-chaîne appropriée f0ff00f0interprétée comme un code de couleur à trois chiffres hexadécimaux.

Exemple d'exécution de code


1
Je ne comprends pas comment ça marche?
Marshal craft

1
@marshalcraft %cest utilisé pour créer une chaîne de format, les arguments étant des styles CSS pour le texte qui la suit
ASCII-only

1
Donc, c'est fondamentalement comme les versions dos mais avec le navigateur chrome?
Marshal craft

1
Juste curieux, mais comment avez-vous trouvé la chaîne de fs / 0 la plus courte possible?
Marie

2
@Marie J'ai commencé par noter que ff0ffcontient toutes les couleurs mélangées et 00f00contient toutes les couleurs pures. Si vous les concaténez, vous obtenez des positions en double ff0et f00vous pouvez ensuite supprimer les premier et dernier caractères. J'ai ensuite écrit un court script pour vérifier toutes les chaînes de 7 caractères afin de s'assurer que 8 était optimal.
Neil

7

HTML (GIF), 108 octets

C'est la bataille des formats d'image basés sur le Web! (Y at-il des prétendants au TIF ou au JPG?)

Répondre par @AC .

<img src=data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7>


HTML (BMP), 116 115 octets

Réponse de @ ASCII uniquement .

<img src=data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA>


HTML (WebP), 116 octets

Réponse de @Hohmannfan .

<img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>


HTML (PNG), 151 136 135 octets

-15 octets grâce à @Hohmannfan .

<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII>


Voir aussi mes réponses CSS et SVG .


3
Bonne idée mais .. Il me semble qu'un fichier de 89 octets pour une image de 9 pixels est un peu trop. Peut-être qu’écrire manuellement un en-tête BMP peut être joué. Si je ne me trompe pas, l'en-tête minimal est de 26 octets; plus 12 données réelles (3 lignes de 4 pixels) permettent de réduire l'image à 38 octets, ce qui signifie en base64 51 ou 52 caractères plutôt que 119
frarugi87

2
118: <img src="data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA=">. En-tête de fichier de 14 octets, en-tête d’application de 12 octets, 9 données réelles par ligne (+3 pour saturer un multiple de 4), ouais
ASCII uniquement

2
Je n'ai pas compté, mais je soupçonne que <img src="data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7">c'est plus court
ca

2
Voici un fichier png de 15 octets plus petit en base64:iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII=
Hohmannfan

2
Pour continuer la bataille des formats, voici une solution WebP sans perte. Je ne peux plus le réduire sans violer les spécifications, alors il est battu de justesse par BMP à 116 octets. <img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>
Hohmannfan

6

dc (sur xterm), 64 octets

Fi16[AP]sF36dD6r31 101dD6rD1[1CP61P[38;5;]Pn[mX]Pz3%0=Fz0<M]dsMx

Vous aurez juste un tas de codes d'échappement farfelus au lieu de couleurs, mais vous pouvez toujours l' essayer en ligne!

D'après ce que j'ai compris, les 16 couleurs ANSI de base peuvent être interprétées librement, à la demande du terminal. Par ailleurs, les 216 couleurs du cube de couleur xterm ont des valeurs RVB explicites. J'utilise ces codes et j'imprime une grille de Xs:

buncha coloured 'x's

Nous définissons d’abord la base d’entrée en base 15 avec Fi. Cela coûte deux octets, mais en rend trois, donc ... un gain net d'un octet (et une perte de lisibilité importante). Ensuite, nous essayons d’obtenir nos valeurs de couleur sur la pile. En décimal, ce serait 21 51 201 51 46 226 201 226 196, mais nous sommes en mode loufoque donc ça va être 16 36 D6 36 31 101 D6 101 D1. Nous éliminons l'un des espaces en insérant une macro que nous devons définir à un moment donné [AP]sF(qui affiche simplement un saut de ligne). Nous pouvons réduire 36 D6 36et 101 D6 101en plaçant la première valeur sur la pile, en la dupliquant, en plaçant la seconde, puis en permutant ( 36dD6r, 101dD6r).

Macro Mgère l'impression et tout le reste. 1CPaffiche le caractère d'échappement. Les crochets sont utilisés pour délimiter des chaînes, et pour autant que je sache, ils ne peuvent pas être échappés. Nous devons donc imprimer le crochet avec une valeur ASCII également 61P. [38;5;]Pest le code 'définir la couleur de premier plan à partir de la liste numérotée'. naffiche la valeur du haut de la pile avec une nouvelle ligne, en la sautant. [mX]Ptermine le code et imprime un 'X'. z3%0=Fvérifie la profondeur de pile mod 3, en exécutant notre macro de saut de ligne Fsi nécessaire. z0<Mcontinue à Mfonctionner tant qu'il y a des choses sur la pile. dsMxcourir.

Notez que si vous exécutez ceci en courant continu dans un xterm, votre couleur de premier plan sera bleue. 1CP61P74P(entrée affichée dans la capture d'écran) devrait réinitialiser cela.


6

Tortue en bloc, 45 blocs

Essayez-le en ligne!

Pourquoi ne pas jouer à un petit jeu pour trouver l'outil le plus ridicule pour le poste?

Sortie:

La sortie glorieuse de cette glorieuse émission de merde

Le programme (en tant que capture d'écran pour une hérésie supplémentaire):

Le programme en tant que capture d'écran pour une hérésie supplémentaire

Remarque: Les blocs grisés sont également comptés dans la métrique.


1
J'aimerais que ce soit un défi PCG standard! Au lieu de cela, cela se passe naturellement sur certains puzzles de golf de code
AJFaraday

5

Node.js, 79 octets

require('fs').writeFile(a='P',a+[...'3331100110101110010011101011001'].join` `)

Produit un fichier nommé "P" au format PPM contenant la grille de couleurs.


5

TI-Basic, x octets (marquera quand je peux)

Remarque: le filtre de contenu m'empêche de rechercher la taille des jetons pour chacune de ces commandes. Si quelqu'un veut marquer pour moi, fonce.

TextColor(11
Text(0,0,"0"
TextColor(19
Text(0,2,"0"
Text(2,0,"0"
TextColor(13
Text(4,0,"0"
Text(0,4,"0"
TextColor(14
Text(2,2,"0"
TextColor(18
Text(2,4,"0"
Text(4,2,"0"
TextColor(17
Text(4,4,"0"

Cela semble vraiment mauvais sur mon petit écran de calculatrice. Mais bon, la forme n'a pas d'importance: ^)

Sortie de golf: Modifiée pour une sortie 8x plus grande:

entrez la description de l'image ici



entrez la description de l'image ici



TI-BASIC, x octets

Utiliser Pxl-On au lieu de Text:

Pxl-On(0,0,11
Pxl-On(0,1,19
Pxl-On(0,2,13
Pxl-On(1,0,19
Pxl-On(1,1,14
Pxl-On(1,2,18
Pxl-On(2,0,13
Pxl-On(2,1,18
Pxl-On(2,2,17

Sortie: gonflée ~ 11x:

entrez la description de l'image ici



entrez la description de l'image ici


C'est 180 caractères, excluant les sauts de ligne. Je ne sais pas comment / si les sauts de lignes sont comptés dans le code golf.
Nat

4
Oui, mais TI-BASIC est un langage à jeton. Par exemple, l'interpréteur considère TextColorcomme 2 octets, et non 9 comme vous le souhaiteriez. @Nat
Benjamin Urquhart

4

C ++, SFML, 177 octets

#include<SFML/Graphics.hpp>
int d[]={255,65535,0xFF00FF,65535,65280,0xFFFF00,0xFF00FF,0xFFFF00,0xFF0000};void f(){sf::Image g;g.create(3,3,(sf::Uint8*)d);g.saveToFile("a.jpg");}

Utilise une sf::Image::create(int,int,unsigned char*)méthode pour créer une image contenant des valeurs rgb


Vous pouvez supprimer un octet en écrivant 0xFF0000comme 255<<16.
Broxzier le

1
Pour aller un peu plus loin, vous pouvez économiser 13 octets en définissant les valeurs de couleur R / V / B dans les variables avant le tableau:int b=255<<16,g=65280,r=255,d[]={r,g|r,b|r,g|r,g,b|g,b|r,b|g,b};
Broxzier

4

C #, 248 204 198 octets

class P{static void Main(){for(int i=0;i<12;i++){foreach(dynamic n in Enum.GetValues(typeof(ConsoleColor)))if((""+n)[0]=="RYMRYGCRMCBR"[i])Console.BackgroundColor=n;Console.Write(i%4<3?" ":"\n");}}}

Sortie:
entrez la description de l'image ici


4

BASIC C64, 106 octets

0 POKE53281,0
1 DATA144,28,158,156,144,13,158,30,159,144,13,156,159,31,144
2 READA:PRINTCHR$(A)+"o";:GOTO2

entrez la description de l'image ici


3

Wolfram Language (Mathematica), 72 octets

Grid@Partition[RGBColor/@Unitize[Total/@Tuples[IdentityMatrix@3,{2}]],3]

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.