http://panks.freeshell.org/text.bas
Actually 2,814 bytes, small enough to fit into an unexpanded Vic-20.
For the Vic/64:
A few changes need to be made (it was written under QBasic), including
removing the RANDOMIZE TIMER statement in line 52. CLS should also be
changed to PRINT CHR$(147).
For other computers:
CLEAR or CLS for clearing the screen, and perhaps some changes to the RND
functions. But with a few modifications it should work under most BASICs.
See below:
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(25),O$(25),M(25,15),D$(25),DE$(25),VB$(25):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:?"B-VENTURE":?:?"'CAN YOU SLAY THE
VAMPIRE?'":?
7 ?"YOU ARE ";D$(R):?"< ";:FOR X=1 TO 6:IF M(R,X)>0 then?O$(X);" ";
8 NEXT:?">":FOR X=7 TO 14:IF L(X)=R then?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,X):GOSUB 51:FOR X=1 TO 10:IF VB$(X)=V$ THEN V=X
12 NEXT:FOR X=1 TO 14:IF O$(X)=N$ THEN N=X
13 NEXT:ON V GOTO 15,18,20,22,24,7,26,43,48,53
14 GOTO 23
15 IF M(R,N)=0 THEN 23
16 IF R=16 AND N=4 AND L(8)=R then?"IT GROWLS,'LEAVE, NOW!'":GOTO 10
17 R=M(R,N):GOTO 7
18 IF N<11 OR L(N)<>R THEN 23
19 L(N)=101:GOTO 22
20 IF N<11 OR L(N)<100 THEN 23
21 L(N)=R
22 ?"OK.":GOTO 10
23 ?"HOW?":GOTO 10
24 IF L(N)<>R AND L(N)<100 THEN 23
25 ?O$(N);":";DE$(N):GOTO 10
26 IF L(N)<>R OR N<7 OR N>10 THEN 23
27 GOSUB 52:T=INT(RND*250)+1
28 GOSUB 52:?">YOU ";:U=2:IF L(11)>99 THEN U=8
29 IF I<5 OR I>6 then?M$
30 IF I=5 then?"HIT IT":T=T-U*2
31 IF I=6 then?S$;" IT":T=T-U*4
32 IF T<1 then?"KILLED IT":P=P+99:GOTO 45
33 ?">THEY ";:U=8
34 IF L(12)>99 THEN U=U-3
35 IF L(13)>99 THEN U=U-2
36 IF L(14)>99 THEN U=U-1
37 GOSUB 52:IF I<5 OR I>6 then?M$
38 IF I=5 then?"HIT YOU":P=P-U*2
39 IF I=6 then?S$;" YOU":P=P-U*4
40 IF P<1 then?"ENDED YOU":GOTO 48
41 ?"@ HIT A KEY @":GOSUB 49:GOTO 28
43 FOR X=7 TO 14:IF L(X)>100 then?" ";O$(X)
44 NEXT:GOTO 10
45 L(N)=99:IF N=10 THEN 47
46 GOTO 10
47 ?"YOU WON!"
48 ?:?"@ GAME OVER @":END
49 A$=INKEY$:IF A$="" THEN 49
51 IF V$="" THEN V$=N$
52 RANDOMIZE TIMER:I=INT(RND*8)+1:RETURN
53 FOR X=1 TO 10:?VB$(X);" ";:NEXT:?:GOTO 10
Sincerely,
Paul Allen Panks
dunric@gmail.com
--
panks@sdf.lonestar.org
SDF Public Access UNIX System - http://sdf.lonestar.org
|
|
0
|
|
|
|
Reply
|
panks (149)
|
7/2/2004 4:22:05 AM |
|
This next version should work, as listed, on all Commodore 8-bit models:
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(25),O$(25),M(25,15),D$(25),DE$(25),VB$(25):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:P=125:R=1:?"B-VENTURE":?:?"'CAN YOU SLAY THE
VAMPIRE?'":?
7 ?"YOU ARE ";D$(R):?"< ";:FOR X=1 TO 6:IF M(R,X)>0 then?O$(X);" ";
8 NEXT:?">":FOR X=7 TO 14:IF L(X)=R then?O$(X);"."
9 NEXT
10 V=0:N=0:Z=0:A$="":XL$="":N$="":V$="":?">";:OPEN 2,0:INPUT#2,A$:CLOSE
2: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,X):GOSUB 51:FOR X=1 TO 10:IF VB$(X)=V$ THEN V=X
12 NEXT:FOR X=1 TO 14:IF O$(X)=N$ THEN N=X
13 NEXT:ON V GOTO 15,18,20,22,24,7,26,43,48,53
14 GOTO 23
15 IF M(R,N)=0 THEN 23
16 IF R=16 AND N=4 AND L(8)=R then?"IT GROWLS,'LEAVE, NOW!'":GOTO 10
17 R=M(R,N):GOTO 7
18 IF N<11 OR L(N)<>R THEN 23
19 L(N)=101:GOTO 22
20 IF N<11 OR L(N)<100 THEN 23
21 L(N)=R
22 ?"OK.":GOTO 10
23 ?"HOW?":GOTO 10
24 IF L(N)<>R AND L(N)<100 THEN 23
25 ?O$(N);":";DE$(N):GOTO 10
26 IF L(N)<>R OR N<7 OR N>10 THEN 23
27 GOSUB 52:T=INT(RND*250)+1
28 GOSUB 52:?">YOU ";:U=2:IF L(11)>99 THEN U=8
29 IF I<5 OR I>6 then?M$
30 IF I=5 then?"HIT IT":T=T-U*2
31 IF I=6 then?S$;" IT":T=T-U*4
32 IF T<1 then?"KILLED IT":P=P+99:GOTO 45
33 ?">THEY ";:U=8
34 IF L(12)>99 THEN U=U-3
35 IF L(13)>99 THEN U=U-2
36 IF L(14)>99 THEN U=U-1
37 GOSUB 52:IF I<5 OR I>6 then?M$
38 IF I=5 then?"HIT YOU":P=P-U*2
39 IF I=6 then?S$;" YOU":P=P-U*4
40 IF P<1 then?"ENDED YOU":GOTO 48
41 ?"@ HIT A KEY @":GOSUB 49:GOTO 28
43 FOR X=7 TO 14:IF L(X)>100 then?" ";O$(X)
44 NEXT:GOTO 10
45 L(N)=99:IF N=10 THEN 47
46 GOTO 10
47 ?"YOU WON!"
48 ?:?"@ GAME OVER @":END
49 A$=INKEY$:IF A$="" THEN 49
51 IF V$="" THEN V$=N$
52 I=INT(RND(1)*8)+1:RETURN
53 FOR X=1 TO 10:?VB$(X);" ";:NEXT:?:GOTO 10
Sincerely,
Paul Allen Panks
dunric@gmail.com
|
|
0
|
|
|
|
Reply
|
Paul
|
7/2/2004 5:08:47 AM
|
|
I put up the <3k adventure game here:
http://panks.freeshell.org/pauladv.html
(scroll down to the very bottom, it should be the last download on the
page)
Sincerely,
Paul Allen Panks
dunric@gmail.com
|
|
0
|
|
|
|
Reply
|
Paul
|
7/2/2004 6:57:27 AM
|
|
On 02-Jul-04 at 5:08am -0000, <panks@sdf.lonestar.org> wrote:
> This next version should work, as listed, on all Commodore 8-bit models
-----[ Begin ]-----
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(25),O$(25),M(25,15),D$(25),DE$(25),VB$(25):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"
-----[ End ]-----
These should work "on all Commodore 8-bit models"??? I sincerely hope you're
joking!
These lines are MUCH too long for a C64, dude -- or even for a C128!!! Trim
your maximum program line length to no more than 155 characters or so!!!
-- _____ %%%%%%%%% "Glenn P.," <C128UserDELETE-THIS@FVI.Net> %%%%%%%%%%
{~._.~} -----------------------------------------------------------------
_( Y )_ ...For what you see and hear depends a good deal on where you are
(:_~*~_:) standing: it also depends on what sort of person you are...
(_)-(_) --Lewis, C.S.: "The Magician's Nephew",
========= Book I in "The Chronicles Of Narnia".
:: Take Note Of The Spam Block On My E-Mail Address! ::
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----
|
|
0
|
|
|
|
Reply
|
Glenn
|
7/2/2004 8:46:12 AM
|
|
Glenn,
I was able to make it fit by writing the program in C128 mode, where I was
able to achieve a maximum of 188 characters per line through
abbreviations.
The program is available below:
http://panks.freeshell.org/pauladv.html
(scroll down to the very bottom, where "B-venture" is listed)
The program appears to work under all Commodore models, although you'll
probably nmeed 3K of RAM expansion when running it under the Vic-20.
Sincerely,
Paul Allen Panks
dunric@gmail.com
Glenn P., <C128UserDELETE-THIS@fvi.net> wrote:
> On 02-Jul-04 at 5:08am -0000, <panks@sdf.lonestar.org> wrote:
> > This next version should work, as listed, on all Commodore 8-bit models
> -----[ Begin ]-----
> 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(25),O$(25),M(25,15),D$(25),DE$(25),VB$(25):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"
> -----[ End ]-----
> These should work "on all Commodore 8-bit models"??? I sincerely hope you're
> joking!
> These lines are MUCH too long for a C64, dude -- or even for a C128!!! Trim
> your maximum program line length to no more than 155 characters or so!!!
> -- _____ %%%%%%%%% "Glenn P.," <C128UserDELETE-THIS@FVI.Net> %%%%%%%%%%
> {~._.~} -----------------------------------------------------------------
> _( Y )_ ...For what you see and hear depends a good deal on where you are
> (:_~*~_:) standing: it also depends on what sort of person you are...
> (_)-(_) --Lewis, C.S.: "The Magician's Nephew",
> ========= Book I in "The Chronicles Of Narnia".
> :: Take Note Of The Spam Block On My E-Mail Address! ::
> -----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
> http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
> -----== Over 100,000 Newsgroups - 19 Different Servers! =-----
--
panks@sdf.lonestar.org
SDF Public Access UNIX System - http://sdf.lonestar.org
|
|
0
|
|
|
|
Reply
|
Paul
|
7/2/2004 9:46:19 AM
|
|
|
4 Replies
45 Views
(page loaded in 0.082 seconds)
|