花火.bas

←HOMEPAGE



以下のソースはN88-BASIC用のもので、実習用に作ったものです。
N88互換BASIC などのBASICインタプリタを使えば、WINな環境でも動きます。
(N88互換BASIC は著作権が 潮田 康夫 氏にあるフリーソフトです。
必要なかたは窓の杜 ベクター などで探してください。)



10 DIM M(100),X1(100),X2(100),Y1(100),Y2(100)
20 PI=3.1416
30 cls
40 '
50 XX=500+INT(RND(1)*800)-400 : YY=300+INT(RND(1)*300)-150
60 for i = 800 to YY step -1
70 pset(xx+int(rnd(1)*2)-1,i)
80 line (XX-1,i+100)-(xx+1,i+100),8
90 next i
100 for i = YY+100 to YY step -1
110 line (XX-1,i)-(xx+1,i),8
120 next i
130 '
140 ' ここまで共通
150 '
155 K = int (RND(1)*4)+1
156 IF K=AA then 155
160 AA = K: ON AA goto 200,570,940,1150
170 '
180 ' 千菊
190 '
200 for j = 1 to 500 : next
210 for k = 30 to 0 step -8
220 circle (xx,yy),k,1
230 for j = 1 to 100 :next
240 next k
250 locate INT(xx/10),INT(yy/50) :print "ドカーン"
260 P = INT ((RND(1)^3)*3)+3
270 for k = 1 to P
280 N=4
290 IF K = 2 THEN N=2.4
300 IF K = 3 THEN N=2
310 IF k = 4 THEN N=1.5
320 for i = 0+0.1*k to 15*PI+0.1*k step N
330 L=40*k
340 M= INT(RND(1)*20*k)+10
350 X1 = xx+M*sin(i): y1= yy+M*cos(i)
360 x2 = xx+(L+M)*sin(i) : y2 = yy+(L+M)*cos(i)
370 Line (x1,y1)-(x2,y2),k+4
380 for J = 0 to 2*PI step 0.6
390 x3 = x2+5*sin(j): y3= y2+5*cos(j)
400 x4 = x2+(10+k*2)*sin(j): y4= y2+(10+k*2)*cos(j)
410 line (x3,y3)-(x4,y4),k+1
420 next J
430 next i
440 next k
450 for i = 1 to 1000*Q : next i
460 for J = 1 to 4
470 for i = J to 400 step 5
480 circle (xx,yy),i,8
490 next i
500 'for k=1 to 500:next k
510 next j
520 for k=1 to 1000:next k
530 goto 30
540 '
550 ' 枝垂れ柳
560 '
570 line (xx-1,800)-(xx+1,yy),8,BF,8
580 c=int(rnd(1)*7)+1
590 for j = 1 to 100 :i=j*20.2*PI/100
600 L=30
610 M(J)= INT(RND(1)*100)+10
620 X1(J) = XX+M(J)*sin(i): Y1(J)= YY+M(J)*cos(i)
630 X2(J) = XX+(L+M(J))*sin(i) : Y2(J) = YY+(L+M(J))*cos(i)
640 Line (x1(j),y1(j))-(x2(j),y2(j)),c
650 next j
660 N=60+INT(RND(1)*61)
670 for L = 30 to N step 8
680 for j = 1 to 100 :i=j*20.2*PI/100
690 X1(J) = X2(J):Y1(J)=Y2(J)
700 X2(J) = XX+(L+M(J))*sin(i) : Y2(J) = YY+((L-30)^2/30)+(L+M(J))*cos(i)
710 Line (x1(j),y1(j))-(x2(j),y2(j)),c
720 next j
730 next L
740 for T = 1 to 1000 : next
750 for j = 1 to 100 :i=j*20.2*PI/100
760 L=30
770 X1(J) = XX+M(J)*sin(i): Y1(J)= YY+M(J)*cos(i)
780 X2(J) = XX+(L+M(J))*sin(i) : Y2(J) = YY+(L+M(J))*cos(i)
790 Line (x1(j),y1(j))-(x2(j),y2(j)),8
800 next j
810 for L = 30 to N step 8
820 for j = 1 to 100 :i=j*20.2*PI/100
830 X1(J) = X2(J):Y1(J)=Y2(J)
840 X2(J) = XX+(L+M(J))*sin(i) : Y2(J) = YY+((L-30)^2/30)+(L+M(J))*cos(i)
850 Line (x1(j),y1(j))-(x2(j),y2(j)),8
860 next j
870 next L
880 for T = 1 to 1000 : next
890 goto 30
900 '
910 ' ラッキー7
920 '
930 for j = 1 to 1000 : next
940 L=20
950 for K=1 to 7
960 c=int(rnd(1)*7)+1
970 X1(K)=XX+INT(RND(1)*300)-150 : Y1(K)=YY+INT(RND(1)*200)-100
980 X1(1) = XX : Y1(1) = YY
990 for j = 1 to 60 :i=j*20.4*PI/100
1000 M= INT(RND(1)*60)+10
1010 X1 = X1(K)+M*sin(i): Y1= Y1(K)+M*cos(i)
1020 X2 = X1(K)+(L+M)*sin(i) : Y2 = Y1(K)+(L+M)*cos(i)
1030 Line (x1,y1)-(x2,y2),c
1040 next j
1050 next K
1060 FOR K = 1 to 4
1070 for i = K to 100 step 5
1080 for J = 1 to 7
1090 CIRCLE (x1(J),y1(J)),i,8
1100 NEXT J,I,K
1110 goto 30
1120 '
1130 ' 八重芯
1140 '
1150 N=2+INT((RND(1)^2)*4)
1160 CIRCLE (XX,YY),N*3,7,,,,F
1170 for T = 1 to 50 : next T
1180 CIRCLE (XX,YY),N*3,8,,,,F
1190 for T = 1 to 1000 : next
1200 L=20
1210 for K=1 to N
1220 c=int(rnd(1)*7)+1
1230 for j = 1 to 40+K*20 :i=j*20.3*PI/100+K
1240 M= INT(RND(1)*50)+30*K-25
1250 X1 = XX+M*sin(i): Y1= YY+M*cos(i)
1260 X2 = XX+(L+M)*sin(i) : Y2 = YY+(L+M)*cos(i)
1270 Line (x1,y1)-(x2,y2),c
1280 next j
1290 next K
1300 for T = 1 to 500*K : NEXT T
1310 for J = 1 to 4
1320 for i= J to 300 step 5
1330 CIRCLE (XX,YY),i,8
1340 next i,J
1350 goto 30
2000 END