Tulislah program sesingkat mungkin yang menarik garis Bresenham dalam seni ASCII. Program Anda harus mengambil dua bilangan bulat x
dan y
(baris perintah atau stdin, pilihan Anda) dan menggambar garis ASCII yang dimulai di kiri atas dan menuju x
unit kanan dan ke bawah y
unit. Anda harus menggunakan _
dan \
karakter dan menempatkannya di lokasi yang benar sesuai dengan algoritma Bresenham .
Anda boleh berasumsi x >= y
, jadi tidak ada segmen vertikal yang diperlukan.
Perhatikan bahwa karena Anda menggunakan _
karakter, untuk sebuah baris dengan y=3
Anda kemungkinan akan perlu menghasilkan 4 baris teks (dan Anda dapat memancarkan baris kosong di depan ketika tidak diperlukan).
contoh:
11 3
_
\___
\___
\_
11 1
_____
\_____
5 4
\
\_
\
\
Untuk poin yang persis setengah jalan Anda dapat memilih pembulatan:
10 1
____
\_____
or
_____
\____
Read(input,x,y)
dapat disingkat menjadiread(x,y)
, dan tanpaprogram
danapptype
itu menjadi 157 karakter.if(i*y+x div 2)mod x<y then
untukif(i*y*2+x)mod(x*2)<y*2then
bisa membantu, tapi itu jumlah yang sama persis karakter.APL (Dyalog Classic) , 39 byte
Cobalah online!
sumber