1499371292

空間の中のボール


5 SET WINDOW 0,300,0,300

  clear

10 PRINT "input x:0-300"

   INPUT x

   

20 PRINT "input y:0-300"

   INPUT y

   

30 LET o=x-20

   LET p=y-20

   LET q=x+20

   LET r=y+20

   

40 LET a=30

   LET b=30

   LET i=1

   LET j=1

   

50 CLEAR

   

   SET COLOR 1

   DRAW disk WITH SCALE(3)*SHIFT(x,y)

   

   PLOT LINES: 10,10 ; 290,10

   PLOT LINES: 10,290 ; 290,290

   PLOT LINES: 10,10 ; 10,290

   PLOT LINES: 290,10 ; 290,290

   PLOT LINES: 90,80 ; 180,80

   PLOT LINES: 90,170 ; 180,170

   PLOT LINES: 90,80 ; 90,170

   PLOT LINES: 180,80 ; 180,170

   

   PLOT LINES: 10,10 ; 90,80

   PLOT LINES: 10,290 ; 90,170

   PLOT LINES: 290,290 ; 180,170

   PLOT LINES: 290,10 ; 180,80   

   

70 LET a=a+i

   LET b=b+j

   

85 SET AREA COLOR 4

   

   DRAW disk WITH SCALE(10+i+j)*SHIFT(a,b)

   

   

86 FOR k=1 TO 30000

   

87 NEXT k

   

   

95 IF a>o THEN GOTO 100 ELSE GOTO 130

   

100 IF a<q THEN GOTO 110 ELSE GOTO 130

    

110 IF b>p THEN GOTO 120 ELSE GOTO 130

    

120 IF b<r THEN GOTO 200 ELSE GOTO 130

    

130 IF a<50 THEN GOTO 300

140 IF b<50 THEN GOTO 300

150 IF a>250 THEN GOTO 330

160 IF b>250 THEN GOTO 330

    

170 GOTO 50

    

200 RANDOMIZE

    LET n=INT(4*RND)

    

210 IF n=0 THEN 300

220 IF n=1 THEN 310

230 IF n=2 THEN 320

240 IF n=3 THEN 330

    

300 LET i=INT(4*RND)

    RANDOMIZE

    LET j=INT(4*RND)

    GOTO 50

    

310 LET i=INT(-4*RND)

    RANDOMIZE

    LET j=INT(4*RND)

    GOTO 50

    

320 LET i=INT(4*RND)

    RANDOMIZE

    LET j=INT(-4*RND)

    GOTO 50

    

330 LET i=INT(-4*RND)

    RANDOMIZE

    LET j=INT(-4*RND)

    GOTO 50

    

500 GOTO 50

    

    END

1482165978

BASICと書く。


10 SET WINDOW 0,500,500,0
            DATA 50,100,0,1
    DATA 55,100,1,0.5
   DATA 90,125,-1,0.5
   DATA 55,150,1,0.5
   DATA 90,175,-1,0.5
       DATA 120,190,0.25,-1
   DATA 145,100,0.25,1
   DATA 130,160,1,0.25
       DATA 240,105,-1,0.5
   DATA 205,120,0.5,1
   DATA 240,180,-1,0.5
       DATA 280,100,0,1
        DATA 330,100,0,1
    DATA 335,100,1,0.5
   DATA 365,175,-1,0.5
        50 READ IF MISSING THEN 2000 : m,n,p,q
    110 LET x=x+p
    LET y=y+q
         SET COLOR "black"
        DRAW circle WITH SCALE(2)*SHIFT(m+x,n+y)
         SET COLOR "white"
           DRAW disk WITH SCALE(1.9)*SHIFT(m+(x-1),n+y-1)
          200 IF x>30 THEN GOTO 1000
220 IF y>90 THEN GOTO 1000
230 IF x<-30 THEN GOTO 1000
240 IF y<-90 THEN GOTO 1000
260 IF x=0 THEN GOTO 280
280 IF y=0 THEN GOTO 1000
       300 FOR ti=0 TO 100000
    NEXT ti
         GOTO 110
     1000 LET x=0
     LET y=0
           GOTO 50
      2000 END         

