Imprima todos los colores de una cuadrícula de 3x3

21

Tienes una cuadrícula de 3x3. Cada celda puede ser de color negro o blanco. Muestra los 512 de estos colores. Pocos bytes ganan.

Puede mostrar las cuadrículas en cualquier formación siempre que estén visualmente separadas y el espacio se vea regular. Puede usar imágenes o arte ASCII. Se pueden usar dos símbolos o colores visibles distintos para blanco y negro. Cualquier espacio en blanco está bien siempre que el resultado sea visualmente correcto.

Salida de ejemplo:

...
...
...

...
...
..X

...
...
.X.

...
...
.XX

...
...
X..

...
...
X.X

...
...
XX.

...
...
XXX

...
..X
...

...
..X
..X

...
..X
.X.

...
..X
.XX

...
..X
X..

...
..X
X.X

...
..X
XX.

...
..X
XXX

...
.X.
...

...
.X.
..X

...
.X.
.X.

...
.X.
.XX

...
.X.
X..

...
.X.
X.X

...
.X.
XX.

...
.X.
XXX

...
.XX
...

...
.XX
..X

...
.XX
.X.

...
.XX
.XX

...
.XX
X..

...
.XX
X.X

...
.XX
XX.

...
.XX
XXX

...
X..
...

...
X..
..X

...
X..
.X.

...
X..
.XX

...
X..
X..

...
X..
X.X

...
X..
XX.

...
X..
XXX

...
X.X
...

...
X.X
..X

...
X.X
.X.

...
X.X
.XX

...
X.X
X..

...
X.X
X.X

...
X.X
XX.

...
X.X
XXX

...
XX.
...

...
XX.
..X

...
XX.
.X.

...
XX.
.XX

...
XX.
X..

...
XX.
X.X

...
XX.
XX.

...
XX.
XXX

...
XXX
...

...
XXX
..X

...
XXX
.X.

...
XXX
.XX

...
XXX
X..

...
XXX
X.X

...
XXX
XX.

...
XXX
XXX

..X
...
...

..X
...
..X

..X
...
.X.

..X
...
.XX

..X
...
X..

..X
...
X.X

..X
...
XX.

..X
...
XXX

..X
..X
...

..X
..X
..X

..X
..X
.X.

..X
..X
.XX

..X
..X
X..

..X
..X
X.X

..X
..X
XX.

..X
..X
XXX

..X
.X.
...

..X
.X.
..X

..X
.X.
.X.

..X
.X.
.XX

..X
.X.
X..

..X
.X.
X.X

..X
.X.
XX.

..X
.X.
XXX

..X
.XX
...

..X
.XX
..X

..X
.XX
.X.

..X
.XX
.XX

..X
.XX
X..

..X
.XX
X.X

..X
.XX
XX.

..X
.XX
XXX

..X
X..
...

..X
X..
..X

..X
X..
.X.

..X
X..
.XX

..X
X..
X..

..X
X..
X.X

..X
X..
XX.

..X
X..
XXX

..X
X.X
...

..X
X.X
..X

..X
X.X
.X.

..X
X.X
.XX

..X
X.X
X..

..X
X.X
X.X

..X
X.X
XX.

..X
X.X
XXX

..X
XX.
...

..X
XX.
..X

..X
XX.
.X.

..X
XX.
.XX

..X
XX.
X..

..X
XX.
X.X

..X
XX.
XX.

..X
XX.
XXX

..X
XXX
...

..X
XXX
..X

..X
XXX
.X.

..X
XXX
.XX

..X
XXX
X..

..X
XXX
X.X

..X
XXX
XX.

..X
XXX
XXX

.X.
...
...

.X.
...
..X

.X.
...
.X.

.X.
...
.XX

.X.
...
X..

.X.
...
X.X

.X.
...
XX.

.X.
...
XXX

.X.
..X
...

.X.
..X
..X

.X.
..X
.X.

.X.
..X
.XX

.X.
..X
X..

.X.
..X
X.X

.X.
..X
XX.

