Écrivez le programme le plus court possible qui dessine une ligne de Bresenham dans l'art ASCII. Votre programme doit prendre deux entiers x
et y
(ligne de commande ou stdin, votre choix) et dessiner une ligne ASCII qui commence en haut à gauche et va vers la droite x
et vers le bas y
. Vous devez utiliser _
et \
caractères et les placer au bon endroit selon de Bresenham algorithme.
Vous pouvez supposer x >= y
, donc aucun segment vertical n'est requis.
Notez que parce que vous utilisez le _
caractère, pour une ligne avec y=3
vous aurez probablement besoin de produire 4 lignes de texte (et vous pouvez émettre une première ligne vierge quand ce n'est pas nécessaire).
exemples:
11 3
_
\___
\___
\_
11 1
_____
\_____
5 4
\
\_
\
\
Pour les points qui sont exactement à mi-chemin, vous pouvez choisir l’arrondi:
10 1
____
\_____
or
_____
\____
Read(input,x,y)
peut être raccourci àread(x,y)
et sansprogram
etapptype
il devient 157 caractères.if(i*y+x div 2)mod x<y then
pourif(i*y*2+x)mod(x*2)<y*2then
pourrait aider, mais il est le montant exact même de caractères.APL (Dyalog Classic) , 39 octets
Essayez-le en ligne!
la source