Распечатать все раскраски сетки 3х3

21

У вас есть сетка 3х3. Каждая ячейка может быть окрашена в черный или белый цвет. Показать все 512 из этих раскрасок. Побеждает несколько байтов.

Вы можете отображать сетки в любом пласте, если они визуально разделены и интервал выглядит равномерным. Вы можете использовать ASCII art или изображения. Любые два различных видимых символа или цвета могут использоваться для черного и белого. Любой пробел в порядке, если результат визуально правильный.

Пример вывода:

...
...
...

...
...
..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
Филипе Тейшейра
источник
@ edc65 xnor сделал правку, и Filipe одобрил ее (после чего я удалил комментарии). Я только добавил теги.
Мартин Эндер
Можем ли мы переместить пример в PasteBin? Это анемично, чтобы прокрутить прямо сейчас. Кроме того, это всего лишь набор мощности на входе в квадрат, разделенный на линии ввода , где 1s и 0s заменяются Xи.
Стэн Strum

Ответы:

16

К, 11 байт

(3 3#)'!9#2

Пример вывода:

((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)
…

Это нативное печатное представление K списка матриц, которое, я думаю, достаточно для спецификации задачи. Каждая матрица ограничена набором круглых скобок.

И быстрая проверка работоспособности, чтобы продемонстрировать, что построено 512 матриц:

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

Очень просто. Большая часть работы в !. Сначала мы генерируем 9-длинный вектор 2 с помощью take ( 9#2). Затем мы используем монадическую форму одометра !- несколько примеров иллюстрируют ее поведение:

  !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)

Затем просто сделайте 3x3 reshape ( (3 3#)) каждого ( ') из 0/1 векторов 9-длины.

Johne
источник
34

Mathematica, 25 байтов

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

Предоставляет массив со всеми сетками в виде изображений, который также непосредственно отображается на экране:

введите описание изображения здесь

(Обрезается, чтобы не взрывать столб без необходимости.)

Мартин Эндер
источник
3
проголосовал за самый красивый выход
Филипе Тейшейра
14

JavaScript, 77 80

Пересмотрено после пересмотра ФП. Теперь у нас есть вопрос, так что вот ответ.

Запустите фрагмент в любом браузере для проверки.

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

Старый пост: графическое отображение в браузере, с javascript и canvas. ~ 300 байт кода (можно сделать короче).

Запустите фрагмент ниже.

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
источник
Если вы укажете (ES6), вы можете заменить .join('\n')на .join` `(буквальный перевод строки, а не пробел ... глупое форматирование комментариев), чтобы сохранить 3 байта
Патрик Робертс
@PatrickRoberts да, строка шаблона уже была реализована в Firefox 14 месяцев назад, но я не знал об этом. Отредактируйте код после того, как прошло немного времени
edc65
6

Матлаб, 33

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

Было довольно сложно получить правильные размеры, но я очень доволен результатом!

Oebele
источник
6

ПОРОШОК - 65

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

результат

000

000

000


000

000

001


000

000

010


000

000

011

подтверждение

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

512

редактировать, вдохновленный отображением результатов Mathematica ответа-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")

введите описание изображения здесь

blabb
источник
6

Python 2, 49 байт

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

Разбить двоичное расширение i. Используются двоичные значения длины-10 с 512 по 1023, которые обрезают начальный 1 (и префикс 0b). Они разбиты на куски 3 , как окна [3:6], [6:9], [9:12], и [12:15], с последним один пробел , чтобы сделать пустую строку. Итерация по четырем слайсам сводится к внешнему циклу подсчета 512 чисел с помощью трюка divmod.

XNOR
источник
4

CJam, 12 байт

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

Проверьте это здесь.

Использует 0и 1как отличительные знаки.

объяснение

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.

Альтернативное (все еще 12-байтовое) решение

2,3m*3m*N*N*
Мартин Эндер
источник
4

Рубин, 86 байт

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}

Мой печатает с кавычками, потому что pкороче puts, но он все еще соответствует правилам.

Пикколо
источник
4

Haskell, 57 54 байта

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

f выдает тот же результат, что и в описании вызова, т. е. начинается с

...
...
...

...
...
..X

...
...
.X.

Редактировать: @Mauris нашел 3 байта для сохранения. Благодарность!

Ними
источник
Я думаю, r x=sequence[x,x,x]делает то же самое и короче.
Линн
@Mauris: ты прав. Отредактировал мой пост. Благодарность!
Ними
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"));

Преобразует каждое int в его двоичное представление и разбивает каждые 3 символа.

Стефан Шинкель
источник
2

Python 2, 95 байт

Отличительными символами являются 0и 1, каждый блок отделяется \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)])
Када
источник
2