.X.
..X
XXX

.X.
.X.
...

.X.
.X.
..X

.X.
.X.
.X.

.X.
.X.
.XX

.X.
.X.
X..

.X.
.X.
X.X

.X.
.X.
XX.

.X.
.X.
XXX

.X.
.XX
...

.X.
.XX
..X

.X.
.XX
.X.

.X.
.XX
.XX

.X.
.XX
X..

.X.
.XX
X.X

.X.
.XX
XX.

.X.
.XX
XXX

.X.
X..
...

.X.
X..
..X

.X.
X..
.X.

.X.
X..
.XX

.X.
X..
X..

.X.
X..
X.X

.X.
X..
XX.

.X.
X..
XXX

.X.
X.X
...

.X.
X.X
..X

.X.
X.X
.X.

.X.
X.X
.XX

.X.
X.X
X..

.X.
X.X
X.X

.X.
X.X
XX.

.X.
X.X
XXX

.X.
XX.
...

.X.
XX.
..X

.X.
XX.
.X.

.X.
XX.
.XX

.X.
XX.
X..

.X.
XX.
X.X

.X.
XX.
XX.

.X.
XX.
XXX

.X.
XXX
...

.X.
XXX
..X

.X.
XXX
.X.

.X.
XXX
.XX

.X.
XXX
X..

.X.
XXX
X.X

.X.
XXX
XX.

.X.
XXX
XXX

.XX
...
...

.XX
...
..X

.XX
...
.X.

.XX
...
.XX

.XX
...
X..

.XX
...
X.X

.XX
...
XX.

.XX
...
XXX

.XX
..X
...

.XX
..X
..X

.XX
..X
.X.

.XX
..X
.XX

.XX
..X
X..

.XX
..X
X.X

.XX
..X
XX.

.XX
..X
XXX

.XX
.X.
...

.XX
.X.
..X

.XX
.X.
.X.

.XX
.X.
.XX

.XX
.X.
X..

.XX
.X.
X.X

.XX
.X.
XX.

.XX
.X.
XXX

.XX
.XX
...

.XX
.XX
..X

.XX
.XX
.X.

.XX
.XX
.XX

.XX
.XX
X..

.XX
.XX
X.X

.XX
.XX
XX.

.XX
.XX
XXX

.XX
X..
...

.XX
X..
..X

.XX
X..
.X.

.XX
X..
.XX

.XX
X..
X..

.XX
X..
X.X

.XX
X..
XX.

.XX
X..
XXX

.XX
X.X
...

.XX
X.X
..X

.XX
X.X
.X.

.XX
X.X
.XX

.XX
X.X
X..

.XX
X.X
X.X

.XX
X.X
XX.

.XX
X.X
XXX

.XX
XX.
...

.XX
XX.
..X

.XX
XX.
.X.

.XX
XX.
.XX

.XX
XX.
X..

.XX
XX.
X.X

.XX
XX.
XX.

.XX
XX.
XXX

.XX
XXX
...

.XX
XXX
..X

.XX
XXX
.X.

.XX
XXX
.XX

.XX
XXX
X..

.XX
XXX
X.X

.XX
XXX
XX.

.XX
XXX
XXX

X..
...
...

X..
...
..X

X..
...
.X.

X..
...
.XX

X..
...
X..

X..
...
X.X

X..
...
XX.

X..
...
XXX

X..
..X
...

X..
..X
..X

X..
..X
.X.

X..
..X
.XX

X..
..X
X..

X..
..X
X.X

X..
..X
XX.

X..
..X
XXX

X..
.X.
...

X..
.X.
..X

X..
.X.
.X.

X..
.X.
.XX

X..
.X.
X..

X..
.X.
X.X

X..
.X.
XX.

X..
.X.
XXX

X..
.XX
...

X..
.XX
..X

X..
.XX
.X.

X..
.XX
.XX

X..
.XX
X..

X..
.XX
X.X

X..
.XX
XX.

X..
.XX
XXX

X..
X..
...

X..
X..
..X

X..
X..
.X.

