FOR I=0TO 1:WAIT 1:GCLS:A=B:B=MAINCNTL:I=B-A==2:NEXT:RETURN |
@SLEEP T$=TIME$:FOR A=0TO 1:A=MAINCNTL*(T$!=TIME$):NEXT:TMREAD(T$),H,M,S:X=H*3600+M*60+S:?"READY" FOR U=0TO 1:FOR T=0TO 1:B=MAINCNTL:TMREAD(TIME$),H,M,S:Y=H*3600+M*60+S:T=(Y-X)*60-60-B+A WAIT 1:NEXT:A=B:X=Y-1:U=T>2:NEXT:RETURN |
@HANDLE GPAGE 1:GCLS:R=64 PT=T:T=TCHST:TX=TCHX:TY=TCHY PA=AN:AN=ATAN(TX-R,TY-R) SA=SGN(A) A=A+(AN-PA)*PT-!T*SA/64 IF ABS(A)>1.57THEN A=SA*1.57 CS=COS(A)*R:SN=SIN(A)*R GCIRCLE R,R,R,15 GLINE R-CS,R+SN,R+CS,R-SN,15 GLINE R,R,R+SN,R+CS,15 RETURN |
@PAD GPAGE 1:GCLS:R=64 M=R/2:T=TCHST/M X=(TCHX-R)*T:Y=(TCHY-R)*T S=SQR(X*X+Y*Y) IF S>1 THEN X=X/S:Y=Y/S GCIRCLE R,R,R,15 GCIRCLE R+X*M,R+Y*M,M,2 RETURN |
IF BTRIG()AND 1024THEN BEEP 7WAIT 1FOR I=1TO BTRIG()<1024I=0NEXT |
LR=TCHST*51%((0OR(TCHX-86)/86)+6)*256 |
B=BUTTON()C=B-(A AND B)A=B |
B=BUTTON()C=16AND!A*B:A=16AND B |
FOR I=0TO""<INKEY$()I=0NEXT |
IF BUTTON()AND 2048THEN @DEBUG |
@C_IN GPRIO 0:GCLS 14:WAIT 60 FOR I=1TO 32 GCIRCLE 128,96,I*5,0 FOR J=0TO 3 A=J%2*2-1:B=(0OR J/2)*2-1 GPAINT 128+A-A*I*4,96+B-B*I*3,0 NEXT BEEP 2,I*30:WAIT 2 NEXT RETURN |
@C_OUT GPRIO 0:WAIT 60 FOR I=31TO 0STEP -1 GCIRCLE 128,96,I*5,14 FOR J=0TO 3 A=J%2*2-1:B=(0OR J/2)*2-1 GPAINT 128-A-A*I*4,96-B-B*I*3,14 NEXT BEEP 2,I*30:WAIT 2 NEXT RETURN |
@3DROTATE SN=SIN(RAD(PA)) CS=COS(RAD(PA)) SI=SIN(RAD(CA)) CO=COS(RAD(CA)) TA=TAN(RAD(90-CA)) MY=191 FOR I=1 TO PY DW=CL/I/RS-TA DX=CL/(DW+!DW) DY=DX*SQR(1+TA*TA) IF DY<0OR DY>512THEN DY=512 XR=(CL*SI+DX*TA)/CL*RS AX=X+SN*DY:AY=Y-CS*DY BX=CS*XR:BY=SN*XR CX=AX-BX*PX/2:CY=AY-BY*PX/2 FOR MX=0 TO (PX-1)*KX STEP KX GPAGE 1:G=GSPOIT(CX,CY) GPAGE 0,C,2-C GFILL MX,MY,MX+KX,MY-KX,G*(G>0) CX=CX+BX:CY=CY+BY NEXT MY=MY-KX NEXT RETURN |
@FISH FOR I=-R+0.5TO R-0.5 A=0OR SQR(R*R-I*I) FOR J=-A TO A B=0OR SQR(A*A-J*J) C=0OR SQR(R*R-I*I-J*J) X=ATAN(B,J)/PI()*(PX-1) Y=ATAN(C,I)/PI()*PY GPAGE 1:G=GSPOIT(X+0.5,Y) GPAGE 0:GPSET 128-J,96-I,G NEXT NEXT RETURN |
SX=128+X/Z*10:SY=96-Y/Z*10 |
@TRI SORT 0,3,X,Y:X=X(0):Y=Y(0):Z=Y:M=X(2)-X(0):Q=(Y(2)-Y(0))/(M+!M) FOR J=0TO 1:M=X(J)-X(J+1):P=(Y(J)-Y(J+1))/(M+!M):Y=Y+(Y(1)-Y(0))*!M FOR I=X(J)TO X(J+1)-1:GLINE I,Y,I,Z,C:Y=Y+P:Z=Z+Q:NEXT:NEXT:RETURN |
@TRI2 FOR J=0TO 1 FOR I=0TO 2:GLINE X(I),Y(I),X((I+1)%3),Y((I+1)%3),C*J+!J*255:NEXT IF !J THEN GPAINT (X(0)+X(1)+X(2))/3+0.5,(Y(0)+Y(1)+Y(2))/3+0.5,C,255 NEXT:RETURN |
@TRI SORT 0,3,X,Y:P=X(2)-X(0)SORT 0,3,Y,X:Q=Y(2)-Y(0)IF Q>P THEN @T X=X(0)Y=Y(0)M=Y-Y(2)Q=(X(0)-X(2))/(M+!M)Z=X FOR J=0TO 1M=Y(J)-Y(J+1)P=(X(J)-X(J+1))/(M+!M)X=X+(X(1)-X(0))*!M:A=Y(J)B=Y(J+1)-1 FOR I=A TO B:GLINE X,I,Z,I,C:X=X+P:Z=Z+Q:NEXT:NEXT:RETURN @T SORT 0,3,X,Y:X=X(0)Y=Y(0)M=X-X(2)Q=(Y(0)-Y(2))/(M+!M)Z=Y FOR J=0TO 1M=X(J)-X(J+1)P=(Y(J)-Y(J+1))/(M+!M)Y=Y+(Y(1)-Y(0))*!M:A=X(J)B=X(J+1)-1 FOR I=A TO B:GLINE I,Y,I,Z,C:Y=Y+P:Z=Z+Q:NEXT:NEXT:RETURN |
FOR I=-R TO R:A=F*SQR(R*R-I*I):GLINE X+I,Y-A,X+I,Y+A,C:NEXT |
GCIRCLE X,Y,R,255:GPAINT X,Y,C,255:GCIRCLE X,Y,R,C |
TM=150:COL=2:GPRIO 0:FOR I=1 TO TM*2:GCLS I%2*COL:WAIT 1:NEXT |
@BLENDCOL FOR J=0 TO 2 RS$(J)=MID$("GRSPBG",J*2,2)+"P"*!J RS$=RS$(J):GOSUB @COLREAD COL(J)=VAL("&H"+MID$(COL$,J*2,2)) NEXT COR=COL(0):COG=COL(1):COB=COL(2) FOR J=0TO 2 RS$=RS$(J) ON BM GOSUB @BMNORMAL,@BMMULTI,@BMSCREEN NEXT RETURN @BMNORMAL FOR I=0 TO 255 CR=CR(I,J)+(COR-CR(I,J))*OP CG=CG(I,J)+(COG-CG(I,J))*OP CB=CB(I,J)+(COB-CB(I,J))*OP COLSET RS$,I,HEX$(CR,2)+HEX$(CG,2)+HEX$(CB,2) NEXT RETURN @BMMULTI FOR I=0 TO 255 CR=CR(I,J)-(255-COR)*OP:CR=CR*(CR>0) CG=CG(I,J)-(255-COG)*OP:CG=CG*(CG>0) CB=CB(I,J)-(255-COB)*OP:CB=CB*(CB>0) COLSET RS$,I,HEX$(CR,2)+HEX$(CG,2)+HEX$(CB,2) NEXT RETURN @BMSCREEN FOR I=0 TO 255 CR=CR(I,J)+COR*OP:IF CR>255 THEN CR=255 CG=CG(I,J)+COG*OP:IF CG>255 THEN CG=255 CB=CB(I,J)+COB*OP:IF CB>255 THEN CB=255 COLSET RS$,I,HEX$(CR,2)+HEX$(CG,2)+HEX$(CB,2) NEXT RETURN @COLREAD FOR I=0 TO 255 COLREAD(RS$,I),CR(I,J),CG(I,J),CB(I,J) NEXT RETURN @COLINIT FOR J=0TO 2:COLINIT RS$(J):NEXT RETURN |
@FADEIN FOR K=1 TO ST FOR J=0 TO 2 RS$=RS$(J) FOR I=0 TO 255 COLSET RS$,I,HEX$(CR(I,J)*K/ST,2)+HEX$(CG(I,J)*K/ST,2)+HEX$(CB(I,J)*K/ST,2) NEXT NEXT NEXT RETURN @FADEOUT FOR J=0 TO 2 RS$(J)=MID$("GRSPBG",J*2,2)+"P"*!J RS$=RS$(J):GOSUB @COLREAD NEXT FOR K=1 TO ST FOR J=0 TO 2 RS$=RS$(J) FOR I=0 TO 255 COLSET RS$,I,HEX$(CR(I,J)*(ST-K)/ST,2)+HEX$(CG(I,J)*(ST-K)/ST,2)+HEX$(CB(I,J)*(ST-K)/ST,2) NEXT NEXT NEXT RETURN @COLREAD FOR I=0 TO 255 COLREAD(RS$,I),CR(I,J),CG(I,J),CB(I,J) NEXT RETURN |
@TPRINT LN=LEN(MES$) L1=INSTR(MES$,",") L2=INSTR(MES$,":") X=11.5-FR*11.5+VAL(MES$)*FR Y=15.5+FR*15.5-VAL(RIGHT$(MES$,LN-L1-1))*FR FOR I=L2+1 TO LN-1 Z$=MID$(MES$,I,1) IF!CP THEN COLOR COL:LOCATE Y,X:?Z$; IF CP THEN PNLSTR Y,X,Z$,COL X=X+FR IF X>23THEN X=0 :Y=Y-FR IF X<0 THEN X=23:Y=Y-FR NEXT RETURN @FROTATE FR=-1:Z=3.5 GPAGE 1 FOR J=0 TO 1 FOR I=0 TO 255 GCLS:C$="" GPUTCHR 0,0,"BGF"+"L"*!J,I,0,1 FOR X=Z-FR*Z TO FR*Z+Z STEP FR FOR Y=FR*Z+Z TO Z-FR*Z STEP -FR C$=C$+HEX$(GSPOIT(X,Y)) NEXT NEXT CHRSET "BGF"+"L"*!J,I,C$ NEXT NEXT GCLS RETURN |
@FROTATE FR=1:Z=3.5 GPAGE 1 FOR I=0 TO 255 GCLS:C$="" GPUTCHR 0,0,"BGF",I,0,1 FOR X=Z-FR*Z TO FR*Z+Z STEP FR FOR Y=FR*Z+Z TO Z-FR*Z STEP -FR C$=C$+HEX$(GSPOIT(X,Y)) NEXT NEXT CHRSET "BGF",I,C$ NEXT GCLS RETURN |
CY=2:SC=30:SP=2 GPAGE 0 FOR J=0 TO 9999 FOR I=0 TO 191 A=SIN((I+J*SP)*CY/30.56)*SC GCOPY 1,A,I,A+255,I,0,I,1 NEXT NEXT |
GPAGE 0,P,!P:P=!P |
FPS=FPS+1IF TIME$!=T$THEN LOCATE 0,0?"FPS"FPS,:FPS=0T$=TIME$ |
FPS=FPS+1IF MAINCNTL-CNT>59THEN LOCATE 0,0?"FPS"FPS,:FPS=0CNT=MAINCNTL |
N=LOG(F)*17.313-36.378BGMPLAY"T1@D"+STR$(0OR N%1*64)+"N"+STR$(0OR N) |
N=LOG(F)*17.313-32.378BGMPLAY"T1@D$0N$1"BGMSETV 0,0,N%1*64BGMSETV 0,1,N |
E=LOG(A)*B/2.3026D=0OR E:C=POW(10,E-D) |
ASIN=ATAN(X,SQR(1-X*X)) |
ACOS=PI()/2-ATAN(X,SQR(1-X*X)) |
Y=(Y+0.1)%1.1X=(X*117+Y)%1 |
@INT Z=4096:IL=INT%(10000/Z)*Z:IH=0OR(INT-IL/Z)/10000*Z INT$="-"*!IH*(INT<0)+STR$(ABS(IL)):INT$=STR$(IH)*!!IH+"0"*(4-LEN(INT$))*!!IH+INT$ RETURN |
@INT2 Z=4096:IS=LEFT$(INT$,1)=="-"IN=LEN(INT$)-IS:INT$=RIGHT$(INT$,IN)IL=VAL(RIGHT$(INT$,4))/Z INT=(1-IS*2)*(IL+VAL(LEFT$(INT$,(IN-4)*(IN>3)))/Z*10000 RETURN |
456を足す → A=A+B | ||
※乗算の場合は変数同士の演算を行う前に4096を掛けてください | 789を掛ける → A=A*4096*B 789で割る → A=A/B/4096 | |
123で割ったときの剰余を求める A=A%B | ||
5678の平方根を求める A=SQR(B)/64 |
A=12345/4096 B=A*56789 INT=B GOSUB @INT ?INT$ |
H$=HEX$(INT%1*4096):HEX32$=(HEX$(INT)+"0"*(3-LEN(H$)))*(INT>=1)+H$ |
W=0FOR I=0TO 8Z(I%3,I/3)=33NEXT |
R=RND(99)Y=((R>=Z(X,0))+(R>=Z(X,0)+Z(X,1))+2)%3 |
E=(X+1)%3F=(X+2)%3Z(W,E)=Z(W,E)/2Z(W,F)=Z(W,F)/2Z(W,X)=Z(W,X)+Z(W,E)+Z(W,F) |
FOR I=1TO (条件式) (処理内容) I=0 NEXT |
FOR I=1TO (条件式) (処理内容) NEXT |
A-A%1 |