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