1480187736


枠線だけで文字を書く

(直系の小さな白円盤で黒円盤の内部を塗りつぶす)

10 SET WINDOW 0,300,300,0     
20 FOR ti=0 TO 10000000
   NEXT ti       
CLEAR       
LET m=20   
LET n=125       
FOR a=0 TO 5.1*PI          
CLEAR             
LET x=10*(SIN (a))      
LET y=10*(COS (a))                  
SET COLOR "black"      
DRAW disk WITH SCALE(10)*SHIFT(m+x,n+y)      
SET COLOR "white"             
DRAW disk WITH SCALE(9)*SHIFT(m+x,n+y)            
 FOR ti=0 TO 1000000      
NEXT ti          
NEXT a        
100 LET x=0    
LET y=0    
LET m=20    
LET n=120     
110 LET x=x+1    
LET y=y+1        
 SET COLOR "black"     
150 DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)         
SET COLOR "white"           
DRAW disk WITH SCALE(9)*SHIFT(m+(x-1)/2,n+y-1)     
200 IF x>100 THEN GOTO 400     
300 FOR ti=0 TO 100000    
NEXT ti         
GOTO 110     
400 LET x=0    
LET y=0    
LET m=70    
LET n=220     
420 LET x=x+1    
LET y=y-1         
SET COLOR "black"         
DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)         
SET COLOR "white"           
DRAW disk WITH SCALE(9)*SHIFT(m+(x-1)/2,n+y+1)         
IF x>100 THEN GOTO 500         
FOR ti=0 TO 100000    
NEXT ti         
GOTO 420          
500 LET x=0    
LET y=0    
LET m=120    
LET n=120     
520 LET x=x+1    
LET y=y+1         
SET COLOR "black"         
DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)         
SET COLOR "white"           
DRAW disk WITH SCALE(9)*SHIFT(m+(x-1)/2,n+y-1)              
IF x>100 THEN GOTO 600         
FOR ti=0 TO 100000    
NEXT ti         
GOTO 520     
600 LET x=0    
LET y=0    
LET m=170    
LET n=220     
620 LET x=x+1    
LET y=y-1         
SET COLOR "black"         
DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)         
SET COLOR "white"           
DRAW disk WITH SCALE(9)*SHIFT(m+(x-1)/2,n+y+1)              
IF x>100 THEN GOTO 20         
FOR ti=0 TO 100000    
NEXT ti         
GOTO 620          
1000 END

1479743801



データ文によって複数の文字を書く


10 SET WINDOW 0,300,300,0 

    

   DATA 12,12.0,0.05,.1,17,22.0,0.05,-.1,22,12.0,0.05,.1,27,22,0.05,-.1

    

   DATA 39,12,0,.1 

    

   DATA 48,22,0,-0.1,51,12,0.05,0.1,59,22,0,-0.1,59,12,0,0

    

50 READ IF MISSING THEN 2000 : m,n,p,q

    

    

   FOR a=0 TO 5.1*PI

    

      LET xs=1.5*(SIN (a))

      LET ys=1.5*(COS (a))     

       

      DRAW disk WITH SCALE(0.2)*SHIFT(m+xs,n+ys)

       

      FOR ti=0 TO 500000

      NEXT ti

       

   NEXT a

    

110 LET x=x+p

    LET y=y+q

          

150 DRAW disk WITH SCALE(2)*SHIFT(m+x,n+y)

     

200 IF x>5 THEN GOTO 1000

220 IF y>10 THEN GOTO 1000

240 IF y<-10 THEN GOTO 1000

260 IF x=0 THEN GOTO 280

280 IF y=0 THEN GOTO 1000  

     

300 FOR ti=0 TO 10000

    NEXT ti

     

    GOTO 110

     

1000 LET x=0

     LET y=0

      

     GOTO 50

      

2000 END

1479661128


丸が動いて文字を書く


10 SET WINDOW 0,300,300,0     
20 FOR ti=0 TO 10000000
   NEXT ti 
      CLEAR
       LET m=20 
  LET n=125
       FOR a=0 TO 5.1*PI
          clear
             LET x=10*(SIN (a))
      LET y=10*(COS (a))
                  DRAW disk WITH SCALE(10)*SHIFT(m+x,n+y)
             FOR ti=0 TO 1000000
      NEXT ti
          NEXT a
