!!** 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"