X..
X..
.XX

X..
X..
X..

X..
X..
X.X

X..
X..
XX.

X..
X..
XXX

X..
X.X
...

X..
X.X
..X

X..
X.X
.X.

X..
X.X
.XX

X..
X.X
X..

X..
X.X
X.X

X..
X.X
XX.

X..
X.X
XXX

X..
XX.
...

X..
XX.
..X

X..
XX.
.X.

X..
XX.
.XX

X..
XX.
X..

X..
XX.
X.X

X..
XX.
XX.

X..
XX.
XXX

X..
XXX
...

X..
XXX
..X

X..
XXX
.X.

X..
XXX
.XX

X..
XXX
X..

X..
XXX
X.X

X..
XXX
XX.

X..
XXX
XXX

X.X
...
...

X.X
...
..X

X.X
...
.X.

X.X
...
.XX

X.X
...
X..

X.X
...
X.X

X.X
...
XX.

X.X
...
XXX

X.X
..X
...

X.X
..X
..X

X.X
..X
.X.

X.X
..X
.XX

X.X
..X
X..

X.X
..X
X.X

X.X
..X
XX.

X.X
..X
XXX

X.X
.X.
...

X.X
.X.
..X

X.X
.X.
.X.

X.X
.X.
.XX

X.X
.X.
X..

X.X
.X.
X.X

X.X
.X.
XX.

X.X
.X.
XXX

X.X
.XX
...

X.X
.XX
..X

X.X
.XX
.X.

X.X
.XX
.XX

X.X
.XX
X..

X.X
.XX
X.X

X.X
.XX
XX.

X.X
.XX
XXX

X.X
X..
...

X.X
X..
..X

X.X
X..
.X.

X.X
X..
.XX

X.X
X..
X..

X.X
X..
X.X

X.X
X..
XX.

X.X
X..
XXX

X.X
X.X
...

X.X
X.X
..X

X.X
X.X
.X.

X.X
X.X
.XX

X.X
X.X
X..

X.X
X.X
X.X

X.X
X.X
XX.

X.X
X.X
XXX

X.X
XX.
...

X.X
XX.
..X

X.X
XX.
.X.

X.X
XX.
.XX

X.X
XX.
X..

X.X
XX.
X.X

X.X
XX.
XX.

X.X
XX.
XXX

X.X
XXX
...

X.X
XXX
..X

X.X
XXX
.X.

X.X
XXX
.XX

X.X
XXX
X..

X.X
XXX
X.X

X.X
XXX
XX.

X.X
XXX
XXX

XX.
...
...

XX.
...
..X

XX.
...
.X.

XX.
...
.XX

XX.
...
X..

XX.
...
X.X

XX.
...
XX.

XX.
...
XXX

XX.
..X
...

XX.
..X
..X

XX.
..X
.X.

XX.
..X
.XX

XX.
..X
X..

XX.
..X
X.X

XX.
..X
XX.

XX.
..X
XXX

XX.
.X.
...

XX.
.X.
..X

XX.
.X.
.X.

XX.
.X.
.XX

XX.
.X.
X..

XX.
.X.
X.X

XX.
.X.
XX.

XX.
.X.
XXX

XX.
.XX
...

XX.
.XX
..X

XX.
.XX
.X.

XX.
.XX
.XX

XX.
.XX
X..

XX.
.XX
X.X

XX.
.XX
XX.

XX.
.XX
XXX

XX.
X..
...

XX.
X..
..X

XX.
X..
.X.

XX.
X..
.XX

XX.
X..
X..

XX.
X..
X.X

XX.
X..
XX.

XX.
X..
XXX

XX.
X.X
...

XX.
X.X
..X

XX.
X.X
.X.

XX.
X.X
.XX

XX.
X.X
X..

XX.
X.X
X.X

XX.
X.X
XX.

XX.
X.X
XXX

XX.
XX.
...

XX.
XX.
..X

XX.
XX.
.X.

XX.
XX.
.XX

XX.
XX.
X..

XX.
XX.
X.X

