¡Esta! es una cuadrícula de color RGB ...
Básicamente es una matriz bidimensional en la que:
- La primera fila y la primera columna son rojas.
- La segunda fila y la segunda columna son verdes.
- La tercera fila y la tercera columna son azules.
Aquí están los colores descritos gráficamente, usando las letras R, G y B.
Así se calcula el color de cada espacio en la cuadrícula.
- Rojo + Rojo = Rojo (# FF0000)
- Verde + Verde = Verde (# 00FF00)
- Azul + Azul = Azul (# 0000FF)
- Rojo + Verde = Amarillo (# FFFF00)
- Rojo + Azul = Púrpura (# FF00FF)
- Verde + azul = verde azulado (# 00FFFF)
El reto
- Escribir código para generar una cuadrícula de color RGB.
- Es un código de golf, así que intente hacerlo en el menor número de bytes.
- Use cualquier lenguaje de programación o lenguaje de marcado para generar su grilla.
- Cosas que me importan:
- El resultado debería mostrar gráficamente una cuadrícula RGB con los colores definidos.
- Cosas que no me importan:
- Si el resultado es una imagen, HTML, SVG u otro marcado.
- El tamaño o la forma de los bloques de colores.
- Bordes, espacios, etc. entre o alrededor de los bloques.
- Definitivamente no tiene que tener etiquetas que le digan cuáles deberían ser los colores de fila y columna.
code-golf
graphical-output
AJFaraday
fuente
fuente
Bitmap
objeto en C #?Respuestas:
Bash, 44
Aquí, los bloques son
.
personajes.^[
es un carácter de escape ASCII literal (0x1b).Puede recrear este script de la siguiente manera:
fuente
printf ${f=\\e[3%dm.}$f$f\\n 1 3 5 3 2 6 5 6 4
printf \\e[3%dm. 1'
se expande a\\e[31m.
cuál es el código de escape ANSI para rojo y así sucesivamente y.
es el carácter a imprimir.printf "${f=^[[3%dm.}$f$f" 1 3 5 3 2 6 5 6 4
(¿Dónde^[
es un carácter de escape literal = 1 byte y  un literal carácter de nueva línea = 1 byte.)8088 ensamblado, IBM PC DOS,
4443 bytesListado:
Esto utiliza los
INT 10H
servicios de video de IBM PC BIOS para escribir la cuadrícula de colores en la pantalla. Desafortunadamente, la única forma de escribir un atributo de color específico requiere también escribir código para colocar el cursor en la siguiente ubicación correcta, por lo que hay mucho código adicional para eso.Aquí está la salida que se ejecuta en un PC de IBM CGA (en modo de texto 40x25 para hacerlo más grande).
Descargue y pruebe RGBGRID.COM para DOS.
fuente
Wolfram Language (Mathematica) , 41 bytes
Wolfram Language (Mathematica) , 68 bytes
Mathematica tiene incorporados para todos estos colores.
fuente
Código de máquina 80386, IBM PC DOS, 38 bytes
maleficio:
asm:
salida escalada de dosbox:
fuente
mov al, 13h
es incorrecto a menos que DOSBox lo garanticeah = 0
en el punto de entrada del programa.Excel VBA (ventana inmediata), 80 bytes
Excel VBA (Función), 96 bytes
No es una herramienta horrible para el trabajo ... Aprecio el hecho de que Excel ya muestra una cuadrícula, por lo que se trata de establecer el color de fondo.
Gracias a @Neil por sugerir que use en
ColorIndex
lugar de generarColor
un ahorro de 43 bytes.-21 bytes gracias a @Keeta
-16 bytes gracias a @Chronocidal por sugerir la "Ventana Inmediata"
-2 bytes gracias a @i_saw_drones
Muchos cambios de mi presentación original :)
fuente
ColorIndex
ya que es un número del 3 al 8 aquí, que podría codificar en una cadena o algo así.for i=1 To 3:for j=1 To 3:Cells(i,j).Interior.ColorIndex=Mid("367408005",i*j,1):next j,i
GFA Basic 2.02 (Atari ST), 48 bytes
Una lista editada manualmente en formato .LST. Incluye muchos caracteres no imprimibles, cuyos códigos se muestran entre paréntesis.
El sistema operativo de Atari ST define los comandos VT52 extendidos que se utilizan aquí.
Salida
captura de pantalla de Steem SSE
fuente
SVG,
210182 bytesDado que el tamaño o la forma de los bloques de color no importan, se pueden aprovechar bastantes bytes con este diseño ligeramente extraño:
fuente
HTML + CSS,
121120 bytesLa peor pieza de HTML que he escrito. Un byte ahorrado gracias a @Gust van de Wal
HTML + CSS, 114 bytes (semi válido)
Estoy poniendo esto como semi-válido porque el azul no es exactamente # 0000FF azul y también se basa en no haber hecho clic en el enlace.
Gracias a @ Lynn por la idea
fuente
<w>
,<x>
,<y>
, y<z>
.<a href=x>█
será azul por defecto, ahorrándote algunos bytes de CSS :)ditaa , 118 bytes
Esta es la salida usando la
-E
opción:fuente
R,
895048 bytesVersión más nueva:
No hay suficientes elementos en el vector para llenar la matriz de 3x3, por lo que se envuelve y reutiliza el primer elemento.
Versiones antiguas:
fuente
Excel-VBA,
89737270 bytesEditar: puede usar la ventana inmediata y prescindir de
Sub
/End Sub
para guardar 16 bytes:Respuesta original:
Esto fue inspirado por la sugerencia de Neil sobre esta respuesta, ¡y es mi primera presentación!
Resultado:
-2 bytes : Eliminación de números de fila de celdas, ¡gracias a Taylor Scott !
fuente
For i=1To 9:[A:C].Cells(i).Interior.ColorIndex=Mid(367648785,i,1):Next
para 70Perl 6 (y probablemente similar para muchos idiomas) (31 bytes)
Esto genera un archivo TIFF sin cabeza, que solía generar Photoshop con la extensión de archivo .raw y se presume que es cuadrado a menos que se especifique lo contrario en el momento de la apertura. Jugar con la profundidad de color (si está permitido) podría reducir esto aún más.
fuente
ffplay (ffmpeg), 93 bytes
Viejo :
fuente
Golf'd:
Ungolf'd:
Ediciones:
¡Gracias a @flawr por señalar cómo arreglar los colores!
\rule{5em}{5em}
▉
, pero simplemente no se ve exactamente igual.
Probablemente podría reducir algunos bytes más al encontrar nombres de colores que se parezcan aceptablemente a los colores previstos.
fuente
purple
confuchsia
yteal
conaqua
ygreen
conlime
entonces las cosas serían correctas, creo.{}
. Pero eso violaría demasiados principios de codificación limpia para mi cordura. = PLua + Love / Love2D ,
186183 bytesPruébalo en línea!
Mi primer código de entrada de golf!
fuente
t={[0>1]=0,[0<1]=1}
.MATL,
44 23 21 2019 bytesUn puerto directo de mi respuesta Octave con las sugerencias de @ExpiredData y @LuisMendo.
pruébalo en línea
fuente
Octava / MATLAB ,
57 5640 bytes-17 byte gracias a @ExpiredData! ¡Mira su solución aún más golfista !
Pruébalo en línea!
fuente
Cadena de planos de Factorio, 705 bytes
Lo admito, solo estoy empujando los límites de lo que cuenta como una solución.
Salida producida cuando se coloca en el juego (se utilizan configuraciones de gráficos bajos):
Para demostrar que es una solución válida, necesita probar esta cuadrícula de píxeles que coinciden exactamente con la especificación:
El resto de la imagen se clasifica como un borde o un espaciado que, como se dijo en la pregunta, no importa.
fuente
Octava , 38 bytes
Pruébalo en línea!
fuente
HTML / CSS,
278141137 bytes-137 bytes gracias a los comentaristas, especialmente @data
-4 bytes gracias a @Einacio
Utiliza Unicode
█
(U + 2588) para los "bloques" y utiliza clases CSS / estilo en línea para colorearlos.Creo que las
<font>
etiquetas podrían jugar más golf, sin embargo, cambiarlas a una etiqueta más corta, como<a>
romper elcolor
atributofuente
</td>
, el navegador es lo suficientemente inteligente como para agregar automáticamente esta etiqueta de cierre<td bgcolor=#f00>
<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">█
JavaScript,
108102bytesSin fragmento porque esto solo funciona en una consola de navegador real y no en la consola del fragmento. Editar: Gracias a @AJFaraday por la captura de pantalla. Explicación: Los navegadores permiten que el primer parámetro
console.log
incluya sustituciones. La%c
sustitución toma un parámetro y lo aplica como CSS (desinfectado).█
Por lo tanto, cada bloque se colorea usando la subcadena apropiada def0ff00f0
interpretado como un código de color de tres dígitos hexadecimales.fuente
%c
se usa para crear una cadena de formato, los argumentos son estilos CSS para el texto después de estoff0ff
contiene todos los colores mezclados y00f00
contiene todos los colores puros. Si les concatena a obtener posiciones duplicadas paraff0
yf00
por lo que puede eliminar los caracteres primero y último. Luego escribí un breve script para verificar todas las cadenas de 7 caracteres para asegurar que 8 fuera óptimo.HTML (GIF), 108 bytes
¡Es la batalla de los formatos de imagen basados en la web! (¿Algún competidor de TIF o JPG por ahí?)
Respuestas de @AC .
HTML (BMP),
116115 bytesRespuesta por @ ASCII-only .
HTML (WebP), 116 bytes
Respuestas de @Hohmannfan .
HTML (PNG),
151136135 bytes-15 bytes gracias a @Hohmannfan .
Además, vea mis respuestas CSS y SVG .
fuente
<img src="data:image/bmp;base64,Qk0+AAAAQVNDTxoAAAAMAAAAAwADAAEAGAD/AP///wD/AAAAAAAA//8A/wD//wAAAAAAAP8A////AP8AAAA=">
. Encabezado de archivo de 14 bytes, encabezado de aplicación de 12 bytes, 9 de datos reales por fila (+3 para rellenar a múltiplo de 4), sí<img src="data:image/gif;base64,R0lGODdhAwADAMIGAAAA//8AAP8A/wD/AAD/////AAAAAAAAACwAAAAAAwADAAADBhglNSQEJAA7">
es más cortoiVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAFElEQVR4AWP4z8Dw/z8DEIIodB4A4D0O8pOGuTgAAAAASUVORK5CYII=
<img src=data:image/webp;base64,UklGRjYAAABXRUJQVlA4TCoAAAAvAoAAAC8gEEjaH3qN+RcQFPk/2vwHH0QCg0I2kuDYvghLcAoX0f/4Hgc>
dc (en xterm), 64 bytes
Solo obtendrá un montón de códigos de escape extravagantes en lugar de colores, ¡pero aún puede probarlo en línea!
Según tengo entendido, los 16 colores básicos ANSI son libres de ser interpretados como quiera el terminal. Por otro lado, los 216 colores en el cubo de color xterm tienen valores RGB explícitos. Estoy usando estos códigos e imprimiendo una cuadrícula de
X
s:Primero establecemos la raíz de entrada a base 15 con
Fi
. Esto cuesta dos bytes, pero devuelve tres, así que ... una ganancia neta de un byte (y una gran pérdida de legibilidad). A continuación, intentamos obtener nuestros valores de color en la pila. En decimal, esto sería21 51 201 51 46 226 201 226 196
, pero estamos en modo loco, así que será16 36 D6 36 31 101 D6 101 D1
. Eliminamos uno de los espacios colocando en una macro que necesitamos definir en algún momento[AP]sF
(que simplemente imprime un avance de línea). Podemos reducir36 D6 36
y101 D6 101
colocando el primer valor en la pila, duplicándolo, colocando el segundo y luego intercambiando (36dD6r
,101dD6r
).Macro
M
maneja la impresión y demás.1CP
imprime el personaje de escape. Los corchetes se usan para delimitar cadenas, y que yo sepa, no se pueden escapar, por lo que también necesitamos imprimir el corchete con un valor ASCII61P
.[38;5;]P
es el código 'establecer color de primer plano de la lista numerada'.n
imprime el valor desde la parte superior de la pila con una nueva línea, haciendo estallarlo.[mX]P
termina el código e imprime una 'X'.z3%0=F
comprueba la profundidad de pila mod 3, ejecutando nuestra macro de avance de líneaF
cuando sea necesario.z0<M
sigueM
funcionando mientras haya cosas en la pila.dsMx
correr.Tenga en cuenta que si ejecuta esto en CC en un xterm, dejará su color de primer plano azul.
1CP61P74P
(la entrada que se muestra en la captura de pantalla) debería restablecer esto.fuente
Tortuga Blockly, 45 bloques
Pruébalo en línea!
¿Qué tal si jugamos un pequeño juego para encontrar la herramienta más ridícula para el trabajo?
Salida:
El programa (como captura de pantalla para herejía adicional):
Nota: Los bloques en gris también se cuentan hacia la métrica.
fuente
Node.js, 79 bytes
Produce un archivo llamado "P" en el formato PPM que contiene la cuadrícula de colores.
fuente
TI-Basic, x bytes (marcaré cuando pueda)
Nota: el filtro de contenido me impide buscar los tamaños de token para cada uno de estos comandos. Si alguien quiere marcar para mí, anímate.
Esto se ve muy mal en mi pequeña pantalla de calculadora. Pero bueno, la forma no importa: ^)
Salida de golf: modificada para una salida 8x mayor:
TI-BASIC, x bytes
Usando Pxl-On en lugar de Texto:
Salida: explotada ~ 11x:
fuente
TextColor
como 2 bytes, no 9 como cabría esperar @NatC ++, SFML, 177 bytes
Utiliza el
sf::Image::create(int,int,unsigned char*)
método para crear una imagen con valores rgbfuente
0xFF0000
como255<<16
.int b=255<<16,g=65280,r=255,d[]={r,g|r,b|r,g|r,g,b|g,b|r,b|g,b};
C #,
248204198 bytesSalida:
fuente
BASIC C64, 106 bytes
fuente
Wolfram Language (Mathematica), 72 bytes
fuente