IchigoJam プログラム

プログラムは、工夫でもっと簡明に書ける部分が多々あろうかと思います。
複数のメモリーにまたがるプログラムは、メモリーの連続した領域にコピーしてください。
プログラムの部分をテキスト文としてコピーして、IchigoJamに転送してください。転送の
仕方(アプリ)はNet上で色々見つけられます。


・イチゴキャッチ
 (画面上に次々に現れるイチゴをキャッチするという単純なゲーム。すべてをキャッチするのは
  不可能に近い?)
10 REM *ICHIGO_CATCH
20 CLS:X=16:Y=12:C=0:T=0:S=0
30 LC 0,0:?"POINT:";T
40 IF SCR(X,Y)=#FF THEN T=T+1:LC 0,0:?"POINT:";T
50 LC X,Y:?CHR$(#ED)
60 A=X:B=Y
70 X=X-BTN(28):IF X=0 THEN X=X+1
80 X=X+BTN(29):IF X=31 THEN X=X-1
90 Y=Y-BTN(30):IF Y=0 THEN Y=Y+1
100 Y=Y+BTN(31):IF Y=23 THEN Y=Y-1
110 WAIT 5
120 LC A,B:?" "
130 C=C+1:IF C=20 THEN GOSUB 150
140 GOTO 40
150 P=1+RND(30):Q=1+RND(20)
160 LC P,Q:?CHR$(#FF):C=0
170 S=S+1:LC 10,0 :?S;"/25":IF S=25 THEN GOTO 190
180 RETURN
190 LC 4,16:?"Game Over Point:";T
200 END


・ケイバレース
 (人数が少ない場合も、5人分適当に予想を入れる。5人分入るとスタートする)
10 REM *1
20 CLS:CLV:K=0
25 K=K+1
30 LRUN FILE()+2
50 WAIT 50
60 FOR I=1 TO 3
61 LC 1,7+I:?"====":
62 LC 1,12+I:?"====":NEXT
65 WAIT 15:R=RND(100)%4
70 IF R=0 GOTO 110
80 IF R=1 GOTO 160
90 IF R=2 GOTO 210
100 GOTO 260
110 Y=Y+1:IF Y>55 GOTO 60
115 IF Y=38 Y=Y+RND(10)
120 IF Y=55 J=J+1:E=J:LC 29,21:?J;"イ":IF J=3 GOTO 320
130 IF Y>29 Q=Y-28:R=21 ELSE IF Y>9 Q=1:R=Y-8 ELSE Q=10-Y:R=1
150 LC Q,R:?"Y":GOTO 60
160 A=A+1:IF A>55 GOTO 60
165 IF A=38 A=A+RND(10)
170 IF A=55 J=J+1:D=J:LC 29,20:?J;"イ":IF J=3 GOTO 320
180 IF A>30 Q=A-28:R=20 ELSE IF A>12 Q=2:R=A-10 ELSE Q=14-A:R=2
200 LC Q,R:?"A":GOTO 60
210 M=M+1:IF M>55 GOTO 60
215 IF M=38 M=M+RND(10)
220 IF M=55 J=J+1:C=J:LC 29,19:?J;"イ":IF J=3 GOTO 320
230 IF M>31 Q=M-28:R=19 ELSE IF M>15 Q=3:R=M-12 ELSE Q=18-M:R=3
250 LC Q,R:?"M":GOTO 60
260 U=U+1:IF U>55 GOTO 60
265 IF U=38 U=U+RND(10)
270 IF U=55 J=J+1:B=J:LC 29,18:?J;"イ":IF J=3 GOTO 320
280 IF U>32 Q=U-28:R=18 ELSE IF U>18 Q=4:R=U-14 ELSE Q=22-U:R=4
300 LC Q,R:?"U":GOTO 60
320 WAIT 120:LRUN FILE()+3

10 REM * KEIBA_2
20 LC 10,1:?"Y":LC 14,2:?"A":LC 18,3:?"M":LC 22,4:?"U":WAIT 60
30 FOR I=1 TO 9
40 LC 10-I,1:?CHR$(#A5):NEXT
50 FOR I=2 TO 20
60 LC 1,I:?CHR$(#A5):NEXT
70 FOR I=1 TO 27
80 LC I,21:?CHR$(#A5):NEXT
90 FOR I=1 TO 12
100 LC 14-I,2:?CHR$(#A5):NEXT:WAIT 30
110 FOR I=2 TO 20
120 LC 2,I:?CHR$(#A5):NEXT
130 FOR I=2 TO 27
140 LC I,20:?CHR$(#A5):NEXT
150 FOR I=1 TO 15
160 LC 18-I,3:?CHR$(#A5):NEXT
170 FOR I=3 TO 19
180 LC 3,I:?CHR$(#A5):NEXT:WAIT 30
190 FOR I=3 TO 27
200 LC I,19:?CHR$(#A5):NEXT
210 FOR I=1 TO 18
220 LC 22-I,4:?CHR$(#A5):NEXT
230 FOR I=4 TO 18
240 LC 4,I:?CHR$(#A5):NEXT
250 FOR I=4 TO 27
260 LC I,18:?CHR$(#A5):NEXT:WAIT 30
270 FOR I=1 TO 4
280 LC 28,17+I:?"|":NEXT
290 FOR I=1 TO 4
295 LC 10,17+I:?"+":NEXT
300 LRUN FILE()+1,20

10 REM * KEIBA_3
15 CLS:U=0:M=0:A=0:Y=0:J=0
16 B=0:C=0:D=0:E=0
17 LRUN FILE()-1
18 WAIT 60
20 LC 6,6:?"折イ ";K;"攬ス":WAIT 100:LC 16,6:?"ヤ審I 騰学カ"
25 WAIT 60
30 LC 10,9:?"U:";CHR$(#E2);" M:";CHR$(#E1);" A:";CHR$(#E3);" Y:";CHR$(#E0)
40 LC 12,11:?" 嵜ウ 銚竹 聴碩"
50 FOR I=1 TO 5
60 LC 10,11+I:?"P";I:LC 14,11+I:?"*":LC 23,11+I:?[40+I]
80 IF BTN(30) [10+I]=#55:[20+I]=1:LC 14,11+I:?"U":GOTO 130
90 IF BTN(29) [10+I]=#4D:[20+I]=2:LC 14,11+I:?"M":GOTO 130
100 IF BTN(31) [10+I]=#41: [20+I]=3:LC 14,11+I:?"A":GOTO 130
110 IF BTN(28) [10+I]=#59:[20+I]=4:LC 14,11+I:?"Y":GOTO 130
120 GOTO 80
130 WAIT 60:NEXT
140 WAIT 100
150 LRUN FILE()-2,50

10 REM * KEIBA_4
20 IF B=0 B=4
30 IF C=0 C=4
40 IF D=0 D=4
50 IF E=0 E=4
60 B=5-B:C=5-C:D=5-D:E=5-E
70 LC 6,6:?"折イ ";K;"攬ス"
80 LC 16,6:?"誓涓鷲 康カ "
90 LC 9,9:?"U:";B*(B-1)/2+1;"竹";" M:";C*(C-1)/2+1;"竹";" A:";D*(D-1)/2+1;"竹";" Y:";E*(E-1)/2+1;"竹"
100 FOR I=1 TO 5
110 IF [20+I]=1 [30+I]=B*(B-1)/2+1:[40+I]=[40+I]+[30+I]
120 IF [20+I]=2 [30+I]=C*(C-1)/2+1:[40+I]=[40+I]+[30+I]
130 IF [20+I]=3 [30+I]=D*(D-1)/2+1:[40+I]=[40+I]+[30+I]
140 IF [20+I]=4 [30+I]=E*(E-1)/2+1:[40+I]=[40+I]+[30+I]
150 NEXT
160 LC 13,11:?"嵜ウ 銚竹 聴碩"
170 FOR I=1 TO 5
180 LC 10,11+I:?"P";I;" ";CHR$([10+I]);" ";[30+I];" ";[40+I]
190 NEXT
200 WAIT 240
210 LC 4,0:?"***** PUSH SPACE *****"
211 WAIT 30
212 LC 4,0:?"***** *****"
213 WAIT 30
215 IF BTN(32)=0 GOTO210
220 LRUN FILE()-3,25


・スロットマシーン
 ( )
10 REM *SLOT_1
20 CLS:CLV:W=20
30 OUT1,-2:OUT2,-2
40 LC 6,1:?"~~~ SLOT MACHINE ~~~"
50 ?:WAIT 60
60 LC 6,5:?"START ";CHR$(#E2)
70 LC 6,7:?"STOP ";CHR$(#E0);" ";CHR$(#E3);" ";CHR$(#E1)
72 LC 6,20:?"POINT :";G:LC 19,20:?"TOTAL :";W
80 X=0:Y=0:Z=0:L=1:M=1:N=1:P=0:Q=0:R=0:D=0:E=0:F=0:I=0:J=0:K=0
90 LRUN FILE()+1
100 IF [60]=[61] GOTO 130
110 IF [60]=255 G=2:GOTO 180
120 IF [60]=55 G=1:GOTO 180 ELSE G=0:GOTO 180
130 IF [61]=[62] GOTO 160
140 IF [61]=255 G=5:GOTO 180
150 IF [61]=55 G=3:GOTO 180 ELSE G=2:GOTO 180
160 IF [62]=255 G=20:GOTO 180
170 IF [62]=55 G=10:GOTO 180 ELSE G=7
180 W=W-1:W=W+G:WAIT 60
190 LC 13,20:?" ":WAIT 20
200 LC 6,20:?"POINT :";G:LC 19,20:?"TOTAL :";W
205 IF W=0 OR W=50 LC 9,22:?"GAME OVER!":END
210 GOTO 80

10 REM * SLOT_2
20 LET [0],#37,#FF,#FA,#37,#EF,#FA,#8C,#EF,#8C,#FF,#EF,#37,#FF,#8C,#FA
30 LET [20],#FA,#FF,#EF,#8C,#FA,#37,#8C,#37,#FF,#EF,#FF,#FA,#8C,#37,#EF
40 LET [40],#8C,#FF,#37,#8C,#FA,#EF,#37,#EF,#FA,#8C,#FF,#EF,#37,#FA,#FF
50 LC 14,13:?"-":LC 18,13:?"-"
60 IF BTN(30) GOTO 80
70 GOTO 60
80 IF BTN(28) P=1
90 IF P=0 GOTO 130
100 IF L=25 X=1:GOTO 170
110 D=D+1:IF D<L/3 GOTO 170
120 D=0:L=L+1
130 FOR B=0 TO 2
140 A=I+2-B:LC 12,11+2*B:?CHR$([A%15])
150 NEXT
160 I=I+1
170 IF BTN(31) Q=1
180 IF Q=0 GOTO 220
190 IF M=25 Y=1:GOTO 260
200 E=E+1:IF E<M/3 GOTO 260
210 E=0:M=M+1
220 FOR B=0 TO 2
230 A=J+9-B:LC 16,11+2*B:?CHR$([A%15+20])
240 NEXT
250 J=J+1
260 IF BTN(29) R=1
270 IF R=0 GOTO 310
280 IF N=25 Z=1:GOTO 350
290 F=F+1:IF F<N/3 GOTO 350
300 F=0:N=N+1
310 FOR B=0 TO 2
320 A=K+5-B:LC 20,11+2*B:?CHR$([A%15+40])
330 NEXT
340 K=K+1
350 WAIT T:IF X*Y*Z=1 GOTO 370
360 GOTO 80
370 [60]=SCR(12,13):[61]=SCR(16,13):[62]=SCR(20,13)
375 WAIT 60
380 LRUN FILE()-1,100


・カードゲーム
 (いわゆる「オイチョカブ」、一の位が9に近いほうが勝ち、2枚の段階で
  もう1枚要求するか決める。相手はI J)
10 REM * CARD
20 A=0:B=0
30 CLS: LC 0,3:?"I.J_POINT ";A:LC 0,13:?"YOU_POINT ";B
40 FOR I=1 TO 52
50 [I]=I:NEXT
60 FOR I=1 TO 52
70 X=[I]:R=RND(10)+1:Y=[R]:[I]=Y:[R]=X:NEXT
80 M=[1]%4:N=[1]%13:P=N+1
90 LC 3,5:?CHR$(#E4+M);N+1
100 M=[2]%4:N=[2]%13:Q=N+1
110 LC 3,15:?CHR$(#E4+M);N+1
120 LC 8,5:?CHR$(#03);CHR$(#03)
130 WAIT 60
140 M=[4]%4:N=[4]%13:Q=Q+N+1
150 LC 8,15:?CHR$(#E4+M);N+1
160 WAIT 30
170 LC 2,21:?"啌1浪 茄禄カ? Yes(1) or No(0)"
180 INPUT Z
190 IF Z=1 THEN GOTO 210
200 IF Z=0 THEN GOTO 230 ELSE GOTO 180
210 WAIT 90:M=[6]%4:N=[6]%13:Q=Q+N+1
220 LC 13,15:?CHR$(#E4+M);N+1
230 WAIT 90:LC 23,15:?Q:LC 27,15:? Q-Q/10*10
240 N=[3]%13:P=P+N+1
250 IF P-P/10*10>=7 THEN GOTO 280
260 M=[5]%4:N=[5]%13:P=P+N+1
270 LC 13,5:?CHR$(#E4+M);N+1
280 M=[3]%4:N=[3]%13
290 LC 8,5:?CHR$(#E4+M);N+1
300 LC 23,5:?P:LC 27,5:? P-P/10*10
310 IF P-P/10*10>Q-Q/10*10 THEN LC 28,5:?"<V>":A=A+1:GOTO 340
320 IF P-P/10*10=Q-Q/10*10 THEN LC 28,5:?"<E>":LC 28,15:?"<E>":GOTO 340
330 LC 28,15:?"<V>":B=B+1
340 WAIT 300:GOTO 30


・生き残りゲーム
 (自分の番で何もないところに移動しないとOUT。相手I Jを動けなくなくしたら勝ち。
  180、240 のWAITを小さくするとスピードが上がる)
10 REM *IKINOKORI
20 CLS
30 FOR I=0 TO 30:LC I,0:?"*";:NEXT
40 FOR I=0 TO 30:LC I,23:?"*";:NEXT
50 FOR I=0 TO 23:LC 0,I:?"*";:NEXT
60 FOR I=0 TO 23:LC 30,I:?"*";:NEXT
70 X=10:Y=12:P=20:Q=12
80 LC P,Q:?"X"
90 R=RND(10):Z=Z+1:IF Z=200 THEN GOTO280
100 IF R<=4 THEN P=P-1:GOTO 140
110 IF 4<R AND R<=6 THEN Q=Q+1:GOTO 150
120 IF 6<R AND R<=8 THEN Q=Q-1:GOTO 160
130 IF R=9 THEN P=P+1:GOTO 170
140 IF SCR(P,Q)<>0 THEN P=P+1:GOTO 90
150 IF SCR(P,Q)<>0 THEN Q=Q-1:GOTO 90
160 IF SCR(P,Q)<>0 THEN Q=Q+1:GOTO 90
170 IF SCR(P,Q)<>0 THEN P=P-1:GOTO 90
180 WAIT 60
190 X=X-BTN(28):IF X=0 THEN GOTO 260
200 X=X+BTN(29):IF X=30 THEN GOTO 260
210 Y=Y-BTN(30):IF Y=0 THEN GOTO 260
220 Y=Y+BTN(31):IF Y=23 THEN GOTO 260
230 IF SCR(X,Y)<>0 THEN GOTO 260
240 LC X,Y:?"O":PLAY"G32":WAIT 30:LC P,Q:?"X":Z=0:PLAY"C32"
250 GOTO 90
260 LC 3,21:?" GAME OVER "
270 PLAY"O2C32R32C":END
280 LC 20,21:?" YOU WIN! "
290 PLAY"O4C32R32C32R32CC":END


・壁反射
 (球は壁も自身のラケットも常に入射角・反射角45°で反射する。その軌道で標的を
  すべてつぶす。ラケットは上下にも移動させないとすべてを倒せない)
10 REM *1
20 LRUN FILE()+1
30 X=P+1:Y=Q+1
35 IF SCR(X,Y)=#ED S=S+1
40 IF SCR(X,Y)=#3D Y=Y-1:GOTO 80
50 IF X=31 X=X-1:GOTO 120
60 IF Y=21 LC P,Q:?" ":T=T+1:LC 3,22:?"GOOF:";T:LRUN FILE()+1,105
70 GOSUB 205:GOTO 30
80 X=P+1:Y=Q-1
85 IF SCR(X,Y)=#ED S=S+1
90 IF X=31 X=X-1:GOTO 170
100 IF Y=0 Y=Y+1:GOTO 30
110 GOSUB 205:GOTO 80
120 X=P-1:Y=Q+1
125 IF SCR(X,Y)=#ED S=S+1
130 IF SCR(X,Y)=#3D Y=Y-1:GOTO 170
140 IF X=0 X=X+1:GOTO 30
150 IF Y=21 LC P,Q:?" ":T=T+1:LC 3,22:?"GOOF:";T:LRUN FILE()+1,105
160 GOSUB 205:GOTO 120
170 X=P-1:Y=Q-1
175 IF SCR(X,Y)=#ED S=S+1
180 IF X=0 X=X+1:GOTO 80
190 IF Y=0 Y=Y+1:GOTO 120
200 GOSUB 205:GOTO 170
205 IF S=15:GOTO 340
210 LC P,Q:?" ":LC X,Y:?CHR$(#E9):P=X:Q=Y:WAIT 5
215 LC 3,22:?"GOOF:";T:LC 15,22:?"GET:";S
220 LC M,N:?" "
260 M=M+BTN(29):IF M=28 M=27
270 M=M-BTN(28):IF M=0 M=1
280 N=N-BTN(30):IF N=12 N=13
290 N=N+BTN(31):IF N=21 N=20
300 LC M,N:?"===="
310 RETURN
340 LC 15,15:?"CLEAR!"
350 IF BTN(32) GOTO 20
360 GOTO 350

10 REM *HANSYA_2
20 S=0:T=0
30 CLS
40 FOR I=0 TO 31
50 LC I,0:?"*":NEXT
60 FOR I=0 TO 20
70 LC 0,I:?"*":LC 31,I:?"*":NEXT
80 FOR I=0 TO 14
90 LC 2*I+1,2*RND(6)+1:?CHR$(#ED):NEXT
100 M=14:N=20:LC M,N:?"===="
105 IF T=10 GOTO 150
107 Q=N-1
110 IF (N%2=0 AND M%2=0)OR(N%2=1 AND M%2=1) THEN P=M+1 ELSE P=M+2
120 WAIT 60:LC P,Q:?CHR$(#E9):WAIT 100
130 IF M%2=0 THEN LRUN FILE()-1,170 ELSE LRUN FILE()-1,80
150 LC 15,10:?"GAME OVER"
160 IF BTN(32) GOTO 20
170 GOTO 160

                              (2020/6/10)


inserted by FC2 system