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