10 PRINT CHR$(147):POKE 53280,5:POKE 53281,0 20 PRINT " SNAKE TRAIL":PRINT 30 PRINT "EAT THE DOTS. AVOID WALLS AND YOUR TAIL." 40 PRINT "W A S D=MOVE Q=QUIT":PRINT:PRINT "PRESS ANY KEY" 50 GET A$:IF A$="" THEN 50 60 R=RND(-TI):DIM X(900),Y(900):L=4:DX=1:DY=0:S=0 70 FOR I=1 TO L:X(I)=21-I:Y(I)=12:NEXT:GOSUB 240 80 PRINT CHR$(147):FOR I=0 TO 39:POKE 1024+I,160:POKE 1984+I,160:NEXT 90 FOR I=1 TO 23:POKE 1024+I*40,160:POKE 1063+I*40,160:NEXT 100 FOR I=1 TO L:POKE 1024+Y(I)*40+X(I),81:NEXT:GOSUB 250 110 GET A$:IF A$="Q" THEN 330 120 IF A$="W" AND DY=0 THEN DX=0:DY=-1 130 IF A$="S" AND DY=0 THEN DX=0:DY=1 140 IF A$="A" AND DX=0 THEN DX=-1:DY=0 150 IF A$="D" AND DX=0 THEN DX=1:DY=0 160 NX=X(1)+DX:NY=Y(1)+DY:IF NX<1 OR NX>38 OR NY<1 OR NY>23 THEN 300 170 FOR I=1 TO L:IF NX=X(I) AND NY=Y(I) THEN 300 180 NEXT:E=0:IF NX=FX AND NY=FY THEN E=1 190 IF E=0 THEN POKE 1024+Y(L)*40+X(L),32 200 IF E THEN L=L+1:S=S+10 210 FOR I=L TO 2 STEP -1:X(I)=X(I-1):Y(I)=Y(I-1):NEXT 220 X(1)=NX:Y(1)=NY:POKE 1024+NY*40+NX,81 230 IF E THEN GOSUB 240:GOSUB 250 235 PRINT CHR$(19);" SCORE";S;" LENGTH";L;" ":FOR D=1 TO 45:NEXT:GOTO 110 240 FX=INT(RND(1)*38)+1:FY=INT(RND(1)*23)+1:F=0 245 FOR J=1 TO L:IF FX=X(J) AND FY=Y(J) THEN F=1 247 NEXT:IF F THEN 240 248 RETURN 250 POKE 1024+FY*40+FX,46:POKE 55296+FY*40+FX,7:RETURN 300 PRINT CHR$(147):PRINT "SNAKE CRASHED! SCORE";S:PRINT 310 PRINT "R=REPLAY Q=QUIT" 320 GET A$:IF A$="R" THEN RUN 325 IF A$<>"Q" THEN 320 330 POKE 53280,14:POKE 53281,6:PRINT CHR$(147):END