!!** Written by Ann Ott. . . Attorneys' Title Services !!** Orlando, Florida ! Program Space Case MAP1 A,F,6,0 MAP1 B,F,6,0 MAP1 C,F,6,0 MAP1 E,F,6,0 MAP1 K,F,6,0 MAP1 L,F,6,0 MAP1 P,F,6,0 MAP1 S,F,6,0 MAP1 ROW,F,6,0 MAP1 COL,F,6,0 MAP1 ROW1,F,6,0 MAP1 COL1,F,6,0 MAP1 HIT,F,6,0 MAP1 B'SAV1,F,6,0 MAP1 B'SAV2,F,6,0 MAP1 ERASE,F,6,0 MAP1 TIMES,F,6,0 MAP1 STRAIF,F,6,0 PRINT TAB(1,1);TAB(-1,10); PRINT TAB(-1,29); THE'YARD: PRINT TAB(19,1);"___..__._ ___v______.____ __v.___._______ v_____..__.__ ______. ____v____" PRINT TAB(20,1);" ._v .___ v._ __.__ v.____ ___v___ V .v______" PRINT TAB(21,1);" _v_ . _v .__ v.__. __v . __v. _| " PRINT TAB(22,1);" _. ._ _____. __v _. ._ " PRINT TAB(23,1);" ___v v ___. _v __.v __v. ______.v " PRINT TAB(17,61);" " PRINT TAB(18,61);" " PRINT TAB(19,61);" " PRINT TAB(20,61);" " PRINT TAB(21,61);" " PRINT TAB(22,61);" " THE'HOUSE: PRINT TAB(17,61);" ___ _ " PRINT TAB(18,61);" / \__|_| " PRINT TAB(19,61);" |\/_____\ " PRINT TAB(20,61);" | |[] []| " PRINT TAB(21,61);" \ |[] []| " PRINT TAB(22,61);" \|_____| " THE'SIGHTING: ROW=1 : COL=4 : TIMES=5 : GOSUB MOVE'DOWN ROW=5 : COL=5 : TIMES=3 : GOSUB STAY'PUT ROW=5 : COL=5 : TIMES=5 : GOSUB MOVE'ACROSS THE'ATTACK: FOR STRAIF=1 TO 5 TIMES = 3 : GOSUB MOVE'ACROSS FOR P=1 TO 2 GOSUB SHIP GOSUB PHASER1 IF (STRAIF=2 AND P=2) THEN GOSUB BOOM IF (STRAIF=3 AND P=2) THEN GOSUB BOOM IF (STRAIF=5 AND P=2) THEN GOSUB BOOM GOSUB NO'SHIP NEXT P NEXT STRAIF TIMES = 5 : ROW=ROW-1 : GOSUB STAY'PUT TIMES = 2 : GOSUB MOVE'DOWN THE'COUNTER'ATTACK: FOR K = 1 TO 3 GOSUB LASER NEXT K TIMES = 3 : GOSUB MOVE'DOWN FOR K = 1 TO 3 GOSUB LASER NEXT K P'ROW=1 : P'COL=65 GOSUB PAC'DOWN'OPEN FOR K=1 TO 3 GOSUB LASER NEXT K GOSUB BIG'BOOM THE'HERO: P'ROW=1 : P'COL=65 : TIMES = 10 : GOSUB MOVE'PAC'DOWN TIMES = 10 : GOSUB MOVE'PAC'BACK GOSUB PAC'BACK'OPEN FOR V = 1 TO 3 : GOSUB PAC'LASER : NEXT V GOSUB PAC'BACK'CLOSED GOSUB CLEAR'PAC'DOWN GOSUB PAC'SMILE GOTO END !//\\//\\//\\//\\//\\//\\//\\//\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\ ! First Level Subroutines ! !___________________________! MOVE'DOWN: FOR A = 1 TO TIMES GOSUB SHIP : GOSUB NO'SHIP ROW=ROW+1 NEXT A return STAY'PUT: FOR C = 1 TO TIMES GOSUB SHIP : GOSUB NO'SHIP NEXT C return MOVE'ACROSS: FOR B = 1 TO TIMES GOSUB SHIP : GOSUB NO'SHIP COL=COL+1 NEXT B return MOVE'PAC'DOWN: FOR A = 1 TO TIMES GOSUB PAC'DOWN'OPEN : GOSUB CLEAR'PAC'DOWN : GOSUB PAC'DOWN'CLOSED : GOSUB CLEAR'PAC'DOWN P'ROW=P'ROW+1 NEXT A return MOVE'PAC'BACK: FOR B = 1 TO TIMES GOSUB PAC'BACK'OPEN : GOSUB CLEAR'PAC'DOWN : GOSUB PAC'BACK'CLOSED : GOSUB CLEAR'PAC'DOWN P'COL=P'COL-1 NEXT B return !//\\//\\//\\//\\//\\//\\//\\//\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\ ! Second Level Subroutines ! !__________________________! SHIP: PRINT TAB(ROW, COL);"/ \" PRINT TAB(ROW+2,COL);"\ /" PRINT TAB(ROW,COL+1);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW,COL+2);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW,COL+3);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW,COL+4);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW,COL+5);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW+2,COL+1);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW+2,COL+2);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW+2,COL+3);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW+2,COL+4);TAB(-1,23);TAB(-1,52);TAB(-1,24); PRINT TAB(ROW+2,COL+5);TAB(-1,23);TAB(-1,52);TAB(-1,24); FOR S = 1 TO 3 GOSUB LIGHTS NEXT S return NO'SHIP: PRINT TAB(ROW, COL);" " PRINT TAB(ROW+1,COL-3);" " PRINT TAB(ROW+2,COL);" " return LIGHTS: FOR L = 1 TO 2 PRINT TAB(ROW+1,COL-3);" " PRINT TAB(ROW+1,COL-3);"0 0 0 0 " PRINT TAB(ROW+1,COL-3);" " PRINT TAB(ROW+1,COL-3);" 0 0 0 0 0 0 " PRINT TAB(ROW+1,COL-3);" " PRINT TAB(ROW+1,COL-3);" 0 0 0 0" NEXT L return PAC'DOWN'OPEN: FOR D = 1 TO 5 PRINT TAB(P'ROW, P'COL);" ____" PRINT TAB(P'ROW+1,P'COL);"|. _ |" PRINT TAB(P'ROW+2,P'COL);"|_/ \|" NEXT D return PAC'DOWN'CLOSED: FOR G = 1 TO 5 PRINT TAB(P'ROW, P'COL);" ____" PRINT TAB(P'ROW+1,P'COL);"|. ^ |" PRINT TAB(P'ROW+2,P'COL);"|__|_|" NEXT G return CLEAR'PAC'DOWN: PRINT TAB(P'ROW, P'COL);" " PRINT TAB(P'ROW+1,P'COL);" " PRINT TAB(P'ROW+2,P'COL);" " return PAC'BACK'OPEN: FOR D = 1 TO 5 PRINT TAB(P'ROW, P'COL);" ____ " PRINT TAB(P'ROW+1,P'COL);" \') |" PRINT TAB(P'ROW+2,P'COL);" /___|" NEXT D return PAC'BACK'CLOSED: FOR G = 1 TO 5 PRINT TAB(P'ROW, P'COL);" ____ " PRINT TAB(P'ROW+1,P'COL);"|_' |" PRINT TAB(P'ROW+2,P'COL);"|____|" NEXT G return PAC'SMILE: FOR H = 1 TO 2 FOR G = 1 TO 3 PRINT TAB(P'ROW, P'COL);" ____ " PRINT TAB(P'ROW+1,P'COL);"| '' |" PRINT TAB(P'ROW+2,P'COL);"|____|" NEXT G FOR G = 1 TO 3 PRINT TAB(P'ROW, P'COL);" ____ " PRINT TAB(P'ROW+1,P'COL);"| -- |" PRINT TAB(P'ROW+2,P'COL);"|____|" NEXT G NEXT H FOR G = 1 TO 10 PRINT TAB(P'ROW, P'COL);" ____ " PRINT TAB(P'ROW+1,P'COL);"|_''_|" PRINT TAB(P'ROW+2,P'COL);"|_\/_|" NEXT G POP: PRINT TAB(P'ROW, P'COL-6);" \ ! /" PRINT TAB(P'ROW+1,P'COL-6);" \ /" PRINT TAB(P'ROW+2,P'COL-6);"-- P O P ! --" PRINT TAB(P'ROW+3,P'COL-6);" / \" PRINT TAB(P'ROW+4,P'COL-6);" / / \ \ " return !//\\//\\//\\//\\//\\//\\//\\//\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\ PHASER1: ROW1=ROW : COL1=COL SHOOT: IF (ROW1>18) THEN GOTO STOP'SHOOT IF (COL1>75) THEN GOTO STOP'SHOOT PRINT TAB(ROW1+4,COL1+4);"*" COL1=COL1+1 : ROW1=ROW1+1 GOTO SHOOT STOP'SHOOT: B'SAV1=ROW1 : B'SAV2=COL1 ROW1=ROW : COL1=COL ERASE: IF (ROW1>18) THEN return IF (COL1>75) THEN return PRINT TAB(ROW1+4,COL1+4);" " COL1=COL1+1 : ROW1=ROW1+1 GOTO ERASE BOOM: PRINT TAB(B'SAV1+2,B'SAV2-1);" " PRINT TAB(B'SAV1+3,B'SAV2-1);" <*> " PRINT TAB(B'SAV1+4,B'SAV2-1);" " PRINT TAB(B'SAV1+2,B'SAV2-1);" \ * /" PRINT TAB(B'SAV1+3,B'SAV2-1);" -* ` *-" PRINT TAB(B'SAV1+4,B'SAV2-1);" / * \" GOSUB BOOM'GONE IF STRAIF=2 : GOSUB PRINT'DESTRUCTION2 IF STRAIF=3 : GOSUB PRINT'DESTRUCTION3 IF STRAIF=5 : GOSUB PRINT'DESTRUCTION5 return BOOM'GONE: PRINT TAB(B'SAV1+2,B'SAV2-1);" " PRINT TAB(B'SAV1+3,B'SAV2-1);" " PRINT TAB(B'SAV1+4,B'SAV2-1);" " return PRINT'DESTRUCTION2: PRINT TAB(B'SAV1+2,B'SAV2-1);": .:. ." PRINT TAB(B'SAV1+3,B'SAV2-1);" :. ..:" PRINT TAB(B'SAV1+4,B'SAV2-1);": ..:. " return PRINT'DESTRUCTION3: PRINT TAB(B'SAV1+1,B'SAV2+1);" . ..:" PRINT TAB(B'SAV1+2,B'SAV2+1);" :. .." return PRINT'DESTRUCTION5: PRINT TAB(B'SAV1+2,B'SAV2-1);" .: " PRINT TAB(B'SAV1+3,B'SAV2-1);": ..:. " PRINT TAB(B'SAV1+4,B'SAV2-1);"::.. .." return LASER: GOSUB SHIP ROW2=4 : COL2=67 FOR HIT = 1 TO 8 PRINT TAB(ROW2,COL2);"* ` *" COL2=COL2-6 : ROW2=ROW2+1 NEXT HIT STOP'LASER: ROW2=4 : COL2=67 ERASE'LASER: FOR ERASE = 1 TO 8 PRINT TAB(ROW2,COL2);" " COL2=COL2-6 : ROW2=ROW2+1 NEXT ERASE return PAC'LASER: ROW1=P'ROW : COL1=P'COL FOR M = 1 TO 50 PRINT TAB(ROW1+1,COL1-1);"*" COL1=COL1-1 NEXT M ERASE'PAC'LASER: ROW1=P'ROW : COL1=P'COL FOR M = 1 TO 50 PRINT TAB(ROW1+1,COL1-1);" " COL1=COL1-1 NEXT M RETURN BIG'BOOM: PRINT TAB(ROW-1,COL-10);" " PRINT TAB(ROW ,COL-10);" \ / " PRINT TAB(ROW+1,COL-10);" >{ *** }< " PRINT TAB(ROW+2,COL-10);" >{ *** }< " PRINT TAB(ROW+3,COL-10);" / \ " PRINT TAB(ROW+4,COL-10);" " PRINT TAB(ROW+5,COL-10);" " PRINT TAB(ROW+6,COL-10);" " PRINT TAB(ROW-3,COL-10);" \ /" PRINT TAB(ROW-2,COL-10);" \ / " PRINT TAB(ROW-1,COL-10);" \ | / " PRINT TAB(ROW, COL-10);" \ \ / / " PRINT TAB(ROW+1,COL-10);" -- >{ *** }< --- " PRINT TAB(ROW+2,COL-10);" -- >{ *** }< --- " PRINT TAB(ROW+3,COL-10);" / / \ \ " PRINT TAB(ROW+4,COL-10);" / | \ " PRINT TAB(ROW+5,COL-10);" / \ " PRINT TAB(ROW+6,COL-10);" / \" PRINT TAB(ROW-3,COL-10);" { . } " PRINT TAB(ROW-2,COL-10);" { \ ** | ** / }" PRINT TAB(ROW-1,COL-10);" { + \ * | * / + }" PRINT TAB(ROW, COL-10);" { + + \ \ / / + + }" PRINT TAB(ROW+1,COL-10);"{ ***-- >{ *** }< -*** }" PRINT TAB(ROW+2,COL-10);"{ ***-- >{ *** }< -*** }" PRINT TAB(ROW+3,COL-10);"{ + + / / \ \ + + }" PRINT TAB(ROW+4,COL-10);" { + / * | * \ + }" PRINT TAB(ROW+5,COL-10);" { / ** | ** \ }" PRINT TAB(ROW+6,COL-10);" { . }" PRINT TAB(ROW-3,COL-10);" " PRINT TAB(ROW-2,COL-10);" " PRINT TAB(ROW-1,COL-10);" " PRINT TAB(ROW, COL-10);" ` " PRINT TAB(ROW+1,COL-10);" ``` " PRINT TAB(ROW+2,COL-10);" ````` " PRINT TAB(ROW+3,COL-10);" ``` " PRINT TAB(ROW+4,COL-10);" ` " PRINT TAB(ROW+5,COL-10);" " PRINT TAB(ROW+6,COL-10);" " PRINT TAB(ROW-3,COL-10);" ` " PRINT TAB(ROW-2,COL-10);" ` " PRINT TAB(ROW-1,COL-10);" ``` " PRINT TAB(ROW, COL-10);" ``````` " PRINT TAB(ROW+1,COL-10);" ``````````````` " PRINT TAB(ROW+2,COL-10);" ``````` " PRINT TAB(ROW+3,COL-10);" ````` " PRINT TAB(ROW+4,COL-10);" ``` " PRINT TAB(ROW+5,COL-10);" ` " PRINT TAB(ROW+6,COL-10);" ` " PRINT TAB(ROW-3,COL-10);" ```````````` " PRINT TAB(ROW-2,COL-10);" ```````````````` " PRINT TAB(ROW-1,COL-10);" ````````````````````` " PRINT TAB(ROW, COL-10);" ``````````````````````` " PRINT TAB(ROW+1,COL-10);"````````````````````````` " PRINT TAB(ROW+2,COL-10);"````````````````````````` " PRINT TAB(ROW+3,COL-10);"````````````````````````` " PRINT TAB(ROW+4,COL-10);" ``````````````````````` " PRINT TAB(ROW+5,COL-10);" ```````````````````` " PRINT TAB(ROW+6,COL-10);" ``````````````` " PRINT TAB(ROW-3,COL-10);" " PRINT TAB(ROW-2,COL-10);" " PRINT TAB(ROW-1,COL-10);" " PRINT TAB(ROW, COL-10);" " PRINT TAB(ROW+1,COL-10);" " PRINT TAB(ROW+2,COL-10);" " PRINT TAB(ROW+3,COL-10);" " PRINT TAB(ROW+4,COL-10);" " PRINT TAB(ROW+5,COL-10);" " PRINT TAB(ROW+6,COL-10);" " FOR E = 1 TO 2 PRINT TAB(ROW-3,COL-10);" . .." PRINT TAB(ROW-2,COL-10);" .. . .. " PRINT TAB(ROW-1,COL-10);" .. . .. " PRINT TAB(ROW, COL-10);" .. . " PRINT TAB(ROW+1,COL-10);" . .. . .. " PRINT TAB(ROW+2,COL-10);" .. " PRINT TAB(ROW+3,COL-10);" . .. . . . " PRINT TAB(ROW+4,COL-10);" .. " PRINT TAB(ROW+5,COL-10);" .. . " PRINT TAB(ROW+6,COL-10);" .. .. .." NEXT E PRINT TAB(ROW-3,COL-10);" " PRINT TAB(ROW-2,COL-10);" " PRINT TAB(ROW-1,COL-10);" " PRINT TAB(ROW, COL-10);" " PRINT TAB(ROW+1,COL-10);" " PRINT TAB(ROW+2,COL-10);" " PRINT TAB(ROW+3,COL-10);" " PRINT TAB(ROW+4,COL-10);" " PRINT TAB(ROW+5,COL-10);" " PRINT TAB(ROW+6,COL-10);" " return END: PRINT PRINT INPUT "Press 'Return' for Game Menu "; AS$ ? TAB(-1,0) CHAIN "GMENU"