100 LET x=0
    LET y=0
    LET m=20
    LET n=120     
110 LET x=x+1
    LET y=y+1
150 DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)     
200 IF x>100 THEN GOTO 400     
300 FOR ti=0 TO 100000
    NEXT ti 
        GOTO 110     
400 LET x=0
    LET y=0
    LET m=70
    LET n=220     
420 LET x=x+1
    LET y=y-1
         DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)
         IF x>100 THEN GOTO 500
         FOR ti=0 TO 100000
    NEXT ti         
GOTO 420          
500 LET x=0
    LET y=0
    LET m=120
    LET n=120     
520 LET x=x+1
    LET y=y+1 
        DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)
         IF x>100 THEN GOTO 600
         FOR ti=0 TO 100000
    NEXT ti
         GOTO 520     
600 LET x=0
    LET y=0
    LET m=170
    LET n=220     
620 LET x=x+1
    LET y=y-1
         DRAW disk WITH SCALE(10)*SHIFT(m+x/2,n+y)
         IF x>100 THEN GOTO 20
         FOR ti=0 TO 100000
    NEXT ti
         GOTO 620

          1000 END

1476354867


らせん正多角形


40行の2.5を変えると多角形が変化する


10 DEF g(t)=SIN(t)

20 SET WINDOW -8,8,-8,8

30 DRAW axes

40 FOR t=0 TO 40*PI STEP PI/2.5

50 PLOT LINES: f(t)*t/20,g(t)*t/20;

60FOR TI=0 TO 10000

NEXT TI

80 NEXT t

90 END

1474489428


テトリスのようなゲーム→球をきれいに並べて積み重ねる


CLEAR

OPTION BASE 1

SET WINDOW  0 , 300 , 0 ,300

20 DIM a(6),b(6)

FOR n=1 TO 6

LET b(n)=400

NEXT n

LET j=-1

LET h=h+40

FOR m=1 TO 6

LET a(m)=150

LET b(m)=300

60 CLEAR

CHARACTER INPUT NOWAIT: a$

IF a$ = "j" THEN LET a(m) = a(m)-1

IF a$ = "k" THEN LET a(m) = a(m)

IF a$ = "l" THEN LET a(m) = a(m)+1

70 LET b(m)=b(m)+j

85 SET AREA COLOR 1

DRAW disk WITH SCALE(20)*SHIFT(a(1),b(1))

SET AREA COLOR 2

DRAW disk WITH SCALE(20)*SHIFT(a(2),b(2))

SET AREA COLOR 3

DRAW disk WITH SCALE(20)*SHIFT(a(3),b(3))

SET AREA COLOR 4

DRAW disk WITH SCALE(20)*SHIFT(a(4),b(4))

SET AREA COLOR 5

DRAW disk WITH SCALE(20)*SHIFT(a(5),b(5))

SET AREA COLOR 7

DRAW disk WITH SCALE(20)*SHIFT(a(6),b(6))

86 FOR k=1 TO 150000

87 NEXT k

140 IF b(m)<h THEN GOTO 330

270 GOTO 60

330 LET b(m)=h

RANDOMIZE

LET j=INT(-3*RND)

500 NEXT m

600 LET sum=a(1)+a(2)+a(3)+a(4)+a(5)+a(6)-720

IF sum>=-10 AND sum<=60 THEN GOTO 20

1000 END


1473973197


標的ゲーム → 当たると球が消える


5 SET WINDOW 0,300,300,0

10 LET a=30

LET b=300

LET i=1

LET j=-1

LET c=80

LET d=300

LET m=1

LET n=-1

LET e=130

LET f=300

LET k=1

LET l=-1

LET c0=3

LET c1=1

LET c2=1

LET c3=1

50 LET y1 = 300

LET a$=""

60 CLEAR

CHARACTER INPUT NOWAIT: a$

IF a$ = "m" THEN LET y1 = y1-1

