ZX81 Program: SNUNCH.P


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 19864
VARS  : 20657
E-LINE: 20767
STKBOT: 20777
STKEND: 20777


LEGEND

[A] means INVERSE A
{A} means GRAPHICS A
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **SNUNCH**SLR/1983**
  20 LET B=0
  30 LET S=0
  40 LET X=4
  50 LET Y=9
  60 FOR A=0 TO 9
  70 PRINT AT A,1;"{H}";AT A,19;"{H}";AT 0,A+1;"{H}{H}{H}{H}{H}{H}{H}{H}{H}";AT 9,A+1;"{H}{H}{H}{H}{H}{H}{H}{H}{H}"
  80 NEXT A
  90 FOR A=4 TO 7
 100 PRINT AT 3,A;"{H}";AT 6,A;"{H}";AT 3,A+9;"{H}";AT 6,A+9;"{H}";AT A-4,10;"{H}";AT A+2,10;"{H}"
 110 NEXT A
 120 DIM A$(2,4)
 130 LET A$(1)="{Q}{W}{E}{E}"
 140 LET A$(2)="{Q}{W}{R}{R}"
 150 LET B$="{T}{Y}{R}{E}"
 160 LET O=1
 170 PRINT AT 1,2;"{E}{4}";AT 2,2;"{2}{1}";AT 1,17;"{E}{4}";AT 2,17;"{2}{1}";AT 7,2;"{E}{4}";AT 8,2;"{2}{1}";AT 7,17;"{E}{4}";AT 8,17;"{2}{1}"
 180 LET X1=X
 190 LET Y1=Y
 200 LET N=-1
 210 LET M=2
 220 LET Q=0
 230 FOR A=1 TO 200-(10*(((S AND S<1600)+(1600 AND S>1600))/100))
 240 LET O=-O
 250 IF O=1 THEN PRINT AT 1,2;"{E}{4}" AND Q<1;AT 2,2;"{2}{1}" AND Q<1;AT 1,17;"{E}{4}" AND Q<2;AT 2,17;"{2}{1}" AND Q<2;AT 7,2;"{E}{4}" AND Q<3;AT 8,2;"{2}{1}" AND Q<3;AT 7,17;"{E}{4}" AND Q<4;AT 8,17;"{2}{1}" AND Q<4
 260 IF O=-1 THEN PRINT AT 1,2;"{1}{2}";AT 2,2;"{4}{E}";AT 1,17;"{1}{2}";AT 2,17;"{4}{E}";AT 7,2;"{1}{2}";AT 8,2;"{4}{E}";AT 7,17;"{1}{2}";AT 8,17;"{4}{E}"
 270 LET H=(O=1)+(2 AND O=-1)
 280 PRINT AT X1,Y1;"  " AND (X1<>X OR Y1<>Y);AT X1+1,Y1;"  " AND (X1<>X OR Y1<>Y);AT X,Y;B$( TO 2);AT X+1,Y;B$(3 TO );AT 4,M;"  ";AT 5,M;"  "
 290 IF M=2 OR M=17 THEN LET N=-N
 300 LET M=M+N
 310 PRINT AT 4,M;A$(H, TO 2);AT 5,M;A$(H,3 TO )
 315 FAST
 320 LET X1=X
 330 LET Y1=Y
 340 LET X=X-(INKEY$="A" AND (X>1 AND (Y=2 OR Y=8 OR Y=11 OR Y=17)))+(INKEY$="Z" AND (X<7 AND (Y=2 OR Y=8 OR Y=11 OR Y=17)))
 350 LET Y=Y-(INKEY$="N" AND ((Y>2 AND X=4) OR ((X=1 OR X=7) AND ((Y>2 AND Y<9) OR Y>11))))+(INKEY$="M" AND ((Y<17 AND X=4) OR ((X=1 OR X=7) AND (Y<8 OR (Y>10 AND Y<17)))))
 360 IF O=1 THEN LET Q=Q+(X=1 AND Y=2 AND Q<1)+(X=1 AND Y=17 AND Q<2)+(X=7 AND Y=2 AND Q<3)+(X=7 AND Y=17 AND Q<4)
 370 IF O=-1 AND ((X=2 AND Y=2) OR (X=1 AND Y=3) OR (X=2 AND Y=17) OR (X=1 AND Y=16) OR (X=6 AND Y=2) OR (X=7 AND Y=3) OR (X=6 AND Y=2) OR (X=7 AND Y=3) OR (X=6 AND Y=17) OR (X=7 AND Y=16)) THEN GOTO 500
 380 IF X=4 AND (Y=M OR Y=M+1 OR Y+1=M OR Y+1=M+1) THEN GOTO 620
 390 LET S=S+1
 400 SLOW
 410 NEXT A
 420 IF Q<4 THEN GOTO 600
 430 PRINT AT 11,0;"YOU COMPLETED A SNUNCH SCREEN,  KEEP IT UP.   SCORE:";
 440 LET S=S+40
 450 PRINT S
 460 PRINT ,,"PRESS ENTER TO CONTINUE..."
 470 PAUSE 4E4
 480 CLS
 490 GOTO 40
 500 PRINT AT 14,0;"EXPLODING PILL GOT YOU, TOO BAD*"
 510 PRINT AT 11,0;"**SNUNCH**";AT 12,0;"{S}{S}{S}{S}{S}{S}{S}{S}{S}{S}BY STEVEN REID";AT X1,Y1;"  ";AT X1+1,Y1;"  ";AT 4,M;A$(H, TO 2);AT 5,M;A$(H,3 TO );AT X,Y;"{R}{7}";AT X+1,Y;"{1}{W}";AT 0,1;"[G][A][M][E][ ][O][V][E][R]"
 515 SLOW
 520 LET S=S+(Q*10)
 530 IF S>B THEN LET B=S
 540 PRINT AT 16,0;"SCORE:";S;AT 18,0;"BEST:";B;"  **A NEW RECORD**" AND S=B
 550 PRINT AT 21,0;"[P][R][E][S][S][ ][E][N][T][E][R][ ][T][O][ ][B][E][G][I][N][ ][A][ ][N][E][W][ ][G][A][M][E][ ]"
 560 IF INKEY$<>"" THEN CLS
 570 IF INKEY$<>"" THEN GOTO 30
 580 PRINT AT 21,0;"PRESS ENTER TO BEGIN A NEW GAME "
 590 GOTO 550
 600 PRINT AT 14,0;"NOT ENOUGH PILLS, GOOD TRY*"
 610 GOTO 500
 620 PRINT AT 14,0;"GHOST GOT YOU,   TRY AGAIN**"
 630 GOTO 510