Ihre Aufgabe ist einfach: Schreiben Sie ein Programm, das zufällige Pixel in einem schwarzen Rechteck von 16 x 8 Pixel (Breite x Höhe) durch weiße Pixel ersetzt.
Die Löcher müssen gleichmäßig zufällig sein, und Sie sollten das 16 x 8 Pixel große Bild mit den eingefügten weißen Pixeln ausgeben.
Ersetzen Sie nur 1 Pixel pro Spalte (insgesamt 16 ersetzte Pixel)
Sie nehmen keine Eingaben vor und können sich nicht darauf verlassen, dass das Bild an anderer Stelle auf dem Computer gespeichert wird.
Dies ist Code-Golf, also gewinnt das Programm mit dem kürzesten bytecount!
code-golf
graphical-output
random
GracefulLemming
quelle
quelle
Antworten:
MATL ,
151413 BytesBeispiel (mit MATL-Compiler unter MATLAB):
Oder probieren Sie es bei MATL Online! (Wenn es nicht zum ersten Mal ausgeführt wird, klicken Sie erneut auf "Ausführen" oder aktualisieren Sie die Seite). Beachten Sie, dass das Bild zur besseren Visualisierung vom Online-Interpreter skaliert wird.
Dies ist ein Port meiner Octave / MATLAB-Antwort (siehe Erklärung dort). Hier sind die äquivalenten Aussagen:
quelle
Pyth -
1615 BytesGibt das Bild an aus
o.png
.Beispielbild:
quelle
Octave / MATLAB,
483735 BytesBeispiel (auf Oktave):
Erläuterung
quelle
C
85100 BytesSchreibt eine PGM- Image-Datei nach stdout (ruft sie mit auf
prog >out.pgm
).Ungolfed und erklärte:
Aktualisierung:
srand(time(0))
(:(
)quelle
Verarbeitung,
7473 BytesBeispielausgabe:
Erläuterung
quelle
Ruby, 61 Bytes
Dies ist ein vollständiges Programm, das das Bild im Netpbm-Format an stdout ausgibt.
Beispielausgabe:
quelle
Befunge, 90 Bytes
Dies erzeugt eine PBM-Datei, die in stdout geschrieben wird.
Probieren Sie es online!
Erläuterung
Die oberen drei Zeilen bilden den Zufallszahlengenerator und speichern 16 zufällige 3-Bit-Zahlen (dh im Bereich von 0 bis 7) in der zehnten Zeile des Spielfelds. Zeile vier schreibt den PBM-Header aus, und die letzte Zeile generiert dann die Pixel des Bildes. Dies geschieht, indem die 16 Zufallszahlen bei der Ausgabe der Pixel heruntergezählt werden. Wenn die einer bestimmten Spalte entsprechende Zahl Null erreicht, geben wir statt einer 0 eine 1 aus.
Beispielausgabe (gezoomt):
quelle
Mathematica,
7760 BytesBeispielausgabe
Erläuterung
Erstellen Sie Ersetzungsregeln für jede Spalte. Ersetzen Sie eine zufällig ausgewählte Position durch 1.
Erstellen
SparseArray
Sie aus den Ersetzungsregeln eine mit der Größe 8x16. Der Hintergrund ist0
standardmäßig. (8x16, weil Mathematica zuerst die Zeilen zählt)Wandeln Sie die
SparseArray
in einImage
Objekt.77-Byte-Version
quelle
HTML + JavaScript, 148 Bytes
quelle
R, 76 Bytes
Verwendet das Paket
png
zur Ausgabe in eine Datei.Beispielausgabe:
quelle
QBasic, 59 Bytes
Ziemlich einfach. Das
-.5
wird benötigt, weilPSET
bei nicht ganzzahligen Argumenten anstelle von Floor oder Truncate Round-to-Nearest verwendet wird (und-.5
kürzer ist alsINT()
).Das betreffende Bild wird in der oberen linken Ecke des Ausgabefensters angezeigt. Ein (beschnittenes) Beispiel:
quelle
Java, ( Ist es überhaupt wichtig, Bytes, AKA 244 + 18-Import = 262)
War wackelig, weil das Koordinatensystem die Rahmenfensterscheibe enthält ... Sie müssen also mindestens 26 Bytes puffern, oder es wird nichts angezeigt, daher das
x=50
Bit.quelle
import java.awt.*;v->{new Frame(){public void paint(Graphics g){int x=50,i=16,y;g.setColor(Color.BLACK);g.fillRect(x,x,i,8);for(g.setColor(Color.WHITE);i>0;g.drawLine(x+i,x+y,x+i--,x+y),setVisible(1>0))y=(int)(Math.random()*8);}}.show();}
(Änderungen vorgenommen: statisch entfernt; Java 8 Lambda; einigeint
s entfernt;i=16
wiederverwendet; Dinge in die for-Schleife legen, um Klammern zu entfernen und;
)Postscript (65 Bytes)
Ungolfed-Version:
quelle
SmileBASIC, 30 Bytes
quelle
Chip-8, 12 Bytes
Zeichnet das Bild auf dem Bildschirm.
quelle
Tcl / Tk, 163
Zwei verschiedene Ansätze rendern im selben Byteumfang:
quelle
VBA Excel,
86105 Bytesmit sofortigem Fenster
quelle
Cells.RowHeight=42:[A1:P8].Interior.Color=0:For x=0To 15:[A1].Offset(Rnd*7,x).Interior.Color=-1:Next
-1
anstelle vonvbWhite
- vollständige Erklärung, warum hier )