XX.
XX.
XX.

XX.
XX.
XXX

XX.
XXX
...

XX.
XXX
..X

XX.
XXX
.X.

XX.
XXX
.XX

XX.
XXX
X..

XX.
XXX
X.X

XX.
XXX
XX.

XX.
XXX
XXX

XXX
...
...

XXX
...
..X

XXX
...
.X.

XXX
...
.XX

XXX
...
X..

XXX
...
X.X

XXX
...
XX.

XXX
...
XXX

XXX
..X
...

XXX
..X
..X

XXX
..X
.X.

XXX
..X
.XX

XXX
..X
X..

XXX
..X
X.X

XXX
..X
XX.

XXX
..X
XXX

XXX
.X.
...

XXX
.X.
..X

XXX
.X.
.X.

XXX
.X.
.XX

XXX
.X.
X..

XXX
.X.
X.X

XXX
.X.
XX.

XXX
.X.
XXX

XXX
.XX
...

XXX
.XX
..X

XXX
.XX
.X.

XXX
.XX
.XX

XXX
.XX
X..

XXX
.XX
X.X

XXX
.XX
XX.

XXX
.XX
XXX

XXX
X..
...

XXX
X..
..X

XXX
X..
.X.

XXX
X..
.XX

XXX
X..
X..

XXX
X..
X.X

XXX
X..
XX.

XXX
X..
XXX

XXX
X.X
...

XXX
X.X
..X

XXX
X.X
.X.

XXX
X.X
.XX

XXX
X.X
X..

XXX
X.X
X.X

XXX
X.X
XX.

XXX
X.X
XXX

XXX
XX.
...

XXX
XX.
..X

XXX
XX.
.X.

XXX
XX.
.XX

XXX
XX.
X..

XXX
XX.
X.X

XXX
XX.
XX.

XXX
XX.
XXX

XXX
XXX
...

XXX
XXX
..X

XXX
XXX
.X.

XXX
XXX
.XX

XXX
XXX
X..

XXX
XXX
X.X

XXX
XXX
XX.

XXX
XXX
XXX
Filipe Teixeira
fuente
@ edc65 xnor hizo la edición y Filipe la aprobó (después de lo cual eliminé los comentarios). Acabo de agregar etiquetas.
Martin Ender
¿Podemos mover el ejemplo a un PasteBin? Es anémico desplazarse en este momento. Además, esto es sólo el conjunto potencia de la entrada al cuadrado, dividido en líneas de la entrada, donde los 1s y 0s son reemplazadas por Xe.
Stan Strum

Respuestas:

16

K, 11 bytes

