Updated Platformer sample by Beckett Bylsma

This commit is contained in:
Joshua Bell 2023-03-08 08:45:01 -08:00
parent 5ebbde151f
commit 887b3be2a6
2 changed files with 491 additions and 165 deletions

View File

@ -86,7 +86,7 @@ By <a target=_blank href="mailto:inexorabletash@gmail.com">Joshua Bell</a>
<option value="sample.spaceattack">&nbsp; Space Attack! (Alan Ratliff)</option> <option value="sample.spaceattack">&nbsp; Space Attack! (Alan Ratliff)</option>
<option value="sample.building">&nbsp; Building (Melvin Rosario)</option> <option value="sample.building">&nbsp; Building (Melvin Rosario)</option>
<option value="sample.artillery">&nbsp; Artillery (Michael "Moose" O'Malley)</option> <option value="sample.artillery">&nbsp; Artillery (Michael "Moose" O'Malley)</option>
<option value="sample.platformer">&nbsp; Platformer - work in progress (Beckett Bylsma)</option> <option value="sample.platformer">&nbsp; Platformer (Beckett Bylsma)</option>
<option disabled>____________________________________________</option> <option disabled>____________________________________________</option>
<option disabled>Graphics</option> <option disabled>Graphics</option>

View File

@ -1,166 +1,492 @@
10 home 1 text:home:gosub 500
11 let k=0 2 lvl=1 :home
12 let lives=5 3 let k=0
13 let key$="NO" 4 let lives=5
14 let kx=29 :let ky=27 5 let key$="NO"
15 let s=0 6 let kx=29 :let ky=27
16 let e=0 7 let s=0
17 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ 8 let e=0
18 let levelt=1 9 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$
19 let j=1 10 let levelt=1
20 gr 11 let j=1
21 color=6 12 gr
22 for q=1 to 39 13 color=6
23 hlin 0,39 at k :let k=k+1 14 for q=1 to 39
24 next q 15 hlin 0,39 at k :let k=k+1
25 color=10 16 next q
26 vlin 0,38 at 39 17 color=10
27 color=13 :for sun=1 to 7 18 vlin 0,38 at 39
28 hlin 1,4 at j :let j=j+1 19 color=13 :for sun=1 to 7
29 next sun 20 hlin 18,21 at j :let j=j+1
30 color=13 21 next sun
40 let cx=25 :let cy=19 22 color=13
50 rem becketts new gravity improved (no bugs so far) 23 let cx=25 :let cy=19
60 plot cx,cy 24 rem becketts new gravity improved (no bugs so far)
61 color=1 :plot kx,ky 25 plot cx,cy
70 let X=12: let Y=23 26 color=9 :plot kx,ky
80 let score=0 27 let X=12: let Y=23
90 print "SCORE:";score 28 let score=0
91 print "LIVES:";lives 29 print "SCORE:";score
92 print "KEY OBTAINED?";key$ 30 print "LIVES:";lives
100 rem level plotter 31 print "KEY OBTAINED?";key$
110 color=12 32 rem level plotter
120 dim z0(39,39) 33 color=12
130 read x1,y1 34 dim z0(39,39)
140 if x1=0 and y1=0 goto 300 35 read x1,y1
150 z0(x1,y1)=1 36 if x1=0 and y1=0 goto 44
160 plot x1,y1 37 z0(x1,y1)=1
161 color=5 38 plot x1,y1
162 plot x1,(y1+1) :color=12 39 color=5
170 goto 130 40 plot x1,(y1+1) :color=12
200 rem character printer 41 goto 35
210 color=2 42 rem character printer
300 color=2 43 color=2
310 plot x,y 44 color=2
350 rem get key command 45 plot x,y
450 let c$="":get c$ 46 rem get key command
451 if x<0 then let x=0 47 if X=25 and Y=19 and s=0 then htab(18):vtab(12):let score=score+1 :home :htab 1:vtab 23 :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$:let s=1 : gosub 95 :goto 50
452 if x>39 and levelt=1 then let x=39 48 if X=29 and Y=27 and e=0 then home :htab 1:vtab 23 :let key$="YES" :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$ :let e=1: gosub 113 :goto 50
400 if X=25 and Y=19 and s=0 then htab(18):vtab(12):let score=score+1 :home :htab 1:vtab 23 :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$:let s=1 : gosub 100000 :goto 450 49 if lives<1 then text: home: htab (17):vtab(12):flash:print "YOU LOSE!":normal:end
401 if X=29 and Y=27 and e=0 then home :htab 1:vtab 23 :let key$="YES" :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$ :let e=1: gosub 200000 :goto 450 50 color=2 :plot x,y :let c$="":get c$
402 if lives<1 then print "YOU LOSE!" :end 51 if x<0 then let x=0
500 if c$="W" goto 900 52 if x>39 and levelt=1 then let x=39
600 if c$="A" then color=6 :plot x,y : let X=X-1 :color=2 :plot x,y :if z0(X,Y+1)=0 then goto 1200:if z0(X,Y+1)=1 then goto 300 53 if c$="W" goto 57
700 if c$="D" then color=6 :plot x,y :let X=X+1 :color=2 : plot x,y :if z0(X,Y+1)=0 then goto 1200:if z0(X,Y+1)=1 then goto 300 54 if c$="A" then color=6 :plot x,y : let X=X-1 :color=2 :plot x,y :if z0(X,Y+1)=0 then goto 65:if z0(X,Y+1)=1 then goto 44
800 goto 400 55 if c$="D" then color=6 :plot x,y :let X=X+1 :color=2 : plot x,y :if z0(X,Y+1)=0 then goto 65:if z0(X,Y+1)=1 then goto 44
900 for i=1 to 6: plot x,y 56 goto 47
910 gosub 3000 57 for i=1 to 6: plot x,y
920 color=6 :plot x,y :let Y=Y-1 58 gosub 77
1010 for r=1 to 125 59 color=6 :plot x,y :let Y=Y-1
1020 color=2 :plot x,y 60 for r=1 to 125
1080 next r 61 color=2 :plot x,y
1100 gosub 10000 62 next r
1190 next i 63 gosub 79
1200 plot x,y 64 next i
1240 color=6 :plot x,y :let Y=Y+1 65 plot x,y
1310 for o=1 to 75 66 color=6 :plot x,y :let Y=Y+1
1320 color=2 :plot x,y 67 for o=1 to 75
1390 next o 68 color=2 :plot x,y
1400 gosub 10000 69 next o
1410 gosub 2000 70 gosub 79
1420 goto 1200 71 gosub 74
1440 goto 400 72 goto 65
10000 let k=PEEK(49152) 73 goto 47
10100 if k=196 and x<38 then color=6 :plot x,y :X=X+1 74 if z0(X,Y+1)=1 goto 47
10200 if k=193 and x>1 then color=6 :plot x,y :X=X-1 75 if y=38 then color=6: plot x,y :let X=12: let Y=23 :color=2 :plot x,y :let lives=lives-1 :print chr$(7):home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ :goto 47
10210 if z0(x,y)=1 and k=196 then let x=x-1 :plot x,y 76 return
10220 if z0(x,y)=1 and k=193 then let x=x+1 :plot x,y 77 if z0(X,Y-2)=1 goto 65
10222 if z0(x,y+1)=1 and k=196 then let x=x-1 :plot x,y 78 return
10223 if z0(x,y+1)=1 and k=193 then let x=x+1 :plot x,y 79 let k=PEEK(49152)
10224 if z0(x,y-1)=1 and k=196 then let x=x-1 :plot x,y 80 if k=196 and x<38 then color=6 :plot x,y :X=X+1
10225 if z0(x,y-1)=1 and k=193 then let x=x+1 :plot x,y 81 if k=193 and x>1 then color=6 :plot x,y :X=X-1
10280 let k=PEEK(49168) 82 if z0(x,y)=1 and k=196 then let x=x-1 :plot x,y
10290 color=2 :plot x,y 83 if z0(x,y)=1 and k=193 then let x=x+1 :plot x,y
10300 return 84 if z0(x,y+1)=1 and k=196 then let x=x-1 :plot x,y
85 if z0(x,y+1)=1 and k=193 then let x=x+1 :plot x,y
2000 if z0(X,Y+1)=1 goto 400 86 if z0(x,y-1)=1 and k=196 then let x=x-1 :plot x,y
2001 if y=38 then color=6: plot x,y :let X=12: let Y=23 :color=2 :plot x,y :let lives=lives-1 :print chr$(7):home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ :goto 400 87 if z0(x,y-1)=1 and k=193 then let x=x+1 :plot x,y
2010 return 88 let k=PEEK(49168)
89 color=2 :plot x,y
3000 if z0(X,Y-2)=1 goto 1200 90 return
3024 return 91 rem map data saver
92 data 1,24,2,24,3,24,4,24,5,24,6,24,7,24,8,24,9,24,10,24,11,24,12,24,13,24,14,24,15,24,16,24,17,24,18,24
93 data 20,28,21,28,22,28,23,28,24,28,25,28,26,28,27,28,28,28,29,28,30,28,31,28,32,28,33,28,34,28,35,28,36,28,37,28
94 data 20,20,21,20,22,20,23,20,24,20,25,20,26,20,27,20,0,0
99999 rem map data saver 95 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6
20000 data 1,24,2,24,3,24,4,24,5,24,6,24,7,24,8,24,9,24,10,24,11,24,12,24,13,24,14,24,15,24,16,24,17,24,18,24 96 let cy=cy-1
20005 data 20,28,21,28,22,28,23,28,24,28,25,28,26,28,27,28,28,28,29,28,30,28,31,28,32,28,33,28,34,28,35,28,36,28,37,28 97 color=13 :plot cx,cy
20010 data 20,20,21,20,22,20,23,20,24,20,25,20,26,20,27,20,0,0 98 for t=1 to 65
100000 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6 99 plot cx,cy
100001 let cy=cy-1 100 next t
100002 color=13 :plot cx,cy 101 color=6 :plot cx,cy
100003 for t=1 to 65 102 next w
100004 plot cx,cy 103 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4
100005 next t 104 let cy=cy+1
100006 color=6 :plot cx,cy 105 color=13 :plot cx,cy
100007 next w 106 for t=1 to 65
100008 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4 107 plot cx,cy
100009 let cy=cy+1 108 next t
100010 color=13 :plot cx,cy 109 color=6 :plot cx,cy
100011 for t=1 to 65 110 next w
100012 plot cx,cy 111 color=2 :plot x,y
100013 next t 112 return
100014 color=6 :plot cx,cy 113 for w=1 to 6
100015 next w 114 let ky=ky-1
100016 color=2 :plot x,y 115 color=9 :plot kx,ky
100017 return 116 for t=1 to 65
200000 for w=1 to 6 117 plot kx,ky
200001 let ky=ky-1 118 next t
200002 color=1 :plot kx,ky 119 color=6 :plot kx,ky
200003 for t=1 to 65 120 next w
200004 plot kx,ky 121 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4
200005 next t 122 let ky=ky+1
200006 color=6 :plot kx,ky 123 color=9 :plot kx,ky
200007 next w 124 for t=1 to 65
200008 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4 125 plot kx,ky
200009 let ky=ky+1 126 next t
200010 color=1 :plot kx,ky 127 color=6 :plot kx,ky
200011 for t=1 to 65 128 next w
200012 plot kx,ky 129 color=2 :plot x,y :print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$
200013 next t 130 color=6 :vlin 19,20 at 39 :for e=1 to 300
200014 color=6 :plot kx,ky 131 vlin 18, 21 at 39 :next e :for e=1 to 300
200015 next w 132 vlin 17,22 at 39 :next e :for e=1 to 300
200016 color=2 :plot x,y :print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ 133 vlin 16,23 at 39:next e :for e=1 to 300
200017 color=6 :vlin 19,20 at 39 :for e=1 to 300 134 vlin 15,24 at 39:next e :for e=1 to 300
200018 vlin 18, 21 at 39 :next e :for e=1 to 300 135 vlin 14,25 at 39 :next e :for e=1 to 300
200019 vlin 17,22 at 39 :next e :for e=1 to 300 136 vlin 13,26 at 39 :next e
200020 vlin 16,23 at 39:next e :for e=1 to 300 137 color=2 :vlin 19,20 at 39 :for e=1 to 325
200021 vlin 15,24 at 39:next e :for e=1 to 300 138 color=3 :plot 39,18 :plot39,21 :next e :for e=1 to 325
200022 vlin 14,25 at 39 :next e :for e=1 to 300 139 color=2 :plot 39,17 :plot39,22 :next e :for e=1 to 325
200023 vlin 13,26 at 39 :next e 140 color=3 :plot 39,16 :plot39,23:next e :for e=1 to 325
200024 color=2 :vlin 19,20 at 39 :for e=1 to 325 141 color=2 :plot 39,15:plot39,24:next e :for e=1 to 325
200025 color=3 :plot 39,18 :plot39,21 :next e :for e=1 to 325 142 color=3 :plot 39,14 :plot39,25 :next e
200026 color=2 :plot 39,17 :plot39,22 :next e :for e=1 to 325 143 for a=1 to 500
200027 color=3 :plot 39,16 :plot39,23:next e :for e=1 to 325 144 color=2: plot x,y
200028 color=2 :plot 39,15:plot39,24:next e :for e=1 to 325 145 next a
200029 color=3 :plot 39,14 :plot39,25 :next e 146 for ab=1 to 7
200030 for a=1 to 500 147 color=6 :plot x,y :let y=y-1
200040 color=2: plot x,y 148 for sus=1 to 85
200050 next a 149 color=2 :plot x,y
200060 for ab=1 to 7 150 next sus
200070 color=6 :plot x,y :let y=y-1 151 next ab
200080 for sus=1 to 85 152 for wa=1 to 25
200090 color=2 :plot x,y 153 color=2 :plot x,y
200100 next sus 154 next wa
200110 next ab 155 for abc=1 to 10
200111 for wa=1 to 25 156 color=6 :plotx,y :let x=x+1
200112 color=2 :plot x,y 157 for sus=1 to 85
200113 next wa 158 color=2 :plot x,y
200120 for abc=1 to 10 159 next sus
200130 color=6 :plotx,y :let x=x+1 160 next abc
200140 for sus=1 to 85 161 let lvl=2
200150 color=2 :plot x,y 162 home
200160 next sus 163 let k=0
200170 next abc 164 let key$="NO"
165 if lvl=2 then goto 320
166 if lvl=1 then let kx=29 :let ky=27
167 let s=0
168 let e=0
169 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$
170 let levelt=1
171 let j=31
172 gr
173 color=1
174 for q=1 to 39
175 hlin 0,39 at k :let k=k+1
176 next q
177 color=10
178 vlin 0,38 at 39
179 color=13 :for sun=1 to 7
180 hlin 18,21 at j :let j=j+1
181 next sun
182 color=13
183 let cx=22 :let cy=26
184 rem becketts new gravity improved (no bugs so far)
185 plot cx,cy
186 color=9 :plot kx,ky
187 let X=3: let Y=19
188 print "SCORE:";score
189 print "LIVES:";lives
190 print "KEY OBTAINED?";key$
191 rem level plotter
192 color=12
193 dim z1(39,39)
194 read x2,y2
195 if x2=0 and y2=0 goto 203
196 z1(x2,y2)=1
197 plot x2,y2
198 color=5
199 plot x2,(y2+1) :color=12
200 goto 194
201 rem character printer
202 color=2
203 color=2
204 plot x,y
205 rem get key command
206 if X=22 and Y=26 and s=0 then htab(18):vtab(12):let score=score+1 :home :htab 1:vtab 23 :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$:let s=1 : gosub 259 :goto 209
207 if X=kx and Y=ky and e=0 then home :htab 1:vtab 23 :let key$="YES" :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$ :let e=1: gosub 277 :goto 209
208 if lives<1 then text: home: htab (17):vtab(12):flash:print "YOU LOSE!":normal:end
209 let c$="":get c$
210 if x<0 then let x=0
211 if x>39 and levelt=1 then let x=39
212 if c$="W" goto 216
213 if c$="A" then color=1 :plot x,y : let X=X-1 :color=2 :plot x,y :if z1(X,Y+1)=0 then goto 224:if z1(X,Y+1)=1 then goto 203
214 if c$="D" then color=1 :plot x,y :let X=X+1 :color=2 : plot x,y :if z1(X,Y+1)=0 then goto 224:if z1(X,Y+1)=1 then goto 203
215 goto 206
216 for i=1 to 6: plot x,y
217 gosub 236
218 color=1 :plot x,y :let Y=Y-1
219 for r=1 to 125
220 color=2 :plot x,y
221 next r
222 gosub 238
223 next i
224 plot x,y
225 color=1 :plot x,y :let Y=Y+1
226 for o=1 to 75
227 color=2 :plot x,y
228 next o
229 gosub 238
230 gosub 233
231 goto 224
232 goto 206
233 if z1(X,Y+1)=1 goto 206
234 if y=38 then color=1: plot x,y :let X=1: let Y=19 :color=2 :plot x,y :let lives=lives-1 :print chr$(7):home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ :goto 206
235 return
236 if z1(X,Y-2)=1 goto 224
237 return
238 let k=PEEK(49152)
239 if k=196 and x<38 then color=1 :plot x,y :X=X+1
240 if k=193 and x>1 then color=1 :plot x,y :X=X-1
241 if z1(x,y)=1 and k=196 then let x=x-1 :plot x,y
242 if z1(x,y)=1 and k=193 then let x=x+1 :plot x,y
243 if z1(x,y+1)=1 and k=196 then let x=x-1 :plot x,y
244 if z1(x,y+1)=1 and k=193 then let x=x+1 :plot x,y
245 if z1(x,y-1)=1 and k=196 then let x=x-1 :plot x,y
246 if z1(x,y-1)=1 and k=193 then let x=x+1 :plot x,y
247 let k=PEEK(49168)
248 color=2 :plot x,y
249 return
250 rem map data saver
251 rem old data 1,24,2,24,3,24,4,24,5,24,6,24,7,24,8,24,9,24,10,24,11,24,12,24,13,24,14,24,15,24,16,24,17,24,18,24
252 rem old data 20,28,21,28,22,28,23,28,24,28,25,28,26,28,27,28,28,28,29,28,30,28,31,28,32,28,33,28,34,28,35,28,36,28,37,28
253 rem old data 20,20,21,20,22,20,23,20,24,20,25,20,26,20,27,20,0,0
254 data 1,20,2,20,3,20,4,20,5,20,6,20
255 data 8,18,9,18,10,18,11,18,12,18
256 data 14,22,15,22,16,22,17,22,18,22,19,22,20,22,21,22
257 data 23,20,24,20,25,20,26,20,27,20,28,20,29,20,30,20,31,20,32,20,33,20,34,20,35,20,36,20,37,20
258 data 8,27,9,27,10,27,11,27,12,27,13,27,14,27,15,27,16,27,17,27,18,27,19,27,20,27,21,27,22,27,23,27,24,27,25,27,26,27,27,27,28,27,29,27,30,27,0,0
259 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6
260 let cy=cy-1
261 color=13 :plot cx,cy
262 for t=1 to 65
263 plot cx,cy
264 next t
265 color=1 :plot cx,cy
266 next w
267 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4
268 let cy=cy+1
269 color=13 :plot cx,cy
270 for t=1 to 65
271 plot cx,cy
272 next t
273 color=1 :plot cx,cy
274 next w
275 color=2 :plot x,y
276 return
277 for w=1 to 6
278 let ky=ky-1
279 color=9 :plot kx,ky
280 for t=1 to 65
281 plot kx,ky
282 next t
283 color=1 :plot kx,ky
284 next w
285 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4
286 let ky=ky+1
287 color=9 :plot kx,ky
288 for t=1 to 65
289 plot kx,ky
290 next t
291 color=1 :plot kx,ky
292 next w
293 color=2 :plot x,y :print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$
294 color=1 :vlin 19,20 at 39 :for e=1 to 300
295 vlin 18, 21 at 39 :next e :for e=1 to 300
296 vlin 17,22 at 39 :next e :for e=1 to 300
297 vlin 16,23 at 39:next e :for e=1 to 300
298 vlin 15,24 at 39:next e :for e=1 to 300
299 vlin 14,25 at 39 :next e :for e=1 to 300
300 vlin 13,26 at 39 :next e
301 color=2 :vlin 19,20 at 39 :for e=1 to 325
302 color=3 :plot 39,18 :plot39,21 :next e :for e=1 to 325
303 color=2 :plot 39,17 :plot39,22 :next e :for e=1 to 325
304 color=3 :plot 39,16 :plot39,23:next e :for e=1 to 325
305 color=2 :plot 39,15:plot39,24:next e :for e=1 to 325
306 color=3 :plot 39,14 :plot39,25 :next e
307 for a=1 to 500
308 color=2: plot x,y
309 next a
310 for wa=1 to 25
311 color=2 :plot x,y
312 next wa
313 for abc=1 to 3
314 color=1 :plotx,y :let x=x+1
315 for sus=1 to 85
316 color=2 :plot x,y
317 next sus
318 next abc
319 goto 321
320 kx=36 :let ky=19: goto 167
321 home
322 let k=0
323 let key$="NO"
324 if lvl=2 then goto 483
325 if lvl=1 then let kx=29 :let ky=27
326 let s=0
327 let e=0
328 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$
329 let levelt=1
330 let j=1
331 gr
332 color=0
333 for q=1 to 39
334 hlin 0,39 at k :let k=k+1
335 next q
336 color=10
337 vlin 0,38 at 39
338 color=7 :for sun=1 to 7
339 hlin 18,21 at j :let j=j+1
340 next sun
341 color=13
342 let cx=28 :let cy=26
343 rem becketts new gravity improved (no bugs so far)
344 plot cx,cy
345 color=9 :plot kx,ky
346 let X=1: let Y=19
347 print "SCORE:";score
348 print "LIVES:";lives
349 print "KEY OBTAINED?";key$
350 rem level plotter
351 color=12
352 dim z2(39,39)
353 read x3,y3
354 if x3=0 and y3=0 goto 362
355 z2(x3,y3)=1
356 plot x3,y3
357 color=5
358 plot x3,(y3+1) :color=12
359 goto 353
360 rem character printer
361 color=2
362 color=2
363 plot x,y
364 rem get key command
365 if X=cx and Y=cy and s=0 then htab(18):vtab(12):let score=score+1 :home :htab 1:vtab 23 :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$:let s=1 : gosub 422 :goto 368
366 if X=kx and Y=ky and e=0 then home :htab 1:vtab 23 :let key$="YES" :print "SCORE:";score :print "LIVES:" ;lives :print "KEY OBTAINED?";key$ :let e=1: gosub 440 :goto 368
367 if lives<1 then text: home: htab (17):vtab(12):flash:print "YOU LOSE!":normal:end
368 let c$="":get c$
369 if x<0 then let x=0
370 if x>39 and levelt=1 then let x=39
371 if c$="W" goto 375
372 if c$="A" then color=0 :plot x,y : let X=X-1 :color=2 :plot x,y :if z2(X,Y+1)=0 then goto 383:if z2(X,Y+1)=1 then goto 362
373 if c$="D" then color=0 :plot x,y :let X=X+1 :color=2 : plot x,y :if z2(X,Y+1)=0 then goto 383:if z2(X,Y+1)=1 then goto 362
374 goto 365
375 for i=1 to 6: plot x,y
376 gosub 395
377 color=0 :plot x,y :let Y=Y-1
378 for r=1 to 125
379 color=2 :plot x,y
380 next r
381 gosub 397
382 next i
383 plot x,y
384 color=0 :plot x,y :let Y=Y+1
385 for o=1 to 75
386 color=2 :plot x,y
387 next o
388 gosub 397
389 gosub 392
390 goto 383
391 goto 365
392 if z2(X,Y+1)=1 goto 365
393 if y=38 then color=0: plot x,y :let X=1: let Y=19 :color=2 :plot x,y :let lives=lives-1 :print chr$(7):home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ :goto 365
394 return
395 if z2(X,Y-2)=1 goto 383
396 return
397 let k=PEEK(49152)
398 if k=196 and x<38 then color=0 :plot x,y :X=X+1
399 if k=193 and x>1 then color=0 :plot x,y :X=X-1
400 if z2(x,y)=1 and k=196 then let x=x-1 :plot x,y
401 if z2(x,y)=1 and k=193 then let x=x+1 :plot x,y
402 if z2(x,y+1)=1 and k=196 then let x=x-1 :plot x,y
403 if z2(x,y+1)=1 and k=193 then let x=x+1 :plot x,y
404 if z2(x,y-1)=1 and k=196 then let x=x-1 :plot x,y
405 if z2(x,y-1)=1 and k=193 then let x=x+1 :plot x,y
406 let k=PEEK(49168)
407 color=2 :plot x,y
408 return
409 rem map data saver
410 rem old data 1,24,2,24,3,24,4,24,5,24,6,24,7,24,8,24,9,24,10,24,11,24,12,24,13,24,14,24,15,24,16,24,17,24,18,24
411 rem old data 20,28,21,28,22,28,23,28,24,28,25,28,26,28,27,28,28,28,29,28,30,28,31,28,32,28,33,28,34,28,35,28,36,28,37,28
412 rem old data 20,20,21,20,22,20,23,20,24,20,25,20,26,20,27,20,0,0
413 rem old data 1,20,2,20,3,20,4,20,5,20,6,20
414 rem old data 8,18,9,18,10,18,11,18,12,18
415 rem old data 14,22,15,22,16,22,17,22,18,22,19,22,20,22,21,22
416 rem old data 23,20,24,20,25,20,26,20,27,20,28,20,29,20,30,20,31,20,32,20,33,20,34,20,35,20,36,20,37,20
417 rem old data 8,27,9,27,10,27,11,27,12,27,13,27,14,27,15,27,16,27,17,27,18,27,19,27,20,27,21,27,22,27,23,27,24,27,25,27,26,27,27,27,28,27,29,27,30,27,0,0
418 data 1,22,2,22,3,22,4,22,5,22,6,22,7,22,8,22,9,22,10,22,11,22,12,22,13,22,14,22
419 data 18,24,19,24,20,24,21,24,22,24,23,24,24,24,25,24
420 data 26,20,27,20,30,20,31,20,32,20,33,20,34,20,35,20,36,20,37,20,38,20
421 data 26,27,27,27,28,27,29,27,0,0
422 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6
423 let cy=cy-1
424 color=13 :plot cx,cy
425 for t=1 to 65
426 plot cx,cy
427 next t
428 color=0 :plot cx,cy
429 next w
430 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6
431 let cy=cy+1
432 color=13 :plot cx,cy
433 for t=1 to 65
434 plot cx,cy
435 next t
436 color=0 :plot cx,cy
437 next w
438 color=2 :plot x,y
439 return
440 for w=1 to 6
441 let ky=ky-1
442 color=9 :plot kx,ky
443 for t=1 to 65
444 plot kx,ky
445 next t
446 color=0 :plot kx,ky
447 next w
448 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4
449 let ky=ky+1
450 color=9 :plot kx,ky
451 for t=1 to 65
452 plot kx,ky
453 next t
454 color=0 :plot kx,ky
455 next w
456 color=2 :plot x,y :print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$
457 color=0 :vlin 19,20 at 39 :for e=1 to 300
458 vlin 18, 21 at 39 :next e :for e=1 to 300
459 vlin 17,22 at 39 :next e :for e=1 to 300
460 vlin 16,23 at 39:next e :for e=1 to 300
461 vlin 15,24 at 39:next e :for e=1 to 300
462 vlin 14,25 at 39 :next e :for e=1 to 300
463 vlin 13,26 at 39 :next e
464 color=2 :vlin 19,20 at 39 :for e=1 to 325
465 color=3 :plot 39,18 :plot39,21 :next e :for e=1 to 325
466 color=2 :plot 39,17 :plot39,22 :next e :for e=1 to 325
467 color=3 :plot 39,16 :plot39,23:next e :for e=1 to 325
468 color=2 :plot 39,15:plot39,24:next e :for e=1 to 325
469 color=3 :plot 39,14 :plot39,25 :next e
470 for a=1 to 500
471 color=2: plot x,y
472 next a
473 for wa=1 to 25
474 color=2 :plot x,y
475 next wa
476 for abc=1 to 3
477 color=0 :plotx,y :let x=x+1
478 for sus=1 to 85
479 color=2 :plot x,y
480 next sus
481 next abc
482 goto 484
483 kx=36 :let ky=19: goto 326
484 text: home: htab (17):vtab(12):flash:print "YOU WIN!":normal:end
500 print "To jump press the W key. To move left and right press the A and D keys."
501 print "This game was created by Brendan Ghareeb and Beckett Bylsma, with help from a few others."
502 print "press S to begin."
503 get start$
504 if start$="S" then return
505 goto 503