Escreva o programa mais curto possível que desenhe uma linha de Bresenham na arte ASCII. Seu programa deve pegar dois números inteiros x
e y
(linha de comando ou stdin, sua escolha) e desenhar uma linha ASCII que começa no canto superior esquerdo e vai para a direita x
e para baixo y
. Você deve usar _
e \
personagens e colocá-los no local correto de acordo com o Bresenham algoritmo.
Você pode assumir x >= y
, portanto, nenhum segmento vertical é necessário.
Observe que, como você está usando o _
caractere, para uma linha com y=3
você, provavelmente será necessário gerar 4 linhas de texto (e você poderá emitir uma linha em branco à esquerda quando não for necessário).
exemplos:
11 3
_
\___
\___
\_
11 1
_____
\_____
5 4
\
\_
\
\
Para pontos que estão exatamente na metade do caminho, você pode escolher um arredondamento:
10 1
____
\_____
or
_____
\____
Read(input,x,y)
pode ser reduzido pararead(x,y)
e semprogram
eapptype
se torna 157 caracteres.if(i*y+x div 2)mod x<y then
aif(i*y*2+x)mod(x*2)<y*2then
poderia ajudar, mas é exatamente a mesma quantidade de caracteres.APL (Dyalog Classic) , 39 bytes
Experimente online!
fonte