Kembali ke dasar...
Sebagai seorang guru di sekolah dasar (kelas?) Setempat, Anda perlu cara untuk mengajar kelas Anda tabel waktu mereka. Yang Anda inginkan, Anda memiliki seratus kotak dan banyak pena merah. Anda juga harus dapat menunjukkan kepada kelas Anda jawaban yang benar dengan cepat.
Sekarang, Anda cukup pintar untuk menulis sebuah program yang dapat membuat tabel waktu, tetapi dapatkah Anda menggambarnya di atas seratus kotak?
Tantangan
Keluarkan seratus kuadrat ke stdout atau setara dengan menggunakan kode ansi-escape ke naungan dalam angka yang merupakan kelipatan dari input.
- Keluarkan kisi 10x10 yang berisi angka 1-100.
- Tidak masalah penyelarasan 2 digit angka di setiap kotak asalkan konsisten
- Untuk 1 angka angka, Anda dapat membuat 2 digit dan menggunakan format yang sama dengan angka 2 digit atau berada di tengah kotak.
- Jika nomor dalam kotak adalah kelipatan dari input, warnai seluruh kotak merah.
- Ini berarti seluruh kotak, bukan hanya bagian nomor
Misalnya, diberi input 3
, cetak seratus persegi yang diberikan
Ini adalah kode golf sehingga jawaban tersingkat dalam byte menang!
code-golf
arithmetic
grid
Biru
sumber
sumber
<table>
, misalnya?white
atau tidakgrey
?curses
seharusnya tidak masalah - merah itu pendek.Jawaban:
Python 2, 166 byte
Ganti
♥
dengan oktal033
(karakter pelarian ANSI).Penjelasan
Kami memperlakukan output sebagai
41×21
kisi, dan langsung menghitung karakter dan warna di setiap titik.Artinya, struktur kodenya adalah:
untuk beberapa fungsi
F
.Hasil
F
selalu dari bentuk berikut:Kami menggunakan string format
'\33[%dm%s\33[m'
, di mana yang pertama%d
adalah 0 atau 41, dan%s
adalah karakter yang ingin kita cetak.Untuk warna , kami memiliki rumus berikut:
Saya tidak akan sepenuhnya menjelaskan hal ini, tetapi pada dasarnya loop atas semua persegi panjang yang harus diwarnai merah, dan memeriksa apakah
(x, y)
ada di dalamnya.Perhatikan penggunaan chaining Operator: Saya menulis ulang
-1<A<5 and -1<B<3
ke5>A>-1<B<3
.Untuk karakter , kami memiliki rumus berikut:
Jika
y % 2 == 0
kemudian untukx = 0, 1, …
ini akan menghasilkan+---+---+---…
Jika
y % 2 == 1
kemudian untukx = 0, 1, …
ini akan menghasilkan| p |p+1|p+2…
sumber
Julia,
219182169167 byteDigunakan seperti ini:
!7
Tidak Disatukan:
Perhatikan bahwa ini sangat ungolfed, untuk keterbacaan maksimal.
sumber
HTML + Javascript, 379
HTML:
Javascript:
jsfiddle.
sumber