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