Drucken Sie alle Farben eines 3x3-Rasters

21

Du hast ein 3x3 Gitter. Jede Zelle kann schwarz oder weiß gefärbt sein. Zeige alle 512 dieser Farbtöne an. Wenigste Bytes gewinnt.

Sie können die Gitter in jeder Formation anzeigen, solange sie optisch getrennt sind und der Abstand gleichmäßig ist. Sie können ASCII-Grafiken oder Bilder verwenden. Für Schwarz und Weiß können zwei verschiedene sichtbare Symbole oder Farben verwendet werden. Jedes Leerzeichen ist in Ordnung, solange das Ergebnis visuell korrekt ist.

Beispielausgabe:

...
...
...

...
...
..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
quelle
@ edc65 xnor hat die Bearbeitung vorgenommen und Filipe hat sie genehmigt (danach habe ich die Kommentare gelöscht). Ich habe gerade Tags hinzugefügt.
Martin Ender
Können wir das Beispiel in einen PasteBin verschieben? Es ist anämisch, ab sofort zu scrollen. Außerdem ist dies nur die Potenz des Eingangsquadrats, aufgeteilt in Zeilen des Eingangs, in denen 1s und 0s durch Xund ersetzt werden.
Stan Strum

Antworten:

16

K, 11 Bytes

(3 3#)'!9#2

Ausgabebeispiel:

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

Dies ist Ks native hübsch gedruckte Darstellung einer Liste von Matrizen, die meiner Meinung nach für die Problemspezifikation ausreicht. Jede Matrix wird durch ein umschließendes Klammerpaar begrenzt.

Und eine schnelle Überprüfung der Vernunft, um zu demonstrieren, dass 512 Matrizen konstruiert sind:

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

Sehr einfach. Die meiste Arbeit ist in der !. Zuerst erzeugen wir mit "take" ( 9#2) einen 9-langen Vektor von 2s . Dann verwenden wir die monadische Form des "Kilometerzählers" von !- einige Beispiele veranschaulichen sein Verhalten:

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

Dann machen Sie einfach eine 3x3-Umformung ( (3 3#)) von jedem ( ') der 9-Längen-0/1-Vektoren.

JohnE
quelle
34

Mathematica, 25 Bytes

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

Gibt ein Array mit allen Rastern als Bilder aus, das auch direkt auf dem Bildschirm angezeigt wird:

Bildbeschreibung hier eingeben

(Zugeschnitten, um den Pfosten nicht unnötig zu sprengen.)

Martin Ender
quelle
3
upvoted als die schönste Ausgabe
Filipe Teixeira
14

JavaScript, 77 80

Überarbeitet nach der Überarbeitung des OP. Jetzt haben wir eine Frage, also hier ist eine Antwort.

Führen Sie das Snippet zum Testen in einem beliebigen Browser aus.

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

Alter Beitrag: Grafische Darstellung in einem Browser mit Javascript und Canvas. ~ 300 Byte Code (kann kürzer gemacht werden).

Führen Sie das folgende Snippet aus.

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
quelle
Wenn Sie angeben (ES6), können Sie durch .join('\n').join `` (wörtliche Zeilenvorschub, kein Leerzeichen ... dumme Kommentarformatierung) ersetzen , um 3 Bytes zu sparen
Patrick Roberts
@PatrickRoberts ja, Template-String wurde bereits vor 14 Monaten in Firefox implementiert, aber mir war das nicht bewusst. Bearbeiten Sie den Code nach so viel Zeit ist ein wenig nekrobumping
edc65
6

Matlab, 33

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

War ein bisschen umständlich die richtigen Maße zu bekommen, aber ich bin sehr zufrieden mit dem Ergebnis!

Oebele
quelle
6

POWERSHELL - 65

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

Ergebnis

000

000

000


000

000

001


000

000

010


000

000

011

Bestätigung

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

512

Bearbeitet, inspiriert von der Anzeige der Ergebnisse in 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")

Bildbeschreibung hier eingeben

blabb
quelle
6

Python 2, 49 Bytes

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

Teilen Sie die binäre Erweiterung von i. Die Länge-10-Binärwerte 512 bis 1023 werden verwendet, wobei die anfängliche 1 (und das Präfix 0b) abgeschnitten werden . Diese sind aufgeteilt in Stücke von 3 als Fenster [3:6], [6:9], [9:12], und [12:15], mit dem letzten leer , um eine leere Zeile zu machen. Das Iterieren über die vier Schichten wird mit der äußeren Schleife des Zählens durch 512 Zahlen mit dem Divmod-Trick reduziert.

xnor
quelle
4

CJam, 12 Bytes

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

Teste es hier.

Verwendet 0und 1als die verschiedenen Zeichen.

Erläuterung

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.

Eine alternative (noch 12 Byte) Lösung ist

2,3m*3m*N*N*
Martin Ender
quelle
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}

Meins druckt mit Anführungszeichen, weil pkürzer als puts, aber es entspricht immer noch den Regeln.

Piccolo
quelle
4

Haskell, 57 54 Bytes

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

f gibt die gleiche Ausgabe aus wie in der Challenge-Beschreibung, dh es beginnt mit

...
...
...

...
...
..X

...
...
.X.

Edit: @Mauris hat 3 Bytes zum Speichern gefunden. Vielen Dank!

nimi
quelle
Ich denke r x=sequence[x,x,x]macht das gleiche und ist kürzer.
Lynn
@ Mauris: Du hast recht. Hat meinen Beitrag bearbeitet. Vielen Dank!
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"));

Konvertiert jedes int in seine binäre Darstellung und teilt alle 3 Zeichen.

Stephan Schinkel
quelle
2

Python 2, 95 Bytes

Unterschiedliche Zeichen sind 0und 1, jeder Block wird durch getrennt \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
quelle
2

Python 2, 81

import re
for i in range(512):print re.sub('(.{3})','\\1\n',bin(i)[2:].zfill(9))
Dieter
quelle
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}

Zählt in 0s und 1s und jeder Block wird durch eine Leerzeile getrennt ( \n\n)

klatschen
quelle
2

Ruby, 68 Bytes

Druckt genau die gleiche Ausgabe wie im Beispiel in der Frage

puts (0..511).map{|i|("%09b"%i).tr("01",".X").gsub(/.../){$&+$/}}*$/
daniero
quelle
Keine Notwendigkeit tr, auszugeben 0und 1ist in Ordnung. Noch ein paar Vorschläge 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")

Ich habe es geschafft, jemanden zu übertreffen :)

Zerstörbare Zitrone
quelle
Speichern Sie ein Byte mit einer while-Schleife: i=512newlinewhile 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);

