Halloween

Developer(s): Kenneth Fracchia
Date: 1986
Type: Program
Platform(s): TS 2068

A beWITCHing game. You play the part of a witch on her motorised broomstick, trapped in a seven floor castle. You have to work your way up the castle to the top (level 7) where, on escaping you will be able to fly away.

Appears on

Gallery

Source Code

   10 REM "HALLOWEEN" (SPECTRUM) REVISED BY KENNETH FRACCHIA TO THE 2068 USING JOYSTICK (LEFT PORT) PROPERTY OF SUG LIBRARY 1/7/87.
   11 REM SEPTEMBER 6, 1986
   12 RESTORE 
   15 POKE 23658,8
   20 PAPER 0: BORDER 0: INK 3: FLASH 0: BRIGHT 0: OVER 0: INVERSE 0: CLS : BRIGHT 1
   30 PRINT AT 0,0; PAPER 1; INK 5;"                                                                                                                                                                                                                                    HAPPY HALLOWEEN                 T/S USER CLUB               "                                                                               
  110 FOR f=144 TO 154: FOR g=0 TO 7: READ a: POKE USR CHR$ f+g,a: NEXT g: NEXT f
  120 DATA 255,129,129,255,255,129,129,255
  130 DATA 30,30,13,140,206,255,200,140,120,120,176,49,119,255,23,49
  140 DATA 60,94,191,191,191,191,94,60,136,34,136,32,0,26,138,32
  150 DATA 24,24,126,126,24,24,24,24,60,126,219,255,255,195,255,85
  160 DATA 126,126,96,120,120,96,126,126,102,102,60,24,24,60,102,102,126,126,24,24,24,24,126,126,126,126,24,24,24,24,24,24
  170 DIM a$(480): PRINT AT 11,0; INK 6;"DO YOU WANT INSTRUCTIONS (Y/N) ?"
  171 IF INKEY$="Y" THEN GO TO 171
  173 IF INKEY$="Y" THEN GO SUB 8000: PRINT AT 6,0;a$,,: GO TO 170
  176 IF INKEY$="N" THEN GO TO 190
  180 GO TO 173
  200 REM INITIALISE VARIABLES
  205 LET hs=0: LET h$=""
  210 LET s=1
  220 RESTORE 220: DIM i(2): LET i(1)=6: LET i(2)=5: LET o$="\d\g"
  230 DIM x(9): DIM y(9): FOR f=1 TO 9: READ y(f),x(f): NEXT f: DATA 1,2,1,29,2,1,2,30,17,1,17,30,18,2,18,29,11,15
  232 PRINT AT 11,0; INK 6;"PRESS SKILL LEVEL 1 TO 9",''"(1-SNAIL PACE","9-IMPOSSIBLE)"
  235 LET r$=INKEY$: IF r$<"1" OR r$>"9" THEN GO TO 235
  238 LET sk1=VAL r$: LET sk=26-(sk1*3-2)
  239 PRINT AT 11,0,,,,,,
  240 LET e=6.99: LET l=3: LET sc=0: LET c=0: DIM c(4)
  298 LET d=1: LET w$="\c"
  299 GO SUB 9000
  300 REM PRINT OBJECTS
  302 PRINT AT 11,15; INK 4;w$
  303 LET l$="\h\i\j\k": FOR f=1 TO 4: IF c(f)=1 THEN PRINT AT 20,f+24; INK 4;l$(f)
  304 NEXT f
  305 IF c(1)=0 THEN PRINT AT 1,1; INK 4;"\h"
  306 IF c(2)=0 THEN PRINT AT 1,30; INK 4;"\i"
  307 IF c(3)=0 THEN PRINT AT 18,1; INK 4;"\j"
  308 IF c(4)=0 THEN PRINT AT 18,30; INK 4;"\k"
  315 FOR f=1 TO 10: FOR g=1 TO 2
  320 LET x=INT (RND*30)+1: LET y=INT (RND*18)+1: IF ATTR (y,x)<>3 THEN GO TO 320
  325 FOR h=1 TO 9: IF x=x(h) AND y=y(h) THEN GO TO 320
  326 NEXT h
  330 PRINT AT y,x; INK i(g);o$(g): NEXT g: NEXT f
  340 FOR f=1 TO 4
  350 LET x=INT (RND*30)+1: LET y=INT (RND*18)+1: IF ATTR (y,x)<>3 THEN GO TO 350
  355 FOR h=1 TO 8: IF x=x(h) AND y=y(h) THEN GO TO 350
  356 NEXT h
  360 PRINT AT y,x; INK 2;"\f": NEXT f
  390 GO SUB 400: GO TO 420
  400 REM STATUS DISPLAY
  410 PRINT AT 20,0; INK 7;"SCORE: ";sc,"LETTERS:"'"LIVES:": FOR f=1 TO L: PRINT AT 21,f*2+5; INK 4;"\b": NEXT f: PRINT AT 21,16; INK 7;"ENERGY: "; INK INT e;"    "
  415 RETURN 
  420 LET x=15: LET y=11
  490 PRINT AT y,x; BRIGHT 0;" "
  500 REM WITCH MOVEMENT
  505 IF ATTR (y,x)<>3 THEN GO TO 1000
  510 PRINT AT y,x; INK 4;w$: LET e=e-.04: IF e<=0 THEN LET r=4: GO TO 1500
  515 PRINT AT 21,25; INK INT e;"   "
  517 FOR f=1 TO sk: NEXT f
  518 LET T=|(1,1)
  520 PRINT AT Y,X; INVERSE 1; PAPER 3; INK 0;"\e": IF T=4 THEN GO TO 600
  530 IF T=2 THEN GO TO 700
  540 IF T=1 THEN GO TO 800
  550 IF T=8 THEN GO TO 900
  560 GO TO d*100+500
  600 LET w$="\c": LET x=x-1: LET d=1: GO TO 505
  700 LET y=y+1: LET d=2: GO TO 505
  800 LET y=y-1: LET d=3: GO TO 505
  900 LET w$="\b": LET x=x+1: LET d=4: GO TO 505
 1000 REM INTO OBJECT
 1005 IF ATTR (y,x)=88 THEN LET r=1: GO TO 1500
 1010 IF ATTR (y,x)=69 THEN LET r=2: GO TO 1500
 1020 IF ATTR (y,x)=66 THEN BRIGHT 0: CLS : BRIGHT 1: PRINT AT 6,1; INK 6;"YOU COLLIDED WITH A GRAVESTONE";AT 12,4;"YOU LOSE ALL YOUR LIVES": PAUSE 100: GO TO 1520
 1030 IF ATTR (y,x)=67 THEN LET r=3: GO TO 1500
 1040 IF ATTR (y,x)=70 THEN LET e=e+.5: BEEP .5,20: PRINT AT y,x; BRIGHT 0;" ": IF e>9.99 THEN LET e=9.99
 1060 IF y=1 AND x=1 THEN LET c(1)=1: PRINT AT 20,25; INK 4;"\h": GO SUB 1200
 1070 IF y=1 AND x=30 THEN LET c(2)=1: PRINT AT 20,26; INK 4;"\i": GO SUB 1200
 1080 IF y=18 AND x=1 THEN LET c(3)=1: PRINT AT 20,27; INK 4;"\j": GO SUB 1200
 1090 IF y=18 AND x=30 THEN LET c(4)=1: PRINT AT 20,28; INK 4;"\k": GO SUB 1200
 1100 IF c=4 THEN GO TO 2000
 1110 GO TO 506
 1200 REM LETTER COLLECTED
 1210 LET c=c+1: LET sc=sc+10*s*sk1: PRINT AT 20,7;sc: PRINT AT y,x; INK 4;w$: FOR f=20 TO 30: BEEP .1,f: NEXT f: RETURN 
 1500 REM DEATH ROUTINE
 1510 LET l=l-1: FOR f=10 TO 0 STEP -1:: BEEP .1,f: NEXT f: CLS 
 1511 IF r=1 THEN PRINT AT 7,0; INK 6;"YOU COLLIDED WITH YOUR OWN TRAIL."
 1512 IF r=2 THEN PRINT AT 7,3; INK 6;"YOU COLLIDED WITH A GHOST"
 1513 IF r=3 THEN PRINT AT 7,3; INK 6;"YOU COLLIDED WITH THE WALL"
 1514 IF r=4 THEN PRINT AT 7,5; INK 6;"YOU RAN OUT OF ENERGY"
 1515 PRINT AT 14,0; INK 6;"YOU LOSE A LIVE-";l;" LIVES LEFT"
 1516 IF l=1 THEN PRINT AT 14,20; INK 6;"LIFE LEFT"
 1517 LET e=7.99-s
 1518 PAUSE 100: PRINT AT 11,0,,: IF l>0 THEN GO TO 290
 1520 CLS : PRINT AT 0,11; INK 6;"GAME OVER";AT 4,0;"YOU WERE ON SKILL LEVEL ";sk1;AT 8,0;"YOU REACHED STAGE ";s;AT 12,0;"YOU HAD A SCORE OF ";sc
 1530 IF sc>hs THEN PRINT AT 16,0; INK 6;"YOU HAVE BEATEN THE HIGH SCORE. PLEASE TYPE IN YOUR NAME.": INPUT LINE h$: LET hs=sc
 1540 PRINT AT 16,0; INK 6;"THE HIGH SCORE REMAINS ";hs,"BY ";h$: GO TO 1600
 1600 REM ANOTHER GAME
 1610 POKE 23658,8: PAUSE 200: CLS : PRINT AT 11,0; INK 6;"PRESS ANY KEY FOR ANOTHER GAME": PAUSE 0: GO TO 210
 2000 REM STAGE COMPLETED
 2010 CLS : PRINT AT 11,7; INK 6;"STAGE ";s;" COMPLETED": LET s=s+1: PAUSE 100: LET c=0: DIM c(4): IF s<8 THEN GO TO 290
 2020 CLS : PRINT AT 0,11; INK 6;"CONGRATULATIONS - GAME COMPLETED";AT 4,0;"YOU DID THIS ON SKILLLEVEL ";sk1;AT 8,0;"YOU HAD ";l;"LIVES LEFT";AT 12,0;"YOU HAD A SCORE OF ";sc
 2030 GO TO 1530
 8000 REM INSTRUCTIONS
 8010 PAUSE 1: PRINT AT 6,0; INK 6;"YOU PLAY THE PART OF A WITCH ON HER MOTORISED BROOMSTICK,       TRAPPED IN A SEVEN FLOOR CASTLE."''"YOU HAVE TO WORK YOUR WAY UP THE CASTLE TO THE TOP (LEVEL 7)     WHERE, ON ESCAPING YOU WILL BE ABLE TO FLY AWAY."''"TO ESCAPE FROM EACH LEVEL YOU   MUST COLLECT THE LETTER IN EACH"
 8020 PRINT INK 6;"CORNER OF THE ROOMS TO SPELL THE WORD-EXIT. YOU WILL THEN AUTOMAT-ICALLY BE TRANSPORTED TO THE    NEXT LEVEL."
 8030 PRINT AT 21,9; INK 5;"PRESS ANY KEY": PAUSE 0: PRINT AT 6,0;a$:
 8040 PRINT AT 6,0; INK 6;"HOWEVER,GHOSTS INHABIT EACH     LEVEL AND SHOULD YOU COLLIDE    WITH ONE OF THEM YOU LOSE A     LIFE. LIVES ARE ALSO LOST BY     FLYING INTO WALLS OR BACK ON YOUR OWN TRAIL OF POISENOUS        FUMES GIVEN OFF BY YOUR BROOM-  STICK."
 8050 PRINT ' INK 6;"THERE ARE ALSO GRAVESTONES ON   EACH LEVEL. THESE, ON COLLISION,WILL CAUSE LOSS OF ALL YOUR     REMAINING LIVES.": PAUSE 0: PRINT AT 6,0;a$;AT 6,0; INK 6;"YOUR ENERGY SUPPLY MUST ALSO BE WATCHED. THE LOWER THE VALUE"
 8060 PRINT INK 6;"THAT THE COLOR HAS ON THE       COMPUTER, THE LOWER YOUR ENERGY. THAT IS, BLACK IS MINIMUM AND  WHITE MAXIMUM  ENERGY. YOUR     ENERGY INCREASES SLIGHTLY WHEN YOU EAT ONE OF THE PUMPKINS." 
 8065 PRINT ' INK 6;"WHEN YOU LOSE A LIFE, THE AMOUNT OF ENERGY YOU HAVE LEFT IS AUTO-MATICALLY ADJUSTED UP OR DOWN TO THE AMOUNT REQUIRED TO COMPLETE THE GAME."
 8070 PAUSE 0: PRINT AT 6,0;a$
 8080 PRINT AT 6,0; INK 4;"  \b   "; INK 6;"THE WITCH (YOU)."'' INK 4;"\h \i \j \k"; INK 6;"THE LETTERS TO COLLECT."'' INK 3;" \a\a\a   "; INK 6;"THE CASTLE WALLS."''      INK 3;"\e\e\e\e"; INK 6;"YOUR OWN TRAIL."
 8090 PRINT ' INK 2;"  \f "; INK 6;"THE GRAVESTONES."'' INK 5;"  \g  "; INK 6;"THE GHOSTS."''"   \d   THE PUMPKINS."
 8100 PAUSE 0: PRINT AT 6,0;a$;AT 6,0; INK 6;"YOU SCORE FOR EACH LETTER COLLECTED. THE AMOUNT PER LETTER IS 10x THE STAGE NUMBER x THE SKILL LEVEL."
 8110 PRINT INK 6;''"USE THE LEFT JOYSTICK TO MOVE   UP, DOWN, LEFT, OR RIGHT."
 8120 PAUSE 0: RETURN 
 9000 REM PRINT CASTLE
 9005 BRIGHT 0: CLS : BRIGHT 1
 9007 PRINT AT 9,12; INK 6;"STAGE ";s: GO SUB 400: PAUSE 100: PRINT AT 9,0; BRIGHT 0,,
 9010 FOR f=0 TO 19 STEP 19: PRINT AT f,0;"\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a": NEXT f: FOR f=0 TO 19: PRINT AT f,0;"\a";AT f,31;"\a": NEXT f: IF s=1 THEN RETURN 
 9020 FOR g=1 TO 13 STEP 12: FOR f=g TO g+5: PRINT AT f,15;"\a\a": NEXT f: NEXT g: IF s=2 THEN RETURN 
 9030 FOR h=7 TO 23 STEP 16: FOR f=7 TO 12: PRINT AT f,h;"\a\a": NEXT f: FOR g=1 TO 17 STEP 16: FOR f=0 TO 1: PRINT AT g+f,h;"\a\a": NEXT f: NEXT g: NEXT h: IF s=3 THEN RETURN 
 9040 FOR g=9 TO 10: FOR f=1 TO 25 STEP 24: PRINT AT g,f;"\a\a";   BRIGHT 0;"\a\a"; BRIGHT 1;"\a\a":   NEXT f: NEXT g: IF s=4 THEN RETURN 
 9050 FOR g=3 TO 15 STEP 12: FOR f=0 TO 1: PRINT AT g+f,11;"\a\a\a\a\a\a\a\a\a\a": NEXT f: NEXT g       : FOR h=5 TO 11 STEP 6:: FOR g=11 TO 19 STEP 8: FOR f=0 TO 3: PRINT AT f+h,g;"\a\a": NEXT f: NEXT g: NEXT h: IF s=5 THEN RETURN  
 9060 FOR h=3 TO 13 STEP 10: FOR g=3 TO 27 STEP 24: FOR f=0 TO 3: PRINT AT h+f,g;"\a\a": NEXT f: NEXT g: NEXT h: IF s=6 THEN RETURN 
 9070 FOR h=3 TO 13 STEP 10: FOR g=0 TO 3 STEP 3: FOR f=7 TO 23 STEP 16: PRINT AT h+g,f;"\a\a": NEXT f: NEXT g: NEXT h: FOR f=9 TO 10: PRINT AT f,15;"\a\a": NEXT f: RETURN 
 9999 SAVE "HALLOWEEN" LINE 10
Scroll to Top