Cetak semua warna kisi 3x3

21

Anda memiliki kisi 3x3. Setiap sel bisa berwarna hitam atau putih. Tampilkan semua 512 warna ini. Bytes paling sedikit menang.

Anda dapat menampilkan kisi-kisi dalam formasi apa saja asalkan terpisah secara visual dan jaraknya terlihat biasa. Anda dapat menggunakan seni atau gambar ASCII. Dua simbol atau warna yang terlihat jelas dapat digunakan untuk hitam dan putih. Setiap spasi putih baik-baik saja asalkan hasilnya secara visual benar.

Contoh output:

...
...
...

...
...
..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
sumber
@ edc65 xnor membuat edit, dan Filipe menyetujuinya (setelah itu saya membersihkan komentar). Saya baru saja menambahkan tag.
Martin Ender
Bisakah kita memindahkan contoh ke PasteBin? Anemia untuk menggulir pada saat ini. Selain itu, ini hanya set daya input kuadrat, dibagi menjadi garis-garis input di mana 1s dan 0s digantikan oleh Xdan.
Stan Strum

Jawaban:

16

K, 11 byte

(3 3#)'!9#2

Contoh keluaran:

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

Ini adalah representasi asli K yang telah dicetak sebelumnya dari daftar matriks, yang saya pikir cukup untuk spec masalah. Setiap matriks dibatasi oleh seperangkat tanda kurung yang dilampirkan.

Dan pemeriksaan kewarasan cepat untuk menunjukkan bahwa 512 matriks dibangun:

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

Sangat mudah. Sebagian besar pekerjaan ada di !. Pertama-tama kita menghasilkan vektor 2-panjang 9s menggunakan "take" ( 9#2). Kemudian, kami menggunakan bentuk monadik "odometer" !- beberapa contoh menggambarkan perilakunya:

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

Maka cukup lakukan 3x3 membentuk kembali ( (3 3#)) dari masing-masing ( ') dari vektor-vektor panjang 9/1.

JohnE
sumber
34

Mathematica, 25 byte

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

Memberikan array dengan semua kisi sebagai gambar, yang juga langsung ditampilkan di layar:

masukkan deskripsi gambar di sini

(Dipotong agar tidak meledakkan pos yang tidak perlu.)

Martin Ender
sumber
3
diputuskan untuk menjadi hasil tercantik
Filipe Teixeira
14

JavaScript, 77 80

Direvisi setelah revisi OP. Sekarang kami memiliki pertanyaan, jadi inilah jawabannya.

Jalankan cuplikan di browser apa saja untuk menguji.

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

Posting lama: tampilan grafik di browser, dengan javascript dan kanvas. ~ 300 byte kode (bisa dibuat lebih pendek).

Jalankan cuplikan di bawah.

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
sumber
Jika Anda menentukan (ES6), Anda dapat mengganti .join('\n')dengan .join` `(baris literal, bukan spasi ... format komentar bodoh) untuk menyimpan 3 byte
Patrick Roberts
@ PatrickRoberts ya, string template sudah diterapkan di Firefox 14 bulan lalu, tapi saya tidak menyadarinya. Edit kode setelah sekian lama sedikit necrobumping
edc65
6

Matlab, 33

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

Agak fiddly untuk mendapatkan dimensi yang benar, tapi saya sangat senang dengan hasilnya!

Oebele
sumber
6

POWERSHELL - 65

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

hasil

000

000

000


000

000

001


000

000

010


000

000

011

konfirmasi

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

512

sunting diilhami oleh tampilan hasil jawaban mathatica-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")

masukkan deskripsi gambar di sini

mengoceh
sumber
6

Python 2, 49 byte

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

Membagi ekspansi biner dari i. Panjang-10 nilai biner 512 hingga 1023 digunakan, memotong awal 1 (dan awalan 0b). Ini dibagi menjadi potongan 3 sebagai jendela [3:6], [6:9], [9:12], dan [12:15], dengan yang terakhir kosong untuk membuat baris kosong. Iterasi pada empat irisan runtuh dengan lingkaran luar menghitung melalui 512 angka dengan trik divmod.

Tidak
sumber
4

CJam, 12 byte

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

Uji di sini.

Menggunakan 0dan 1sebagai karakter yang berbeda.

Penjelasan

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.

Solusi alternatif (masih 12 byte) adalah

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

Ruby, 86 byte

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}

Milik saya mencetak dengan tanda kutip karena plebih pendek dari puts, tetapi masih sesuai dengan aturan.

Piccolo
sumber
4

Haskell, 57 54 byte

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

f memberikan output yang sama seperti pada deskripsi tantangan, yaitu dimulai dengan

...
...
...

...
...
..X

...
...
.X.

Sunting: @Mauris ditemukan 3 byte untuk disimpan. Terima kasih!

nimi
sumber
Saya pikir r x=sequence[x,x,x]melakukan hal yang sama dan lebih pendek.
Lynn
@Mauris: kamu benar. Mengedit pos saya. Terima kasih!
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"));

Mengubah setiap int menjadi representasi binernya dan membagi setiap 3 karakter.

Stephan Schinkel
sumber
2

Python 2, 95 Bytes

Karakter yang berbeda adalah 0dan 1, setiap blok dipisahkan oleh \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
sumber
2

Python 2, 81

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

Ruby, 92 byte

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

Dihitung dalam 0s dan 1s, dan setiap blok dipisahkan oleh garis kosong ( \n\n)

tepuk
sumber
2

Ruby, 68 byte

Mencetak keluaran yang sama persis dengan contoh yang diberikan dalam pertanyaan

puts (0..511).map{|i|("%09b"%i).tr("01",".X").gsub(/.../){$&+$/}}*$/
daniero
sumber
Tidak perlu tr, keluaran 0dan 1baik-baik saja. Beberapa saran lagi 512.times{|i|$><<("%09b"%i).gsub(/.../){$&+$/}+$/}50 byte.
Level River St
2

Python 3, 80 byte

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

Saya berhasil mengalahkan seseorang :)

Lemon dirusak
sumber
Simpan satu byte menggunakan loop sementara: i=512baris baruwhile i:print("\n".join(format(i,'09b')[j:j+3]for j in(0,3,6)),"\n");i-=1
FlipTack
2

PHP, 55 byte

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

menggunakan 0dan 1. Jalankan dengan -r.

Titus
sumber
Saya suka cara saya menerapkan garis pemisah :)
Titus
2

Python 2 , 56 byte

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

Cobalah online!

Mengembalikan konfigurasi 512 sebagai objek set dalam python. Lihat versi yang tidak diklik untuk membuat output lebih mudah dibaca.

Versi Ungolfed untuk membuat output lebih mudah dibaca:

Python 2 , 121 byte

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

Cobalah online!

Koishore Roy
sumber
1

C - 97 byte

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

Pada dasarnya mencetak contoh output dari pertanyaan awal.

Cole Cameron
sumber
1

Cepat 2, 92 byte

Int ke string biner di Swift membutuhkan terlalu banyak karakter jadi saya hanya menggunakan dua loop bersarang ...

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

Prolog (SWI), 98 byte

Output adalah daftar matriks 3x3 yang mengandung elemen 0 dan 1.

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

Penerjemah online

Saya merasa seperti generasi matriks bisa lebih pendek.
Seharusnya mungkin untuk mencocokkan keduanya secara forall atau yang serupa, tapi saya tidak tahu caranya.

Tips golf sangat dihargai.

Emigna
sumber
1

Perl, 56 55 byte

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

Keluaran:

000
000
000

100
000
000
...
Denis Ibaev
sumber
1

Python 3, 123 121 109 103 byte

Ini yang lama:

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

Dan ini yang baru:

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

Ini mencetak karakter tambahan tetapi OP mengatakan seni ASCII diizinkan yang menyiratkan beberapa karakter baik-baik saja.

Tuan Ratte
sumber
1

Python 3, 74 byte

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

Sedikit lebih pendek dari jawaban Destructible Lemon

Armadillo
sumber
0

Perl, 52 byte

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

atau 54 byte:

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

atau Perl 5.14+, 48 byte:

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

Jelly , 17 byte (tidak bersaing)

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

Cobalah online!

Penggunaan 01. Karena bug dalam , saya harus menggunakan “¶¶bukannya⁾¶¶ , karena jika tidak, alih-alih dua baris baru, dua pilcrow akan muncul di output. Seperti yang Anda lihat, meskipun, itu tidak dikenakan biaya byte sama sekali.

K mengalahkan ini, jadi ini harus lebih jauh diturunkan.

Erik the Outgolfer
sumber
0

J , 27 byte

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

Cobalah online!

FrownyFrog
sumber
Masalahnya tidak terbatas pada format output, jadi Anda bisa menggunakannya echo _3]\"1#:i.512.
Bolce Bussiere
0

Python 2 , 114 byte

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"

Cobalah online!

Husnain Raza
sumber