(3 3#)'!9#2

Ejemplo de salida:

((0 0 0
  0 0 0
  0 0 0)
 (0 0 0
  0 0 0
  0 0 1)
 (0 0 0
  0 0 0
  0 1 0)
 (0 0 0
  0 0 0
  0 1 1)
…

Esta es la representación nativa de K de una lista de matrices, que creo que es suficiente para la especificación del problema. Cada matriz está delimitada por un conjunto de paréntesis.

Y una comprobación rápida de la cordura para demostrar que se construyen 512 matrices:

  #(3 3#)'!9#2
512

Muy sencillo La mayor parte del trabajo está en el !. Primero generamos un vector de 2 de 9 largos usando "take" ( 9#2). Luego, utilizamos la forma monádica de "odómetro" de !: algunos ejemplos ilustran su comportamiento:

  !2 2
(0 0
 0 1
 1 0
 1 1)
  !2 3
(0 0
 0 1
 0 2
 1 0
 1 1
 1 2)
  !2 2 2
(0 0 0
 0 0 1
 0 1 0
 0 1 1
 1 0 0
 1 0 1
 1 1 0
 1 1 1)

Luego, simplemente haga una remodelación 3x3 ( (3 3#)) de cada ( ') de los vectores 0/1 de 9 longitudes.

JohnE
fuente
34

Mathematica, 25 bytes

Image/@{0,1}~Tuples~{3,3}

Proporciona una matriz con todas las cuadrículas como imágenes, que también se muestra directamente en la pantalla:

ingrese la descripción de la imagen aquí

(Recortada para no hacer estallar la publicación innecesariamente).

Martin Ender
fuente
3
votó por ser la salida más bonita
Filipe Teixeira
14

JavaScript, 77 80

Revisado después de la revisión del PO. Ahora tenemos una pregunta, así que aquí hay una respuesta.

Ejecute el fragmento en cualquier navegador para probar.

// Test: redefine console to have output inside the snippet

console = { log: function(x) { O.textContent+=x+'\n\n';} }

// Solution: 77 chars (note, distinct outputs to console are automatically separed)
  
for(i=511;++i<1024;)console.log(i.toString(2).slice(1).match(/.../g).join`
`)
<pre id=O></pre>

Publicación anterior: visualización gráfica en un navegador, con JavaScript y lienzo. ~ 300 bytes de código (se puede acortar).

Ejecute el fragmento a continuación.

d=8, // Min block size
C.width=d*64,C.height=d*128,
T=C.getContext('2d')

for(i=0;i<512;i++)
{
  bx=4*(i/32|0)
  by=4*(i%32)
  for(b=1,j=0;j<9;j++,b+=b)    
  {
    if(b&i) 
      x=j/3|0, y=j%3, T.fillRect((bx+x)*d,(by+y)*d,d,d);
  }
  T.strokeRect(bx*d,by*d,d*3,d*3);
}
<canvas id=C></canvas>

edc65
fuente
Si lo especifica (ES6), puede reemplazarlo .join('\n')con .join`` (nueva línea literal, no espacio ... formato de comentario estúpido) para guardar 3 bytes
Patrick Roberts
@PatrickRoberts sí, la cadena de plantilla ya se implementó en Firefox hace 14 meses, pero no estaba al tanto de eso. Editar el código después de tanto tiempo es un poco necrobumping
edc65
6

Matlab, 33

reshape(dec2bin(0:511,9)',3,3,[])

Fue un poco complicado obtener las dimensiones correctas, ¡pero estoy muy contento con el resultado!

Oebele
fuente
6

POWERSHELL - 65

0..511|%{[convert]::ToString($_,2).padleft(9,'0')-split"(.{3})"}

resultado

000

000

000


000

000

001


000

000

010


000

000

011

confirmación

(0..511|%{[convert]::ToString($_,2).padleft(9,'0')-split"(.{3})"} | measure -Line).lines/3

512

edición inspirada en la visualización de resultados de la respuesta matemática-617

Add-Type -AssemblyName System.Drawing
$a=new-object System.Drawing.Bitmap 992,496
$g=[Drawing.Graphics]::FromImage($a)
$b=@{};$y=@{};$i=$c=$d=$z=$k=$l=$m=0;
0..511|%{$y[$d++]=[convert]::ToString($_,2).padleft(9,'0')}
while($m-lt480){while($l-lt496){for($z=($m+0);$z-lt($m+32);$z++){
      $y[$z].tochararray()|%{if($_-eq"0"){$b[$i++]=[Drawing.Brushes]::Black}
        else{$b[$i++]=[Drawing.Brushes]::White}
      }
      for($j=($l+0);$j-lt($l+30);$j+=10){
        ($k+0),($k+10),($k+20)|%{$g.FillRectangle($b[$c++],$_,$j,10,10)}
      }$k+=31
    }$k=0;$l+=31;$m+=32
  }
}$a.save("$HOME/3X3_Grid.png")

ingrese la descripción de la imagen aquí

blabb
fuente
6

Python 2, 49 bytes

i=2048;exec"print bin(i/4)[i%4*3+3:][:3];i+=1;"*i

Divide la expansión binaria de i. Se utilizan los valores binarios de longitud 10 512 a 1023, cortando el 1 inicial (y el prefijo 0b). Estos se dividen en trozos de 3 como ventanas [3:6], [6:9], [9:12], y [12:15], con el último espacio en blanco para hacer una línea en blanco. La iteración sobre las cuatro rebanadas se contrae con el bucle externo de contar a través de 512 números con el truco divmod.

xnor
fuente
4

CJam, 12 bytes

2,9m*3f/N*N*

Pruébalo aquí.

Usos 0y 1como los distintos personajes.

Explicación

2,  e# Push [0 1].
9m* e# Generate all 9-tuples of 0s and 1s.
3f/ e# Split each 9-tuple into 3 subarrays of length 3.
N*  e# Join all those grids with newlines.
N*  e# Put newlines between all the length-3 arrays.

Una solución alternativa (todavía de 12 bytes) es

2,3m*3m*N*N*
Martin Ender
fuente
4

Ruby, 86 bytes

0.upto(511).map{|i|i.to_s(2).rjust(9,'0')}.each{|j|p j[0..2];p j[3..5];p j[6..8];puts}

El mío imprime con comillas porque pes más corto que puts, pero aún se ajusta a las reglas.

Piccolo
fuente
4

Haskell, 57 54 bytes

r x=sequence[x,x,x]
u=unlines
f=putStr$u$map u$r$r".X"

f da el mismo resultado que en la descripción del desafío, es decir, comienza con

...
...
...

...
...
..X

...
...
.X.

Editar: @Mauris encontró 3 bytes para guardar. ¡Gracias!

nimi
fuente
Creo que r x=sequence[x,x,x]hace lo mismo y es más corto.
Lynn
@Mauris: tienes razón. Edité mi publicación. ¡Gracias!
nimi
3

C # - 111

for(int i=0;i<512;i++)Console.WriteLine(Regex.Replace(Convert.ToString(i,2).PadLeft(9,'0'),"(.{3})","$1\r\n"));

Convierte cada int en su representación binaria y divide cada 3 caracteres.

Stephan Schinkel
fuente
2

Python 2, 95 bytes

Los caracteres distintos son 0y 1, cada bloque está separado por \n\n.

n='\n';print(n+n).join(y[:3]+n+y[3:6]+n+y[-3:]for y in[bin(x)[2:].zfill(9)for x in range(512)])
Kade
fuente
2

Pitón 2, 81

import re
for i in range(512):print re.sub('(.{3})','\\1\n',bin(i)[2:].zfill(9))
dieter
fuente
2

Ruby, 92 bytes

0.upto(511){|i|("%09d"%i.to_s(2)).scan(/.{3}/).map{|j|j.scan(/./)}.map{|j|puts j.join};puts}

Cuenta en 0 sy 1s, y cada bloque está separado por una línea vacía ( \n\n)

aplaudir
fuente
2

Ruby, 68 bytes

Imprime exactamente la misma salida que el ejemplo dado en la pregunta

puts (0..511).map{|i|("%09b"%i).tr("01",".X").gsub(/.../){$&+$/}}*$/
daniero
fuente
No hay necesidad de trsalida 0y 1está bien. Algunas sugerencias más 512.times{|i|$><<("%09b"%i).gsub(/.../){$&+$/}+$/}50 bytes.
Level River St
2

Python 3, 80 bytes

for i in range(512):print("\n".join(format(i,'09b')[j:j+3]for j in(0,3,6)),"\n")

Me las arreglé para superar a alguien :)

Limón Destructible
fuente
Guardar un byte usando un ciclo while: i=512nueva líneawhile i:print("\n".join(format(i,'09b')[j:j+3]for j in(0,3,6)),"\n");i-=1
FlipTack
2

PHP, 55 bytes

for(;$c<512;)echo chunk_split(sprintf("%09b ",$c++),3);

usos 0y 1. Corre con -r.

Titus
fuente
Me encanta la forma en que implementé la nueva línea de separación :)
Titus
2

Python 2 , 56 bytes

from itertools import*
print set(combinations('X.'*9,9))

Pruébalo en línea!

Devuelve las configuraciones 512 como un objeto establecido en python. Consulte la versión no protegida para que la salida sea más legible.

Versión sin campos para hacer que la salida sea más legible:

Python 2 , 121 bytes

from itertools import*
for i in set(combinations('X.'*9,9)):
	for j in range(3):print''.join(list(i))[j*3:(j*3)+3]
	print

Pruébalo en línea!

Koishore Roy
fuente
1

C - 97 bytes

i;main(j){for(;i++<512;)for(j=0;j++<13;)putchar(j%4&&j<13?i%(1<<j-j/4)>(1<<j-j/4-1)-1?88:46:10);}

Básicamente imprime el resultado de ejemplo de la pregunta original.

Cole Cameron
fuente
1

Swift 2, 92 bytes

Int a cadena binaria en Swift ocupa demasiados caracteres, así que solo uso dos bucles anidados ...

var s="";for x in 0..<512{(0..<9).map{s+=($0%3==0 ?"\n":"")+"\(x>>$0&1)"};s+="\n-"};print(s)
GoatInTheMachine
fuente
1

Prólogo (SWI), 98 bytes

La salida es una lista de matrices 3x3 que contiene los elementos 0 y 1.

r([]).
r([H|T]):-between(0,1,H),r(T).
p(Y):-Z=[[_,_,_],[_,_,_],[_,_,_]],findall(Z,maplist(r,Z),Y).

Intérprete en línea

Siento que la generación de la matriz podría ser más corta.
Debería ser posible ajustar el intervalo en un forall o algo similar, pero no puedo entender cómo.

Consejos de golf apreciados.

Emigna
fuente
1

Perl, 56 55 bytes

print$_/9&1<<$_%9?1:0,$/x(!(++$_%3)+!($_%9))for+0..4607

Salida:

000
000
000

100
000
000
...
Denis Ibaev
fuente
1

Python 3, 123 121 109 103 bytes

Aquí está mi viejo:

import itertools
[print(a+b+c,d+e+f,g+h+i,'\n',sep='\n') for a,b,c,d,e,f,g,h,i in itertools.product(['X','.'],repeat=9)]

Y aquí está mi nuevo:

import itertools as i
[print(a[:3],a[3:6],a[6:],'\n',sep='\n') for a in i.product(['X','.'],repeat=9)]

Esto imprime caracteres adicionales, pero el OP dijo que el arte ASCII está permitido, lo que implica que varios caracteres están bien.

Señor ratte
fuente
1

Python 3, 74 bytes

i=512;b="\n"
while i:i-=1;a=format(i,'09b');print(a[:3]+b+a[3:6]+b+a[6:],b)

Solo un poco más corto que la respuesta de Destructible Lemon

Armadillo
fuente
0

Perl, 52 bytes

printf+("%03b
"x3).$/,$_&7,$_/8&7,$_>>6&7 for 0..511

o 54 bytes:

print map$_.$/,sprintf('%09b',$_)=~/.../g,''for 0..511

o Perl 5.14+, 48 bytes:

say sprintf('%09b',$_)=~s/.../$&\n/gr for 0..511
Denis Ibaev
fuente
0

Jalea , 17 bytes (no competitiva)

512+ḶBḊ€s€3Y€j“¶¶

Pruébalo en línea!

Usos 01. Debido a un error , tuve que usar en “¶¶lugar de ⁾¶¶, porque de lo contrario, en lugar de dos líneas nuevas, dos pilcrows se habrían mostrado en la salida. Sin embargo, como puede ver, eso no me costó nada de bytes.

K supera esto, por lo que esto debe ser más golfizado.

Erik el Outgolfer
fuente
0

J , 27 bytes

echo@<"2'.X'{~_3]\"1#:i.512

Pruébalo en línea!

FrownyFrog
fuente
El problema no es restrictivo en el formato de salida, por lo que podría usarlo echo _3]\"1#:i.512.
Bolce Bussiere
0

Python 2 , 114 bytes

from itertools import *
for i in product(".X",repeat=9):
    i="".join(i);print i[0:3]+"\n"+i[3:6]+"\n"+i[6:]+"\n"

Pruébalo en línea!

Husnain Raza
fuente