Python 2, 81

import re
for i in range(512):print re.sub('(.{3})','\\1\n',bin(i)[2:].zfill(9))
Dieter
источник
2

Рубин, 92 байта

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

Рассчитывает в 0 s и 1s, и каждый блок отделяется пустой строкой ( \n\n)

хлопать в ладоши
источник
2

Рубин, 68 байт

Выводит точно такой же вывод, как в примере, приведенном в вопросе

puts (0..511).map{|i|("%09b"%i).tr("01",".X").gsub(/.../){$&+$/}}*$/
daniero
источник
Не нужно tr, вывод 0и 1нормально. Еще несколько предложений 512.times{|i|$><<("%09b"%i).gsub(/.../){$&+$/}+$/}50 байтов.
Уровень Река St
2

Python 3, 80 байт

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

Мне удалось кого-то обойти :)

Разрушаемый Лимон
источник
Сохранить байты , используя время цикла: i=512символ новой строкиwhile i:print("\n".join(format(i,'09b')[j:j+3]for j in(0,3,6)),"\n");i-=1
FlipTack
2

PHP, 55 байт

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

использует 0и 1. Беги с -r.

Titus
источник
Мне просто нравится, как я реализовал разделительный символ новой строки :)
Титус
2

Python 2 , 56 байт

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

Попробуйте онлайн!

Возвращает 512 конфигураций как набор объектов в Python. Обратитесь к разглаженной версии, чтобы сделать вывод более читабельным.

Ungolfed версия, чтобы сделать вывод более читабельным:

Python 2 , 121 байт

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

Попробуйте онлайн!

Койшор Рой
источник
1

C - 97 байт

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

В основном выводит пример вывода из исходного вопроса.

Коул Камерон
источник
1

Swift 2, 92 байта

Int для двоичной строки в Swift занимает слишком много символов, поэтому я просто использую два вложенных цикла ...

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

Пролог (SWI), 98 байт

Выход - список матриц 3х3, содержащий элементы 0 и 1.

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

Онлайн переводчик

Я чувствую, что поколение матриц может быть короче.
Должна быть возможность вписать что-то между ними в нечто похожее, но я не могу понять, как это сделать.

Гольф советы приветствуются.

Emigna
источник
1

Perl 56 55 байт

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

Выход:

000
000
000

100
000
000
...
Денис Ибаев
источник
1

Python 3, 123 121 109 103 байтов

Вот мой старый:

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

И вот мой новый:

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

Это печатает дополнительные символы, но OP говорит, что ASCII-арт разрешен, что подразумевает, что несколько символов в порядке.

Лорд ратт
источник
1

Python 3, 74 байта

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

Чуть короче, чем ответ Разрушаемого Лимона

броненосец
источник
0

Perl, 52 байта

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

или 54 байта:

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

или Perl 5.14+, 48 байт:

say sprintf('%09b',$_)=~s/.../$&\n/gr for 0..511
Денис Ибаев
источник
0

Желе , 17 байт (не конкурирует)

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

Попробуйте онлайн!

Использует 01. Из-за ошибки в , я должен был использовать “¶¶вместо ⁾¶¶, потому что в противном случае, вместо двух новых строк, две выходные строки появились бы в выводе. Однако, как вы можете видеть, это не стоило мне никаких байтов.

K превосходит это, так что это должно быть дальше в гольфе.

Эрик Outgolfer
источник
0

J , 27 байт

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

Попробуйте онлайн!

FrownyFrog
источник
Проблема не ограничивает формат вывода, поэтому вы можете использовать echo _3]\"1#:i.512.
Bolce Bussiere