NEW 10 C=1:'SNAKE-0 20 POKE#700,#3C,#7E,#99,#E7,#81,#81,#66,#3C 30 POKE#708,#3C,#7E,#BD,#DB,#E7,#C3,#7E,#3C 40 POKE#710,#66,#C7,#E3,#C7,#E3,#C7,#7E,#3C 50 POKE#718,#3E,#7F,#D5,#C0,#C0,#EB,#7F,#3E 60 POKE#720,#3C,#7E,#E3,#C7,#E3,#C7,#E3,#66 70 POKE#728,#7C,#FE,#AB,#3,#3,#D7,#FE,#7C 80 POKE#730,#7E,#E7,#C3,#99,#99,#C3,#E7,#7E 90 LET[0],#FFFF,#FFFF,#8000,#1,#8000,#1,#8000,#1 100 LET[8],#8700,#1,#8700,#7001,#8700,#7001,#8000,#7001 110 LET[16],#8000,#E1,#8000,#E1,#8038,#E1,#8038,#1 120 LET[24],#8038,#1,#8000,#1,#8000,#1,#8000,#1 130 LET[32],#8000,#E01,#9C00,#E01,#9C00,#E01,#9C00,#1 140 LET[40],#8000,#1,#8000,#1,#FFFF,#FFFF 150 FOR J=0TO45:A=[J]:FORI=0TO15 160 POKE#900+J*16+I,C*NOT(Aὀ=0) 170 A=A<<1:NEXT:NEXT:L=5:Z=5 180 LRUN 1 SAVE 0 NEW 10 'SNAKE-1 20 @LS:M=0:X=RND(30)+1:Y=RND(22)+1:IFSCR(X,Y)=0LCX,Y:?CHR$(#E1);:ELSEGOTO@LS 30 @LG:V=RND(30)+1:W=RND(22)+1:IFSCR(V,W)=0LCV,W:?CHR$(255);:CLK:ELSEGOTO@LG 40 @WL:F=(F=0):K=INKEY():IFK=0LCX,Y:?CHR$(#E0+F);:WAIT20:GOTO@WL 50 POKE#800,X,Y:FORI=0TOL:[I+1]=[I]:NEXT 60 PLAY "T120O4L16CFA<C>AFC2$FRREFRRR":CLK:GOTO@IN 70 @DO:K=INKEY():CLK 80 @IN:M=M*(K=0)+4*(K=28)+2*(K=29)+(K=30)+3*(K=31) 90 LCPEEK(#800+L*2),PEEK(#801+L*2):?CHR$(0); 100 FORI=LTO1STEP-1:[I]=[I-1]:NEXT:LCX,Y:?CHR$(#E6); 110 X=X+(M=2)-(M=4):Y=Y-(M=1)+(M=3):C=SCR(X,Y) 120 IF C=0LCX,Y:?CHR$(#E1+M);:POKE#800,X,Y:WAIT5:GOTO@DO 130 IFC<>255GOTO@ED 140 PLAY"T120O5L16C>BAGFEDC8":LCX,Y:?CHR$(#E1); 150 FORI=LTO0STEP-1:LCPEEK(#800+I*2),PEEK(#801+I*2):?CHR$(0);:WAITZ:NEXT 160 L=L+5*(L<95):POKE#800,X,Y:FORI=0TOL:[I+1]=[I]:NEXT:M=0:CLK:GOTO@LG 170 @ED:LCX,Y:?CHR$(#F4);:LC10,0:?"[[GAME OVER]]"; 180 PLAY "T120O5L16CDEDDCDCDEC" 190 @WS:IFSOUND()GOTO@WS:ELSECLK 200 @EL:IFINKEY()=0GOTO@EL:ELSECLK:L=5:LRUN0 SAVE 1 LRUN 0
ヘビのグラフィックがかっこいいですね! イチゴを取るごとに、休憩タイムがあるのもいアイデアだと思いました。あとは、ヘビの体が伸びるほど処理が重くなってしまう問題を解決できれば……。