Archived from groups: rec.games.video.classic,alt.lang.basic (
More info?)
I don't know if Bally BASIC can do text manipulation, but I shortened the
code quit a bit with the following:
54 IF R=1 THEN o0$="020000"
55 IF R=2 THEN o0$="153400"
56 IF R=3 THEN o0$="000260"
57 IF R=4 THEN o0$="002000"
58 IF R=5 THEN o0$="200000"
59 IF R=6 THEN o0$="000003"
60 IF mid$(o0$,x,1)"0" THEN GOSUB 112:GOTO 30
61 R=val(mid$(o0$,x,1)):T=R:GOTO 10
<dunric@yahoo.com> wrote in message
news:1120460043.796435.86950@g14g2000cwa.googlegroups.com...
> Here's a working Bally BASIC version of Castle Bally, courtesy of edits
> made by Lance Squire.
>
> Remaning ram (PRINT SZ) 110 with my edits...(see added edits below)
>
> Lance F. Squire wrote:
> > Here are some memory saving edits...
> > Still typing in to see if it fits...
> >
> > Lance
> >
> > Paul wrote:
> >
> >>Here's a slightly updated and bugfixed version of CASTLE BALLY:
> >>
> >>1 CLEAR;X=0;PRINT "CASTLE BALLY
> >>5 PRINT "BY PAUL PANKS";PRINT
> >>6 R=1;T=R;I=0;O=1;S=6;H=4;W=2;M=5;D=1;P=100
> >
> > 10 GOSUB (R-1)*2+100
> >
> >
> >>20 PRINT "<YOU SEE>
> >>21 IF O=R PRINT "COIL OF ROPE
> >>22 IF S=R PRINT "SWORD OF FIRE
> >>23 IF H=R PRINT "SHIELD OF ANG
> >>24 IF W=R PRINT "FIERY WEREWOLF
> >>25 IF M=R PRINT "MORDIMAR
> >>30 R=T;PRINT "OK
> >>31 Y=RND (6)+1;GOSUB 314
> >>32 PRINT "1.GO 2.GET 3.DROP 4.USE
> >>33 PRINT "5.INVENTORY 6.LOOK 7.QUIT
> >>34 INPUT "WHAT NOW> " X
> >>40 IF X=1 GOTO 50
> >>41 IF X=2 GOTO 62
> >>42 IF X=3 GOTO 70
> >>43 IF X=4 GOTO 80
> >>44 IF X=5 T=R;R=99;GOTO 21
> >>45 IF X=6 GOTO 10
> >>46 IF X=7 GOTO 99
> >>48 GOSUB 112;GOTO 30
> >>50 PRINT "<WHICH WAY>
> >>51 PRINT "1> N 2> S 3> E 4> W
> >>52 PRINT "5> U 6> D
> >>53 INPUT "CHOOSE 1 TO 6>" X
> >
> > 54 GOSUB R+200
> >
> >
> >>60 IF @(X)=0 GOSUB 112;GOTO 30
> >>61 R=@(X);T=R;GOTO 10
> >>62 IF O=R O=99;GOTO 30
> >>63 IF S=R S=99;GOTO 30
> >>64 IF H=R H=99;GOTO 30
> >>65 GOTO 48
> >>70 IF O=99 O=R;GOTO 30
> >>71 IF S=99 S=R;GOTO 30
> >>72 IF H=99 H=R;GOTO 30
> >>73 GOTO 48
> >>80 PRINT "<WHAT>
> >>81 IF O=99 PRINT "1. ROPE
> >>82 IF S=99 PRINT "2. SWORD
> >>83 IF H=99 PRINT "3. SHIELD
> >>84 INPUT "CHOOSE 1 TO 3> " X
>
> 85 GOSUB X+400;GOTO 30
>
> >>88 GOTO 48
> >>99 END
> >>100 PRINT "YOU ARE BY THE VILLAGE
> >>101 PRINT "NEAR A WELL. <SOUTH>";RETURN
> >>102 PRINT "YOU ARE STANDING IN A
> >>103 PRINT "FOREST OF TREES. <N S E W>";RETURN
> >>104 PRINT "YOU ARE FACING A LARGE
> >>105 PRINT "OAK TREE. <WEST,UP>";RETURN
> >>106 PRINT "YOU ARE IN A VAST VALLEY
> >>107 PRINT "NEAR A POND. <EAST>";RETURN
> >>108 PRINT "YOU ARE WITHIN A CASTLE
> >>109 PRINT "BY A THRONE. <NORTH>";RETURN
> >>110 PRINT "YOU ARE UPON A BRANCH
> >>111 PRINT "ABOVE THE TREES. <DOWN>";RETURN
> >>112 PRINT "YOU CAN'T SEE A WAY.";RETURN
> >>201 @(1)=0;@(2)=2;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
> >>202 @(1)=1;@(2)=5;@(3)=3;@(4)=4;@(5)=0;@(6)=0;RETURN
> >>203 @(1)=0;@(2)=0;@(3)=0;@(4)=2;@(5)=6;@(6)=0;RETURN
> >>204 @(1)=0;@(2)=0;@(3)=2;@(4)=0;@(5)=0;@(6)=0;RETURN
> >>205 @(1)=2;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
> >>206 @(1)=0;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=3;RETURN
> >>301 IF O=99 GOTO 303
> >>302 RETURN
> >>303 IF R=3 R=6
> >>304 RETURN
> >>305 IF S=99 GOTO 307
> >>306 RETURN
> >>307 IF W=R W=98;PRINT "SLASH. IT DIES.
> >>308 IF M=R M=98;PRINT "YOU KILLED MORDIMAR
> >>309 IF M=98 PRINT "YOU'VE WON!
> >>310 IF M=98 GOTO 99
> >>311 RETURN
> >>312 IF H=99 GOTO 314
> >>313 RETURN
> >>314 IF M=R GOTO 316
> >>315 RETURN
> >>316 IF Y<4 PRINT "MORDIMAR ATTACKS YOU!";GOTO 320
> >>317 IF H=99 PRINT "THE SHIELD BLOCKS MORDIMAR
> >>318 IF H=99 PRINT "FROM ATTACKING YOU...
> >>319 RETURN
> >>320 IF Y=2 PRINT "HE STRUCK A MORTAL BLOW!";GOTO 99
> >>321 PRINT "HE MISSED YOU...
> >>322 RETURN
> 401 GOTO 301
> 402 GOTO 305
> 403 GOTO 312
>
> Paul
>