Schreiben Sie das kürzestmögliche Programm, das eine Bresenham-Linie in ASCII-Kunst zeichnet. Ihr Programm sollte zwei Ganzzahlen x
und y
(Kommandozeile oder stdin, Ihre Wahl) verwenden und eine ASCII-Linie zeichnen, die oben links beginnt und nach rechts x
und unten beginnt y
. Sie müssen _
und \
-Zeichen verwenden und gemäß Bresenhams Algorithmus an der richtigen Stelle platzieren .
Sie können davon ausgehen x >= y
, dass keine vertikalen Segmente erforderlich sind.
Da Sie das _
Zeichen verwenden, müssen Sie für eine Zeile mit y=3
wahrscheinlich 4 Textzeilen ausgeben (und Sie können eine führende Leerzeile ausgeben, wenn dies nicht erforderlich ist).
Beispiele:
11 3
_
\___
\___
\_
11 1
_____
\_____
5 4
\
\_
\
\
Für Punkte, die genau auf halber Strecke liegen, können Sie eine der folgenden Rundungen wählen:
10 1
____
\_____
or
_____
\____
Read(input,x,y)
kann aufread(x,y)
und ohne gekürzt werdenprogram
undapptype
wird zu 157 Zeichen.if(i*y+x div 2)mod x<y then
if(i*y*2+x)mod(x*2)<y*2then
APL (Dyalog Classic) , 39 Byte
Probieren Sie es online!
quelle