[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The 1st Annual 1-2K Text Adventure Competition



Yes, although the total source file cannot exceed 2,816 bytes. THe binayr 
file, zipped or UPXed, cannot exceed 2,999 bytes. External data files are 
ok.

As a test, I tried to write a Bally BASIC adventure game today:

1 CLEAR;GOSUB200;A=1;PRINT"BALLYVENTURE
2 @(1)=0;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=0;P=150
3 PRINT;PRINT"YOU ARE:";IF A=1 @(2)=2;PRINT"IN A TAVERN
4 IF A=2 @(1)=1;@(2)=6;@(3)=3;PRINT"BY A WELL
5 IF A=3 @(1)=4;@(4)=2;PRINT"IN A CHURCH
6 IF A=4 @(2)=3;@(3)=5;PRINT"AT THE ALTAR
7 IF A=5 @(4)=4;PRINT"IN STORAGE
8 IF A=6 @(1)=2;@(2)=12;@(3)=7;@(4)=10;PRINT"NEAR A VILLAGE
9 IF A=7 @(5)=8;@(3)=11;@(4)=6;PRINT"BY A TREE
10 IF A=8 @(3)=9;@(6)=7;PRINT"UP THE TREE
11 IF A=9 @(4)=8;PRINT"IN A HUT
12 IF A=10 @(3)=6;PRINT"AT A MOUNTAIN
13 IF A=11 @(2)=13;@(4)=7;PRINT"IN A MEADOW
14 IF A=12 @(1)=6;@(2)=15;PRINT"IN A FOREST
15 IF A=13 @(1)=11;@(3)=14;PRINT"AT A CLEARING
16 IF A=14 @(4)=13;PRINT"BY A LAKE
17 IF A=15 @(1)=12;@(2)=16;PRINT"ON A BRIDGE
18 IF A=16 @(1)=15;@(4)=17;PRINT"BY A CASTLE
19 IF A=17 @(1)=18;@(3)=16;@(4)=19;PRINT"IN A HALLWAY
20 IF A=18 @(2)=17;PRINT"IN A BEDROOM
21 IF A=19 @(3)=17;PRINT"BY THE THRONE
22 PRINT;PRINT"YOU SEE:";PRINT;C=0;Z=A;GOSUB100
24 PRINT"@ COMMAND
25 PRINT"1 GO 2 GET 3 DROP 4 USE 5 ATTACK 6 INVENTORY
26 PRINT"7 LOOK 8 EXAMINE 9 QUIT
30 PRINT;PRINT"SELECT
35 C=0;Y=0;INPUT C;Y=C;IF C>9 GOTO30
36 IF C=9 GOTO209
37 IF C=1 GOTO45
38 IF C=2 GOTO55
39 IF C=3 GOTO55
40 IF C=4 GOTO55
41 IF C=5 GOTO77
42 IF C=6 GOTO100
43 IF C=7 GOTO2
44 GOTO100 
45 PRINT"@ WHERE?
46 PRINT"1 NORTH 2 SOUTH 3 EAST 4 WEST 5 UP 6 DOWN
52 C=0;INPUT C;IF C=0 GOTO210
53 IF @(C)=0 GOTO210
54 A=@(C);GOTO2
55 PRINT"@ WHAT?
56 Z=0;PRINT"0 NOTHING"
57 IF S=A PRINT"1 SWORD";Z=1
58 IF M=A PRINT"2 ARMOR";Z=2
59 IF H=A PRINT"3 HELMET";Z=3
60 IF K=A PRINT"4 CLOAK";Z=4
61 C=0;PRINT"SELECT";INPUT C
62 IF C>0 GOTO64
63 IF C=0 GOTO2
64 IF Z=0 GOTO210
65 Q=101;IF Y=3 Q=A
66 IF Y=4 GOTO72
67 IF Z=1 S=Q
68 IF Z=2 M=Q
69 IF Z=3 H=Q
70 IF Z=4 K=Q
71 GOTO210
72 IF Z=1 S=105
73 IF Z=2 M=205
74 IF Z=3 H=205
75 IF Z=4 K=205
76 GOTO210
77 Z=0;IF E=A Z=1
78 IF W=A Z=2
79 IF D=A Z=3
80 IF V=A Z=4
81 IF Z=0 PRINT"NOT HERE";GOTO2
82 T=RND(250);I=RND(10)
83 PRINT;PRINT"@ YOU";U=2;IF S>A U=8
84 IF I<5 PRINT"MISSED"
85 IF I=5 PRINT"HIT IT";T=T-Ux2
86 IF I=6 PRINT"SLICED IT";T=T-Ux4
87 IF I>6 PRINT"WERE DODGED
88 IF T<1 PRINT"KILLED IT";GOTO202
89 PRINT"@ THEY";U=8
90 IF M=205 U=U-3
91 IF H=205 U=U-2
92 IF K=205 U=U-1
93 I=RND(10);IF I<5 PRINT"MISSED"
94 IF I=5 PRINT"STRUCK YOU";P=P-Ux2
95 IF I=6 PRINT"SLICED YOU";P=P-Ux4
96 IF I>6 PRINT"WERE DODGED
97 IF P<1 PRINT"DEFEATED YOU";GOTO208
98 PRINT;PRINT"@ HIT A KEY @";INPUT C;GOTO 83
100 IF C=6 A=101;B=105;O=205
101 IF C=0 A=Z 
102 IF E=A PRINT"HOBBIT, ODD CREATURE
103 IF W=A PRINT"WEREWOLF, HAS FIERY EYES
104 IF D=A PRINT"DRAGON, HAS TOUGH SCALES
105 IF V=A PRINT"VAMPIRE, A BLOODY FIEND
106 IF S=>A PRINT"SWORD
107 IF M=>A PRINT"PLATEMAIL
108 IF H=>A PRINT"BRASS HELMET
109 IF K=>A PRINT"ELVEN CLOAK
110 IF S=101 S=B
111 IF M=101 M=O
112 IF H=101 H=O
113 IF K=101 K=O
114 RETURN
200 E=9;W=16;D=14;V=19;S=5;M=18;H=1;K=9;RETURN
202 IF E=A E=99
203 IF W=A W=99
204 IF D=A D=99
205 IF V=A V=99;GOTO207
206 GOTO2
207 PRINT"VAMPIRE DIED!
208 PRINT;PRINT"GAME OVER";STOP
210 IF C=0 PRINT"SORRY"
211 IF Z=A PRINT"HOW?"
212 IF Z=0 PRINT"SORRY"
213 PRINT"OK";GOTO 2

It almost fits into Bally BASIC, but not quite. Obviously, modifications 
need to be made for it to work under Bally BASIC's 1,800 bytes of program 
space.

This shows how much optimization is really necessary. I'd imagine the 
above program needs at least 50% optimization to fit under Bally BASIC 
(current 3200 bytes vs. goal of 1600 bytes).

Sincerely,

Paul Allen Panks
dunric@gmail.com