verwendet 0und 1. Laufen Sie mit -r.

Titus
quelle
Ich mag die Art und Weise, wie ich die Trennlinie implementiert habe :)
Titus
2

Python 2 , 56 Bytes

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

Probieren Sie es online!

Gibt die 512-Konfigurationen als gesetztes Objekt in Python zurück. Beziehen Sie sich auf die ungolfed version, um die Ausgabe besser lesbar zu machen.

Ungolfed-Version, um die Ausgabe lesbarer zu machen:

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

Probieren Sie es online!

Koishore Roy
quelle
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);}

Druckt grundsätzlich die Beispielausgabe der ursprünglichen Frage.

Cole Cameron
quelle
1

Swift 2, 92 Bytes

Int to binary string in Swift nimmt zu viele Zeichen in Anspruch, daher verwende ich nur zwei verschachtelte Schleifen ...

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

Prolog (SWI), 98 Bytes

Die Ausgabe ist eine Liste von 3x3-Matrizen, die die Elemente 0 und 1 enthalten.

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

Online-Dolmetscher

Ich denke, die Matrixgeneration könnte kürzer sein.
Es sollte möglich sein, das dazwischen in ein Forum oder ähnliches zu setzen, aber ich kann nicht herausfinden, wie.

Golftipps geschätzt.

Emigna
quelle
1

Perl, 56 55 Bytes

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

Ausgabe:

000
000
000

100
000
000
...
Denis Ibaev
quelle
1

Python 3, 123 121 109 103 Bytes

Hier ist meine alte:

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

Und hier ist meine neue:

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

Dies druckt zusätzliche Zeichen, aber das OP sagt, dass ASCII-Kunst erlaubt ist, was impliziert, dass mehrere Zeichen in Ordnung sind.

Lord Ratte
quelle
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)

Nur ein bisschen kürzer als die Antwort von Destructible Lemon

Gürteltier
quelle
0

Perl, 52 Bytes

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

oder 54 Bytes:

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

oder Perl 5.14+, 48 Bytes:

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

Gelee , 17 Bytes (nicht konkurrierend)

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

Probieren Sie es online!

Verwendet 01. Wegen eines Bugs in musste ich “¶¶statt verwenden⁾¶¶ , da sonst anstelle von zwei Zeilenumbrüchen zwei Pilcrows in der Ausgabe aufgetaucht wären. Wie Sie jedoch sehen können, hat mich das überhaupt keine Bytes gekostet.

K schlägt das, also muss das weiter abgespielt werden.

Erik der Outgolfer
quelle
0

J , 27 Bytes

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

Probieren Sie es online!

FrownyFrog
quelle
Das Problem ist nicht auf das Ausgabeformat beschränkt, sodass Sie es verwenden können echo _3]\"1#:i.512.
Bolce Bussiere