Tugas Anda sederhana: tulis sebuah program yang akan menggantikan piksel acak dalam persegi panjang 16px * 8px hitam (lebar dengan tinggi) dengan piksel putih.
Lubang-lubang harus acak seragam, dan Anda harus menampilkan gambar 16px kali 8 px dengan piksel putih dimasukkan.
Ganti hanya 1 piksel per kolom (16 piksel yang diganti total)
Anda tidak mengambil input apa pun, dan Anda tidak dapat mengandalkan gambar yang disimpan di tempat lain di komputer.
Ini adalah kode-golf sehingga program dengan bytecount terpendek menang!
code-golf
graphical-output
random
GracefulLemming
sumber
sumber
Jawaban:
MATL ,
151413 byteContoh (dengan kompiler MATL berjalan di MATLAB):
Atau coba di MATL Online! (Jika tidak berjalan pertama kali, tekan "Jalankan" lagi atau segarkan halaman). Perhatikan bahwa gambar tersebut diskalakan oleh penerjemah online untuk visualisasi yang lebih baik.
Ini adalah port jawaban Octave / MATLAB saya (lihat penjelasan di sana). Berikut adalah pernyataan yang setara:
sumber
Pyth -
1615 byteOutput gambar menjadi
o.png
.Contoh gambar:
sumber
Oktaf / MATLAB,
483735 byteContoh (pada Oktaf):
Penjelasan
sumber
C,
85100 byteMenulis file gambar PGM ke stdout (panggil saja
prog >out.pgm
).Tidak digabungkan dan dijelaskan:
Pembaruan:
srand(time(0))
(:(
)sumber
Memproses,
7473 byteOutput sampel:
Penjelasan
sumber
Ruby, 61 byte
Ini adalah program lengkap yang menampilkan gambar dalam format netpbm ke stdout.
Output sampel:
sumber
Befunge, 90 byte
Ini menghasilkan file PBM yang ditulis ke stdout.
Cobalah online!
Penjelasan
Tiga baris teratas membentuk generator angka acak, menyimpan 16 angka 3-bit acak (yaitu dalam kisaran 0-7) pada baris kesepuluh dari playfield. Baris empat menuliskan header PBM, dan baris terakhir kemudian menghasilkan piksel gambar. Hal ini dilakukan dengan menghitung 16 angka acak karena pikselnya adalah output - ketika angka yang sesuai dengan kolom tertentu mencapai nol, kita menghasilkan 1 daripada 0.
Output sampel (diperbesar):
sumber
Mathematica,
7760 byteOutput Sampel
Penjelasan
Buat aturan penggantian untuk setiap kolom; ganti posisi yang dipilih secara acak dengan 1.
Buat
SparseArray
dengan ukuran 8x16 dari aturan penggantian. Latar belakang secara0
default. (8x16 karena Mathematica menghitung baris terlebih dahulu)Konversikan
SparseArray
menjadiImage
objek.Versi 77 byte
sumber
HTML + JavaScript, 148 byte
sumber
R, 76 byte
Menggunakan paket
png
untuk menghasilkan file.Contoh output:
sumber
QBasic, 59 byte
Cukup mudah. Ini
-.5
diperlukan karenaPSET
dengan argumen non-integer gunakan round-to-terdekat bukan floor atau truncate (dan-.5
lebih pendek dariINT()
).Gambar yang dimaksud ditampilkan di sudut kiri atas jendela output. Contoh (terpangkas):
sumber
Java, ( Apakah itu penting Bytes, AKA 244 + 18 import = 262)
Tenang karena sistem koordinat termasuk panel bingkai jendela ... Jadi Anda perlu buffer setidaknya 26 byte atau tidak ada yang muncul, maka
x=50
sedikit.sumber
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();}
(Perubahan dilakukan: statis dihapus; Java 8 lambda; beberapaint
s dihapus;i=16
digunakan kembali; masukkan barang-barang di dalam for-loop untuk menghapus kurung dan;
)Postscript (65 byte)
Versi tidak disatukan:
sumber
SmileBASIC, 30 byte
sumber
Chip-8, 12 byte
Menarik gambar di layar.
sumber
Tcl / Tk, 163
Dua pendekatan yang berbeda menghasilkan byte yang sama:
sumber
VBA Excel,
86105 bytemenggunakan jendela langsung
sumber
Cells.RowHeight=42:[A1:P8].Interior.Color=0:For x=0To 15:[A1].Offset(Rnd*7,x).Interior.Color=-1:Next
-1
bukannyavbWhite
- penjelasan lengkap mengapa di sini )