Eat all the food without hitting the walls or yourself. Use A, W, S, D to change direction (west, north, south and east respectively).
PROG : 16509
D-FILE: 18160
VARS : 18953
E-LINE: 18954
STKBOT: 18954
STKEND: 18954
9999 means line number
PRINT means treat as KEYWORD P
10 REM **SNAKE**SLR/2022
20 GOSUB 500
30 LET Z$(1)=CHR$ X+Z$(1)
40 LET Z$(2)=CHR$ Y+Z$(2)
60 LET NEWDIR=(1 AND INKEY$="A
")+(2 AND INKEY$="W")+(3 AND
INKEY$="D")+(4 AND INKEY$="S")
70 IF NEWDIR THEN LET DIR=NEWD
IR
80 LET X=X-(DIR=1)+(DIR=3)
90 LET Y=Y-(DIR=2)+(DIR=4)
100 PRINT AT CODE Z$(2,SIZE),
CODE Z$(1,SIZE);" ";AT Y,X;
110 LET P=PEEK (PEEK 16398+256*
PEEK 16399)
120 IF P>127 THEN GOTO 300
130 PRINT S$
140 IF P=0 THEN GOTO 30
150 LET SIZE=SIZE+1
160 IF SIZE>END THEN GOTO 400
170 LET SCORE=SCORE+P
180 GOTO 30
300 PRINT CHR$ (CODE S$-128);
AT 10,8;"OOPS/ SNAKE DIED.";AT 1
1,11;"SCORE: ";SCORE
310 GOSUB 800
320 RUN
400 PRINT AT 10,11;"GREAT JOB/"
;AT 11,11;"SCORE: ";SCORE
410 GOSUB 800
420 GOSUB 550
430 GOTO 30
500 REM **SETUP**
510 RAND 0
520 LET END=0
530 LET SCORE=0
540 REM **LEVEL**
550 CLS
560 FOR A=0 TO 31
570 PRINT AT 0,A;" ";AT (A AND
A<22),0;" ";AT 21,A;" ";AT (A
AND A<22),31;" "
580 NEXT A
590 DIM Z$(2,100)
600 LET S$="XOZH+*"(RND*5+.5)
610 LET SIZE=1
620 LET END=END+(5 AND END<100)
630 LET X=15
640 LET Y=10
650 LET DIR=1
660 PRINT AT 0,13;"SNAKE/"
670 PRINT AT 10,10;"GROW ";END;
" BIG.";AT 12,13;"READY?"
680 GOSUB 800
690 PRINT AT 10,10;"
";AT 12,13;" "
700 FOR F=1 TO END
710 LET FX=RND*30+1
720 LET FY=RND*20+1
730 IF X=FX AND Y=FY THEN GOTO
710
740 IF X=FX-1 AND Y=FY THEN
GOTO 710
750 PRINT AT FY,FX;
760 IF PEEK (PEEK 16398+256*
PEEK 16399)<>0 THEN GOTO 710
770 PRINT "£$?)=/."(RND*6+.5)
780 NEXT F
790 RETURN
800 REM **WAIT FOR KEY**
810 IF INKEY$<>"" THEN GOTO 810
820 IF INKEY$="" THEN GOTO 820
830 RETURN
900 SAVE "SNAKE"
910 RUN