SET AREA COLOR c0

DRAW disk WITH SCALE(5)*SHIFT(150,y1)

IF y1<10 THEN GOTO 50

70 LET a=a

LET b=b+j

LET c=c

LET d=d+n

LET e=e

LET f=f+l


REM 以下の不等号の範囲を広げると当たりやすくなる。


IF b<152 AND b>148 THEN GOTO 75 ELSE GOTO 76

75 IF y1<32 AND y1>28 THEN GOTO 2500

76 SET AREA COLOR c1

DRAW disk WITH SCALE(3)*SHIFT(b,a)

IF d<153 AND d>147 THEN GOTO 77 ELSE GOTO 78

77 IF y1<85 AND y1>75 THEN GOTO 2510

78 SET AREA COLOR c2

DRAW disk WITH SCALE(6)*SHIFT(d,c)

IF f<155 AND f>145 THEN GOTO 79 ELSE GOTO 80

79 IF y1>120 AND y1<140 THEN GOTO 2520

80 SET AREA COLOR c3

DRAW disk WITH SCALE(10)*SHIFT(f,e)


86 FOR k=1 TO 200000

87 NEXT k

130 IF a<30 THEN GOTO 300

140 IF b<30 THEN GOTO 300

150 IF a>280 THEN GOTO 330

160 IF b>280 THEN GOTO 330

IF c<30 THEN GOTO 1300

IF d<30 THEN GOTO 1300

IF c>280 THEN GOTO 1330

IF d>280 THEN GOTO 1330

IF e<30 THEN GOTO 1340

IF f<30 THEN GOTO 1340

IF e>280 THEN GOTO 1370

IF f>280 THEN GOTO 1370

210 IF a=c THEN 220

220 IF c=d THEN 330

270 GOTO 60

300 LET i=INT(4*RND)

RANDOMIZE

LET j=INT(4*RND)

GOTO 1650

310 LET i=INT(-4*RND)

RANDOMIZE

LET j=INT(4*RND)

GOTO 60

320 LET i=INT(4*RND)

RANDOMIZE

LET j=INT(-4*RND)

GOTO 60

330 LET i=INT(-4*RND)

RANDOMIZE

LET j=INT(-4*RND)

GOTO 60

1300 LET m=INT(4*RND)

RANDOMIZE

LET n=INT(4*RND)

GOTO 1650

1310 LET m=INT(-4*RND)

RANDOMIZE

LET n=INT(4*RND)

GOTO 60

1320 LET m=INT(4*RND)

RANDOMIZE

LET n=INT(-4*RND)

GOTO 60

1330 LET m=INT(-4*RND)

RANDOMIZE

LET n=INT(-4*RND)

GOTO 60

1340 LET k=INT(4*RND)

RANDOMIZE

LET l=INT(4*RND)

GOTO 1650

1350 LET k=INT(-4*RND)

RANDOMIZE

LET l=INT(4*RND)

GOTO 60

1360 LET k=INT(4*RND)

RANDOMIZE

LET l=INT(-4*RND)

GOTO 60

1370 LET k=INT(-4*RND)

RANDOMIZE

LET l=INT(-4*RND)

GOTO 60

1650 LET x1=INT(10*RND)

LET p1=INT(300*RND)

LET q1=INT(300*RND)

SET AREA COLOR x1

REM DRAW disk WITH SCALE(x1)*SHIFT(p1,q1)

1660 LET x2=INT(10*RND)

LET p2=INT(300*RND)

LET q2=INT(300*RND)

SET AREA COLOR x2

REM DRAW disk WITH SCALE(x2)*SHIFT(p2,q2)

1670 LET x3=INT(10*RND)

LET p3=INT(300*RND)

LET q3=INT(300*RND)

SET AREA COLOR x3

REM DRAW disk WITH SCALE(x3)*SHIFT(p3,q3)

1680 REM FOR k=1 TO 300000

REM NEXT k

1700 GOTO 60

2500 LET c1=0

GOTO 76

2510 LET c2=0

GOTO 78

2520 LET c3=0

GOTO 80

END

- 1 - - 2 - - 3 - - 4 - - 5 - - 6 -