home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
games
/
witch_hr.zip
/
WITCH-HR.BAS
Wrap
BASIC Source File
|
1985-11-24
|
4KB
|
96 lines
10 GOSUB 530:GOTO 280
20 H=0:K=0:FOR A=7 TO 35:GOSUB 60:NEXT
30 GOSUB 170:IF H<1 THEN 250
40 H=0:K=0:A=T:GOSUB 60:IF H<1 THEN 250
50 GOTO 30
60 IF B(A)=0 OR B(A)=-S OR B(A)=2 THEN RETURN
70 FOR B=0 TO D(A-7):C=A+M(B):IF B(C)=S OR B(C)=2 THEN 160
80 IF B(C) THEN 120
90 SC=RND(1)*.9:IF H<SC THEN H=SC:F=A:T=C
100 IF CK=1 AND T1=C THEN L=1:B=7
110 GOTO 160
120 IF B(C+M(B)) THEN 160
130 SC=1+RND(1)*.9:IF H<SC THEN H=SC:F=A:T=C+M(B):K=C
140 IF CK=0 THEN 160
150 IF T1=C+M(B) THEN L=1:K1=C:B=7
160 NEXT:RETURN
170 B(T)=B(F):B(F)=0:A=F:GOSUB 760
180 IF K THEN B(K)=0:A=K:GOSUB 760
190 A=T:GOTO 760
200 GOSUB 520:IF S=1 THEN PRINT"The witches win!":GOTO 220
210 PRINT"The ghosts win!"
220 LOCATE 23,10:PRINT"Hit a key to play again"
230 K$=INKEY$:IF K$="" THEN 230
240 RUN
250 S=-S:H=0:A=7
260 IF A=36 THEN 200
270 GOSUB 60:IF H=0 THEN A=A+1:GOTO 260
280 D=0:GOSUB 520:IF S=1 THEN PRINT"Ghost's turn":GOTO 300
290 PRINT"Witch's turn"
300 PRINT TAB(16)"From:";
310 E=E+1:K$=INKEY$:IF K$="" THEN 310
320 IF ASC(K$)=13 THEN GOSUB 520:RANDOMIZE E:GOTO 20
330 IF ASC(K$)<97 OR ASC(K$)>121 THEN 310
340 PRINT K$:A=N(ASC(K$)-97):Z=A
350 LOCATE 23,18:PRINT"To:";
360 K$=INKEY$:IF K$="" THEN 360
370 IF ASC(K$)<97 OR ASC(K$)>121 THEN 360
380 PRINT K$:T1=N(ASC(K$)-97)
390 CK=1:L=0:K1=0:GOSUB 60:CK=0
400 H=0:A=7
410 IF A=36 THEN 440
420 GOSUB 60:IF H>=1 THEN 440
430 A=A+1:IF A<36 THEN 420
440 IF D THEN 470
450 IF L THEN 480
460 SOUND 99,5:GOTO 280
470 IF L=0 OR K1=0 THEN SOUND 99,5:GOTO 510
480 IF K1=0 AND H>=1 THEN 460
490 F=Z:T=T1:K=K1:GOSUB 170:IF K1=0 THEN 250
500 A=T:Z=A:H=0:GOSUB 60:IF H<1 THEN 250
510 GOSUB 520:D=1:GOTO 350
520 LOCATE 20,1:FOR B=1 TO 3:PRINT:PRINT" ";:NEXT:LOCATE 21,14:RETURN
530 KEY OFF:SCREEN 1:COLOR 0,1:CLS:DEFINT C,W
540 DIM C1(98),W1(98),SQ(98),B(42),D(28),X(35),Y(35),L(35),XL(35),YL(35),N(28)
550 LINE (50,80)-(81,103),1,B
560 LOCATE 12,12: PRINT "The Witching Hour
570 LINE (230,80)-(261,103),1,B
580 GET (50,80)-(81,103),SQ
590 FOR A=0 TO 52:READ C1(A):NEXT
600 PUT (56,82),C1
610 GET (50,80)-(81,103),C1
620 FOR A=0 TO 69:READ W1(A):NEXT
630 PUT (232,82),W1
640 GET (230,80)-(261,103),W1
650 S=-1:FOR A=0 TO 7:READ M(A):NEXT
660 FOR A=0 TO 28:READ D(A):NEXT
670 B=48:C=32:D=59:E=12
680 FOR A=0 TO 4:FOR F=0 TO 4:H=6*A+F+7:X(H)=B*F+D-15:Y(H)=C*A+E-11
690 L(H)=G+97:N(G)=H:G=G+1:XL(H)=6*F+10:YL(H)=4*A+1:NEXT:NEXT
700 CLS:FOR A=0 TO 4:LINE (D,C*A+E)-(B*4+D,C*A+E),2:NEXT
710 FOR A=0 TO 4:LINE (B*A+D,E)-(B*A+D,C*4+E),2:NEXT
720 A=0:F=0:GOSUB 740:A=B+B:GOSUB 740:F=C+C:GOSUB 740:A=0:GOSUB 740
730 FOR A=0 TO 42:READ B(A):GOSUB 760:NEXT:RETURN
740 LINE (D+A,E+F)-(2*B+D+A,2*C+E+F),2
750 LINE (D+A,2*C+E+F)-(2*B+D+A,E+F),2:RETURN
760 IF B(A)=2 THEN RETURN
770 IF B(A)<0 THEN PUT (X(A),Y(A)),W1,PSET
780 IF B(A)=0 THEN PUT (X(A),Y(A)),SQ,PSET
790 IF B(A)>0 THEN PUT (X(A),Y(A)),C1,PSET
800 LOCATE YL(A),XL(A):PRINT CHR$(L(A)):RETURN
810 DATA 36,20,-256,192,0,-961,0,16128,255,0,-1,192,-3328,-16177,0,-1,192
820 DATA 16128,255,0,-1009,-16381,1020,16368,-16,-1,-3841,-1,-769,-16336,-193
830 DATA 192,16128,-3841,0,-241,252,768,-769,0,16128,252,0,-4033,0,16128,192,0
840 DATA -4081,0,0,255,0
850 DATA 52,20,48,0,3,15360,240,768,0,-241,252,-16381,768,-1,960,192,-256
860 DATA -769,-4081,0,-241,16383,255,3840,4095,12543,0,-1009,-1,192,768,-61
870 DATA 207,0,3840,-16129,0,0,-12289,192,0,-253,-16369,0,768,-15361,240
880 DATA -32768,-253,15600,0,168,-193,-16369,-22016,-81,-21761,-24406,16296
890 DATA -1,0,-32768,-241,252,0,3840,-3841,0,0,-16372
900 DATA -6,1,6,-1,-5,7,5,-7
910 DATA 7,3,7,3,7,0,3,7,3,7,3,0
920 DATA 7,3,7,3,7,0,3,7,3,7,3,0,7,3,7,3,7
930 DATA 2,2,2,2,2,2,2,-1,-1,-1,-1,-1,2
940 DATA -1,-1,-1,-1,-1,2,-1,-1,0,1,1,2
950 DATA 1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,2,2