90 lines
1.1 KiB
Plaintext
90 lines
1.1 KiB
Plaintext
INCLUDE "D2:TURTLE.ACT" ;from the Action! Tool Kit
|
|
|
|
PROC Rectangle(INT w,h)
|
|
BYTE i
|
|
|
|
FOR i=1 TO 2
|
|
DO
|
|
Forward(h)
|
|
Left(90)
|
|
Forward(w)
|
|
Left(90)
|
|
OD
|
|
RETURN
|
|
|
|
PROC Square(INT w)
|
|
Rectangle(w,w)
|
|
RETURN
|
|
|
|
PROC Triangle(INT w)
|
|
BYTE i
|
|
|
|
FOR i=1 TO 3
|
|
DO
|
|
Forward(w)
|
|
Right(120)
|
|
OD
|
|
RETURN
|
|
|
|
PROC House(INT w)
|
|
Left(90)
|
|
Square(w)
|
|
Triangle(w)
|
|
Right(90)
|
|
RETURN
|
|
|
|
INT FUNC GetMax(INT ARRAY a INT count)
|
|
INT i,max
|
|
|
|
max=0
|
|
FOR i=0 TO count-1
|
|
DO
|
|
IF a(i)>max THEN
|
|
max=a(i)
|
|
FI
|
|
OD
|
|
RETURN (max)
|
|
|
|
PROC BarChart(INT ARRAY a INT count,w)
|
|
INT max,st,i
|
|
|
|
IF count=0 THEN RETURN FI
|
|
max=GetMax(a,count)
|
|
st=w/count
|
|
Right(90)
|
|
FOR i=0 TO count-1
|
|
DO
|
|
Rectangle(a(i)*w/max,st)
|
|
Forward(st)
|
|
OD
|
|
Left(180)
|
|
Forward(w)
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE CH=$02FC,COLOR1=$02C5,COLOR2=$02C6
|
|
INT ARRAY a=[50 33 200 130 50]
|
|
|
|
Graphics(8+16)
|
|
COLOR1=$0C
|
|
COLOR2=$02
|
|
|
|
Color=1
|
|
SetTurtle(150,110,90)
|
|
House(75)
|
|
|
|
Color=0
|
|
Right(90)
|
|
Forward(5)
|
|
Left(90)
|
|
|
|
Color=1
|
|
BarChart(a,5,100)
|
|
Right(90)
|
|
Forward(5)
|
|
Right(90)
|
|
|
|
DO UNTIL CH#$FF OD
|
|
CH=$FF
|
|
RETURN
|