Commodore Basic source - B-Venture

Started by Blacklord, August 13, 2007, 10:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Blacklord

1 DATA 99,99,99,99,99,99,9,16,14,19,5,18,1,9,"NORTH","SOUTH","EAST","WEST","UP","DOWN","HOBBIT","WEREWOLF","DRAGON","VAMPIRE","SWORD","PLATEMAIL","HELMET","CLOAK"
2 DATA 0,2,0,0,0,0,1,6,3,0,0,0,4,0,0,2,0,0,0,3,5,0,0,0,0,0,0,4,0,0,2,12,7,10,0,0,0,0,11,6,8,0,0,0,9,0,0,7,0,0,0,8,0,0,0,0,6,0,0,0,0,13,0,7,0,0,6,15,0,0,0,0,11,0,14,0,0,0,0,0,0,13,0,0,12,16,0,0,0,0,15,0,0,17,0,0,18,0,16,19,0,0,0,17,0,0,0,0,0,0,17,0,0,0
3 DATA"IN A TAVERN","BY A WELL","IN A CHURCH","AT AN ALTAR","IN STORAGE","NEAR A VILLAGE","BY A TREE","UP THE TREE","IN A HUT","AT A MOUNTAIN","IN A MEADOW","IN A FOREST","AT A CLEARING","BY A LAKE","ON A BRIDGE","BY A CASTLE","IN A HALLWAY","IN A ROOM"
4 DATA"BY A THRONE","GO","GET","DROP","USE","EXAMINE","LOOK","KILL","INVENTORY","QUIT","HELP","ODD CREATURE","HAS FIERY EYES","HAS TOUGH SCALES","A BLOOD FIEND","BLOOD SWORD","IRON PLATEMAIL","BRASS HELMET","ELVEN CLOAK"
5 DIM L(14),O$(14),M(25,15),D$(19),DE$(14),VB$(10):FOR X=1 TO 14:READ L(X):NEXT:FOR X=1 TO 14:READ O$(X):NEXT:FOR X=1 TO 19:FOR Y=1 TO 6:READ M(X,Y):NEXT Y:NEXT X:S$="SLICED":M$="MISSED"
6 FOR X=1 TO 19:READ D$(X):NEXT:FOR X=1 TO 10:READ VB$(X):NEXT:FOR X=7 TO 14:READ DE$(X):NEXT:CLS:P=125:R=1:PRINT"B-VENTURE":PRINT:PRINT"'CAN YOU SLAY THE VAMPIRE?'":PRINT
7 PRINT"YOU ARE ";D$(R):PRINT"< ";:FOR X=1 TO 6:IF M(R,X)>0 THEN PRINT O$(X);" ";
8 NEXT:PRINT">":FOR X=7 TO 14:IF L(X)=R THEN PRINT O$(X);"."
9 NEXT
10 V=0:N=0:Z=0:A$="":XL$="":N$="":V$="":INPUT">",A$:A$=UCASE$(A$):XL$=A$:FOR X=1 TO LEN(A$):IF MID$(A$,X,1)=" " THEN V$=LEFT$(A$,X-1):Z=X
11 NEXT:N$=MID$(XL$,Z+1):GOSUB 46:FOR X=1 TO 10:V=V+(X AND V$=VB$(X)):NEXT:FOR X=1 TO 14:N=N+(X AND N$=O$(X)):NEXT
12 ON V GOTO 14,17,19,21,23,7,25,39,44,48
13 GOTO 22
14 IF M(R,N)=0 THEN 22
15 IF R=16 AND N=4 AND L(8)=R THEN PRINT"IT GROWLS,'LEAVE, NOW!'":GOTO 10
16 R=M(R,N):GOTO 7
17 IF N<11 OR L(N)<>R THEN 22
18 L(N)=101:GOTO 21
19 IF N<11 OR L(N)<100 THEN 22
20 L(N)=R
21 PRINT"OK.":GOTO 10
22 PRINT"HOW?":GOTO 10
23 IF L(N)<>R AND L(N)<100 THEN 22
24 PRINT O$(N);":";DE$(N):GOTO 10
25 IF L(N)<>R OR N<7 OR N>10 THEN 22
26 GOSUB 47:T=INT(RND*250)+1
27 GOSUB 47:PRINT">YOU ";:U=2:IF L(11)>99 THEN U=8
28 IF I<5 OR I>6 THEN PRINT M$
29 IF I=5 THEN PRINT"HIT IT":T=T-U*2
30 IF I=6 THEN PRINT S$;" IT":T=T-U*4
31 IF T<1 THEN PRINT"KILLED IT":P=P+99:GOTO 41
32 PRINT">THEY ";:U=8
33 U=U+(L(12)>99)*3+(L(13)>99)*2+(L(14)>99)
34 GOSUB 47:IF I<5 OR I>6 THEN PRINT M$
35 IF I=5 THEN PRINT"HIT YOU":P=P-U*2
36 IF I=6 THEN PRINT S$;" YOU":P=P-U*4
37 IF P<1 THEN PRINT"ENDED YOU":GOTO 44
38 PRINT"@ HIT A KEY @":GOSUB 45:GOTO 27
39 FOR X=7 TO 14:IF L(X)>100 THEN PRINT" ";O$(X)
40 NEXT:GOTO 10
41 L(N)=99:IF N=10 THEN 43
42 GOTO 10
43 PRINT"YOU WON!"
44 PRINT:PRINT"@ GAME OVER @":GOTO 49
45 A$=INKEY$:IF A$="" THEN 45
46 IF V$="" THEN V$=N$
47 RANDOMIZE TIMER:I=INT(RND*8)+1:RETURN
48 FOR X=1 TO 10:PRINT VB$(X);" ";:NEXT:PRINT:GOTO 10
49 ?:?"@@@ PLAY AGAIN? (Y/N) @@@"
50 A$=INKEY$:IF A$="" THEN GOTO 50
51 IF A$="y" OR A$="Y" THEN RUN
52 IF A$="n" OR A$="N" THEN END
53 GOTO 50

Pinacolada

Ah, a Paul Panks production (didn't he write something with that name?). Y'know, I offered him some advice and spent a few days back in November of last year starting to tidy up his code, but he hasn't given me any feedback on what he thinks of it... :/
C128 Programmer's Reference Guide FAIL:

1. Press 40/80 key DOWN.
2. Turn computer OFF, then ON.
3. Remove cartridge if present.

Blacklord

He can be a bit of an 'odds-bod' at times.

Pinacolada

Agreed. Maybe I'll just quietly walk away. My project's better than his. ;)

'course, he has finished a lot of games, while I have yet to...
C128 Programmer's Reference Guide FAIL:

1. Press 40/80 key DOWN.
2. Turn computer OFF, then ON.
3. Remove cartridge if present.