home *** CD-ROM | disk | FTP | other *** search
- 810 scnclr
- 815 drawmode 1
- 820 dim d(128,64)
- 825 input "number of levels 1 through 7" ; le
- 830 ?"hit c for coustom colours"
- 835 ?"return for default"
- 840 get a$ : if a$ = "" then 840
- 845 if a$ = chr$ (13) then lc = 7 : sc = 10
- 850 if a$ = "c" then gosub 1435
- 855 ds = 2 : for n =1 to le : ds = ds + 2 ^ (n-1) : next n
- 860 mx = ds-1 : my = mx / 2
- 865 rh = pi*30/180 :vt = rh *1.2
- 870 for n = 1 to le : l = 10000 / 1.8^n
- 875 ?"working on level" ; n
- 880 ib = mx / 2^n : sk = ib *2
- 885 gosub 930
- 890 gosub 965
- 895 gosub 1000
- 900 next n
- 905 scnclr
- 910 pena 1
- 915 paint (10,10) ,0
- 920 goto 1175
- 925 rem******
- 930 for ye = 0 to mx-1 step sk
- 935 for xe = ib + ye to mx step sk
- 940 ax = xe - ib : ay = ye : gosub 1040 : d1 = d : ax = xe + ib : gosub 1040 : d2 = d
- 945 d = (d1+d2)/2 + rnd(5) * l / 2 - l / 4 : ax = xe : ay =ye : gosub 1065
- 950 next xe
- 955 next ye : return
- 960 rem *************
- 965 for xe = mx to 1 step -sk
- 970 for ye = ib to xe step sk
- 975 ax = xe : ay = ye + ib : gosub 1040 : d1 = d : ay = ye -ib : gosub 1040 : d2 = d
- 980 d = (d1+d2) / 2 + rnd(1)* l / 2 - l / 4 : ax = xe : ay =ye : gosub 1065
- 985 next ye
- 990 next xe : return
- 995 rem******************
- 1000 for xe= 0 to mx - 1 step sk
- 1005 for ye = ib to mx - xe step sk
- 1010 ax= xe +ye - ib : ay = ye - ib : gosub 1040 : d1 = d
- 1015 ax = xe + ye +ib : ay = ye + ib : gosub 1040 : d2 = d
- 1020 ax = xe + ye : ay = ye : d= (d1 + d2 )/ 2 + rnd ( 1 ) * l / 2 - l / 4 : gosub 1065
- 1025 next ye
- 1030 next xe : return
- 1035 rem****************
- 1040 if ay > my then 1050
- 1045 by = ay : bx= ax : goto 1055
- 1050 by = mx +1 - ay : bx = mx -ax
- 1055 d= d ( bx , by ) : return
- 1060 rem*************
- 1065 if ay > my then 1075
- 1070 by = ay : bx = ax : goto 1080
- 1075 by = mx + 1 - ay : bx = mx - ax
- 1080 d( bx , by ) = d : return
- 1085 rem**********************
- 1090 if xo <> -999 then 1105
- 1095 if zz < 0 then gosub 1400 : z2 = zz : zz = 0 : goto 1165
- 1100 gosub 1410 : goto 1160
- 1105 if z2 > 0 and zz > 0 then 1160
- 1110 if z2 <0 and zz < 0 then z2 = zz : zz = 0 : goto 1165
- 1115 w3 = zz / (zz-z2) : x3 = (x2-xx)*w3+xx : y3 = (y2-yy)*w3+yy : z3 = 0
- 1120 zt = zz : yt = yy : xt = xx
- 1125 if zz > 0 then 1150
- 1130 rem*****************
- 1135 zz = z3 : yy = y3 : xx = x3 : gosub 1330
- 1140 gosub 1400 : zz = 0 : yy = yt : xx = xt : z2 = zt : goto 1165
- 1145 rem ******************
- 1150 zz = z3 : yy = y3 : xx = x3 : gosub 1330
- 1155 gosub 1410 : zz = zt : yy = yt : xx = xt
- 1160 z2 = zz
- 1165 x2 = xx : y2 = yy : return
- 1170 rem ****************
- 1175 gosub 1415
- 1180 xs = .04 : ys = .04 : zs = .04
- 1185 for ax = 0 to mx : xo=-999 : for ay = 0 to ax
- 1190 gosub 1040 : zz = d : yy = ay / mx * 10000 : xx = ax / mx *10000 -yy / 2
- 1195 gosub 1325 : next ay : next ax
- 1200 for ay = 0 to mx : xo = -999 : for ax = ay to mx
- 1205 gosub 1040 : zz = d : yy = ay / mx *10000 : xx = ax / mx *10000 -yy / 2
- 1210 gosub 1325 : next ax : next ay
- 1215 for ex = 0 to mx : xo = -999 : for ey = 0 to mx - ex
- 1220 ax = ex + ey : ay = ey : gosub 1040 : zz = d : yy = ay / mx *10000
- 1225 xx = ax / mx *10000 - yy / 2 : gosub 1325 : next ey : next ex
- 1230 goto 1425
- 1235 rem********
- 1240 if xx <> 0 then 1255
- 1245 if yy <=0 then ra = - pi / 2 : goto 1265
- 1250 ra = pi / 2 : goto 1265
- 1255 ra = atn(yy/xx)
- 1260 if xx < 0 then ra = ra + pi
- 1265 r1 = ra + rh : rd = sqr(xx*xx+yy*yy)
- 1270 xx = rd *cos(r1) : yy = rd * sin(r1)
- 1275 return
- 1280 rem******
- 1285 rd = sqr(zz*zz+xx*xx)
- 1290 if xx = 0 then ra = pi / 2 : goto 1305
- 1295 ra = atn (zz/xx)
- 1300 if xx <0 then ra = ra+pi
- 1305 r1 = ra-vt
- 1310 xx = rd * cos(r1)+xx : zz = rd * sin(r1)
- 1315 return
- 1320 rem *************
- 1325 gosub 1090
- 1330 xx = xx * xs : yy = yy * ys : zz = zz *zs
- 1335 gosub 1240
- 1340 gosub 1285
- 1345 if xo = - 999 then pr$ = "m"
- 1350 if xo <> -999 then pr$ = "d"
- 1355 xp = int(yy)+cx : yp = int(zz)
- 1360 gosub 1375
- 1365 return
- 1370 rem*********
- 1375 xp = xp * 0.625 : yp = 33.14-0.663 *yp
- 1380 if pr$ = "m" then x8 = xp : y8 = yp : xo = x
- 1385 if y8 > 179 or y8 < 0 or yp > 179 or yp< 0 then return
- 1390 draw (x8,y8 to xp,yp)
- 1395 x8 = xp : y8 = yp : return
- 1400 pena sc : return
- 1405 rem***********
- 1410 pena lc : return
- 1415 return
- 1420 rem *******
- 1425 sleep 5*10^6 : goto 1460
- 1430 end
- 1435 rem*****
- 1440 input "choose high colour 2 to 16" ; lc
- 1445 input "choose high colour 2 to 16" ; sc
- 1450 return
-