10 ' ”ü“û (sjis Ó¼Þ ÊÞ¹ À²»¸) 20 ' ‰ñ“]–é‹ó(v0) by MSX 40 ' | ¶²ÃÝ Ö¿Þ× .. by MSX | 50 ' | revolving stars (?) | 30 ' +------version 0------+ 60 ' | by foussin (2016) | 70 ' | (·À ÊÝ·­³ ¾ÝÖ³ ÃÞ½) | 80 'save"r-stars0.bas",a 90 : 100 ' init. 110 SCREEN 0 : COLOR 15,1,7 : CLS 120 PI =3.1415926535898# 130 A =RND(-TIME) ' a(¶² Ïܼ Íݽ³) 140 ADD=0 ' »²¼®³ ¶²Ãݶ¸ ¶»Ý Ö³ 150 BL =0 ' ʲ¹² ¼®¸ blue BIT (0-2) 160 : 170 ' Á­³¼Ý »ÞË®³ (cx, cy) 180 ' Êݹ² min,max (r0, rz) 190 PRINT "Ð٠γ¶Þ¸ Ê ?" 200 PRINT " 0. South(ÐÅÐ)" 210 PRINT " 1. North(·À)" 220 PRINT " 2. East (˶޼)" 230 PRINT " 3. West (Ƽ)" 240 INPUT "choice(0-3)> "; A$ 250 A=VAL(A$) : IF A>3 THEN A=3 260 IF A=0 THEN CX= 128:CY=260:R0= 80:RZ=300 270 IF A=1 THEN CX= 128:CY= 60:R0= 15:RZ=200 280 IF A=2 THEN CX= 350:CY=220:R0=120:RZ=400 290 IF A=3 THEN CX=-100:CY=220:R0=120:RZ=400 300 ' ¶²¼ ¶¸ÄÞ min,max (t0, tz) 310 IF A=0 THEN T0=1.1*PI:TZ=1.7*PI 'S 320 IF A=1 THEN T0=0 :TZ=2*PI 'N 330 IF A=2 THEN T0= .9*PI:TZ=1.4*PI 'E 340 IF A=3 THEN T0=1.6*PI:TZ=1.8*PI 'W 350 : 360 INPUT "μ É ¶½Þ (1-20)> "; A$ 370 N=VAL(A$) : IF N=0 THEN N=1 380 : 390 ' itv=1 Å× ¼Þ¯¾Ý(2 ²¼Þ®³ Ê ÃݾÝ) 400 INPUT "ÃÝ É ¶Ý¶¸ (1.0-10.0)> "; A$ 410 ITV=VAL(A$) 420 IF ITV=0 OR ITV=N THEN ITV=1 430 : 440 ' ** ʲÚ 5º ¾Ý¹ÞÝ & À޲ƭ³ ** 450 ' Êݹ²(rd) & ¶²¼ ¶¸ÄÞ(st) & 460 ' 1 loop ÌÞÝ »ÞË®³ (qx, qy) & 470 DIM RD(N-1) : DIM ST(N-1) 480 DIM QX(N-1) : DIM QY(N-1) 490 DIM CC(N-1) ' ¶×°º°ÄÞ(ÊßÚ¯ÄNo) 500 PRINT : PRINT "¹²»Ý Á­³" 510 FOR I=0 TO N-1 520 RD(I)=INT(RND(1)*(RZ-R0))+R0 530 ST(I)=RND(1)*(TZ-T0)+T0 540 ' »²ÀÞ² Êݹ² (rr) 550 IF I=0 THEN RR=RD(0) 560 IF I>0 THEN IF RD(I)>RD(I-1) THEN RR=RD(I) 570 PRINT "."; 580 NEXT I : PRINT 590 : 600 ' »²¼®³ ¶²ÃÝ ¶¸ (rt) 610 L =2*PI*RR ' ´Ý¼­³ len 620 RT=(2*PI)/L ' »²¼®³ ¶²ÃÝ ¶¸ 630 RT=RT * ITV ' Ãݦ ÂŹÞà ¼Þ¯¾ÝÆ ½Ù 640 ' (ÏÀ Ê ÃÝ¾Ý Æ ½Ù) 650 ' ·À(North) É ÊÞ±² => ·Þ¬¸ ¶²ÃÝ 660 IF A=1 THEN RT=RT * -1 670 : 680 ' μ ÍÞ ¶×°º°ÄÞ ¾¯Ã² 690 ' 2-8:´Ýº Ö³, 9-15:ÃÝÒ ֳ 700 ' ´Ýº É ¶×°º°ÄÞ +7 => ÃÝÒ ֳ Ä ½Ù 710 FOR I=0 TO N-1 720 CC(I)=INT(RND(1)*7)+2 '(2-8) 730 PRINT "*"; 740 NEXT I : PRINT 750 : 760 ' ºº¶× Ê ËÞ®³¶Þ ¼Å¶Þ× ¹²»Ý 770 SCREEN 5 : CLS 780 ' ʲ¹² (P: ÊßÚ¯Ä No.1) 790 ' (P,R,G,B) 800 COLOR=(1,0,0,0) : COLOR 15,1,7 810 : 820 ' ¶×°ÊßÚ¯Ä(2-15): ²Û ¸٠830 DIM R1(8) : DIM G1(8) 840 FOR I=2 TO 8 850 GOSUB 1350 '¶×°ÊßÚ¯Ä:²Û ¸٠860 COLOR=(I,R,G,B) 870 R1(I)=R-1 ' ±Ä ÃÞ ´Ýº ¦ 880 G1(I)=G-1 ' ¸×¸ ½Ù. 890 NEXT I 900 FOR I=9 TO 15 910 GOSUB 1350 '¶×°ÊßÚ¯Ä:²Û ¸٠920 COLOR=(I,R,G,B) 930 NEXT I 940 ' ·À(N) É ÊÞ±² => ί·®¸ ¾² (9-15) 950 PSET(CX, CY), INT(RND(1)*7)+9 960 : 970 ' ******* Ò²Ý Ù°ÁÝ ******* 980 FOR I=0 TO N-1 990 QX(I)=RD(I)*COS(ST(I)+ADD)+CX 1000 QY(I)=RD(I)*SIN(ST(I)+ADD)+CY 1010 PSET(QX(I), QY(I)), CC(I) 1020 NEXT I 1030 ' 15ÄÞ(pi/12) º´Ù ºÞÄÆ Ê²¹² ¦ ±¶Ù¸ ½Ù 1040 IF ABS(ADD)>PI/12 AND BL=0 THEN GOSUB 1410 '15 1050 IF ABS(ADD)>PI/6 AND BL=1 THEN GOSUB 1410 '30 1060 IF ABS(ADD)>PI/4 THEN 1150 '45 ÄÞ 1070 'comment out 1080 'IF ABS(ADD)>PI/4 AND BL=2 THEN GOSUB 1400 '45 1090 'IF ABS(ADD)>PI/3 THEN 1150 '60 1100 ADD=ADD + RT 1110 GOTO 980 ' main loop 1120 : 1130 ' ******* ´Ýº stop ******* 1140 ' ´Ýº ¦ ¸×¸ (ÊÝijҲ Î߸) ½Ù 1150 BEEP:FOR I=2 TO 8 1160 COLOR=(I, R1(I), G1(I), 3) 1170 NEXT I 1180 ' μ É ¶×°ÊßÚ¯Ä Íݺ³ 1190 FOR I=0 TO N-1 1200 PSET(QX(I), QY(I)), CC(I)+7 1210 NEXT I 1220 ' ÃÝÒ start (loop) 1230 R=INT(RND(1)*8) '(0-7) 1240 G=INT(RND(1)*8) 1250 B=INT(RND(1)*8) 1260 P=INT(RND(1)*7+9) '(9-15) 1270 COLOR=(P,R,G,B) 1280 IF INKEY$ <> "" THEN 1310 1290 GOTO 1230 'ÃÝÒ loop 1300 : 1310 COLOR=NEW : END 1320 : 1330 ' **** ¶×°ÊßÚ¯Ä(2-15):²Û ¸٠**** 1340 ' ±¶Ù½·ÞÙ Ä ¾Ý ¶Þ ÌÄ ¸ дà ¼Ï³... 1350 R=INT(RND(1)*2)+1 '(1,2) 1360 G=INT(RND(1)*2)+1 '(1,2) 1370 B=INT(RND(1)*2)+2 '(2,3) 1380 RETURN 1390 : 1400 ' ***** ʲ¹² ¦ ±¶Ù¸ ½Ù sub ***** 1410 X=-1*(BL<2) ' x=0 or x=1 1420 BL=BL+X : COLOR=(1,0,0,BL) 1430 BEEP : RETURN