Tantangan ini untuk menghormati lampu Natal yang norak di rumah mertua saya.
Tantangannya adalah membuat keluaran grafis yang menunjukkan dekorasi dalam "waktu nyata".
Video (gif atau format lain) akan memiliki "lampu" vertikal dan horizontal n-by-m . 5 <= m, n <= 40 . Ukuran dan resolusi bingkai dapat bervariasi tergantung pada n dan m , tetapi harus setidaknya 50x50 piksel untuk n, m = 5 (grafik vektor OK). Gambar dengan n=6
dan m=5
akan terlihat seperti ini:
Dekorasi:
Warna:
Semua lampu akan memiliki salah satu dari berikut 6 RGB-warna {255,0,0}
, {0,255,0}
, {0,0,255}
, {255,255,0}
, {0,255,255}
dan {255,0,255}
.
Animasi:
n
danm
akan diambil sebagai input pada format apa pun yang masuk akal dan dalam urutan yang Anda suka- Gambar akan berubah setiap
dt = 25 ms
. Penyimpangan baik-baik saja jika itu karena "faktor luar" seperti keterbatasan dalam penerjemah, komputer lambat dll.- Jika tidak mungkin untuk mengatur langkah waktu secara manual, maka langkah waktu default diterima.
- Semua lampu akan berwarna merah (
{255,0,0}
) padat=0
. - Selalu ada peluang 5% bahwa cahaya pertama (kiri atas) akan berubah warna. Semua warna (kecuali warna yang dimilikinya saat ini) harus memiliki kemungkinan yang sama.
Setiap cahaya (kecuali yang pertama) akan mendapatkan warna cahaya ke kiri. Jika cahaya berada di paling kiri maka akan mendapatkan warna cahaya di paling kanan pada baris di atas. Lampu diberi nomor seperti yang ditunjukkan di bawah ini. Nomor cahaya
k
akan mendapatkan warna nomor cahayak-1
.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Keluaran harus secara teori dijalankan selamanya (kecuali bahasa / penerjemah Anda memiliki batasan yang mencegah hal ini).
- Harap berikan sampel minimal 5 detik, lebih disukai dalam jawabannya (ini adalah dorongan, bukan persyaratan). (Tautan ke TIO atau yang serupa tentu saja juga OK: D)
- Frame, sumbu, garis kisi, dll diterima.
6-oleh-5
15-kali-30
r,g,y,b,
dll lebih pendek dalam beberapa bahasa.
drawnow
ketika saya menerapkan ini di MATLAB, karena hasilnya terlalu lambat. Saya pikir jawabannya harus: Jika itu adalah pilihan desain bahwa penerjemah memiliki resolusi waktu minimum tetap> = 25 ms maka tidak apa-apa. Jika itu karena implementasi yang buruk / sederhana, penerjemah online yang kelebihan beban / lambat dll. Maka itu tidak OK.