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