From 887b3be2a61f884bb0b28245c8d64b93eb17675b Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Wed, 8 Mar 2023 08:45:01 -0800 Subject: [PATCH] Updated Platformer sample by Beckett Bylsma --- index.html | 2 +- samples/sample.platformer.txt | 654 +++++++++++++++++++++++++--------- 2 files changed, 491 insertions(+), 165 deletions(-) diff --git a/index.html b/index.html index ecfaf44..126eed2 100644 --- a/index.html +++ b/index.html @@ -86,7 +86,7 @@ By Joshua Bell - + diff --git a/samples/sample.platformer.txt b/samples/sample.platformer.txt index a79fb71..1c31724 100644 --- a/samples/sample.platformer.txt +++ b/samples/sample.platformer.txt @@ -1,166 +1,492 @@ -10 home -11 let k=0 -12 let lives=5 -13 let key$="NO" -14 let kx=29 :let ky=27 -15 let s=0 -16 let e=0 -17 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ -18 let levelt=1 -19 let j=1 -20 gr -21 color=6 -22 for q=1 to 39 -23 hlin 0,39 at k :let k=k+1 -24 next q -25 color=10 -26 vlin 0,38 at 39 -27 color=13 :for sun=1 to 7 -28 hlin 1,4 at j :let j=j+1 -29 next sun -30 color=13 -40 let cx=25 :let cy=19 -50 rem becketts new gravity improved (no bugs so far) -60 plot cx,cy -61 color=1 :plot kx,ky -70 let X=12: let Y=23 -80 let score=0 -90 print "SCORE:";score -91 print "LIVES:";lives -92 print "KEY OBTAINED?";key$ -100 rem level plotter -110 color=12 -120 dim z0(39,39) -130 read x1,y1 -140 if x1=0 and y1=0 goto 300 -150 z0(x1,y1)=1 -160 plot x1,y1 -161 color=5 -162 plot x1,(y1+1) :color=12 -170 goto 130 -200 rem character printer -210 color=2 -300 color=2 -310 plot x,y -350 rem get key command -450 let c$="":get c$ -451 if x<0 then let x=0 -452 if x>39 and levelt=1 then let x=39 -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 -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 -402 if lives<1 then print "YOU LOSE!" :end -500 if c$="W" goto 900 -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 -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 -800 goto 400 -900 for i=1 to 6: plot x,y -910 gosub 3000 -920 color=6 :plot x,y :let Y=Y-1 -1010 for r=1 to 125 -1020 color=2 :plot x,y -1080 next r -1100 gosub 10000 -1190 next i -1200 plot x,y -1240 color=6 :plot x,y :let Y=Y+1 -1310 for o=1 to 75 -1320 color=2 :plot x,y -1390 next o -1400 gosub 10000 -1410 gosub 2000 -1420 goto 1200 -1440 goto 400 -10000 let k=PEEK(49152) -10100 if k=196 and x<38 then color=6 :plot x,y :X=X+1 -10200 if k=193 and x>1 then color=6 :plot x,y :X=X-1 -10210 if z0(x,y)=1 and k=196 then let x=x-1 :plot x,y -10220 if z0(x,y)=1 and k=193 then let x=x+1 :plot x,y -10222 if z0(x,y+1)=1 and k=196 then let x=x-1 :plot x,y -10223 if z0(x,y+1)=1 and k=193 then let x=x+1 :plot x,y -10224 if z0(x,y-1)=1 and k=196 then let x=x-1 :plot x,y -10225 if z0(x,y-1)=1 and k=193 then let x=x+1 :plot x,y -10280 let k=PEEK(49168) -10290 color=2 :plot x,y -10300 return - -2000 if z0(X,Y+1)=1 goto 400 -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 -2010 return - -3000 if z0(X,Y-2)=1 goto 1200 -3024 return - - - -99999 rem map data saver -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 -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 -20010 data 20,20,21,20,22,20,23,20,24,20,25,20,26,20,27,20,0,0 -100000 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6 -100001 let cy=cy-1 -100002 color=13 :plot cx,cy -100003 for t=1 to 65 -100004 plot cx,cy -100005 next t -100006 color=6 :plot cx,cy -100007 next w -100008 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4 -100009 let cy=cy+1 -100010 color=13 :plot cx,cy -100011 for t=1 to 65 -100012 plot cx,cy -100013 next t -100014 color=6 :plot cx,cy -100015 next w -100016 color=2 :plot x,y -100017 return -200000 for w=1 to 6 -200001 let ky=ky-1 -200002 color=1 :plot kx,ky -200003 for t=1 to 65 -200004 plot kx,ky -200005 next t -200006 color=6 :plot kx,ky -200007 next w -200008 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4 -200009 let ky=ky+1 -200010 color=1 :plot kx,ky -200011 for t=1 to 65 -200012 plot kx,ky -200013 next t -200014 color=6 :plot kx,ky -200015 next w -200016 color=2 :plot x,y :print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ -200017 color=6 :vlin 19,20 at 39 :for e=1 to 300 -200018 vlin 18, 21 at 39 :next e :for e=1 to 300 -200019 vlin 17,22 at 39 :next e :for e=1 to 300 -200020 vlin 16,23 at 39:next e :for e=1 to 300 -200021 vlin 15,24 at 39:next e :for e=1 to 300 -200022 vlin 14,25 at 39 :next e :for e=1 to 300 -200023 vlin 13,26 at 39 :next e -200024 color=2 :vlin 19,20 at 39 :for e=1 to 325 -200025 color=3 :plot 39,18 :plot39,21 :next e :for e=1 to 325 -200026 color=2 :plot 39,17 :plot39,22 :next e :for e=1 to 325 -200027 color=3 :plot 39,16 :plot39,23:next e :for e=1 to 325 -200028 color=2 :plot 39,15:plot39,24:next e :for e=1 to 325 -200029 color=3 :plot 39,14 :plot39,25 :next e -200030 for a=1 to 500 -200040 color=2: plot x,y -200050 next a -200060 for ab=1 to 7 -200070 color=6 :plot x,y :let y=y-1 -200080 for sus=1 to 85 -200090 color=2 :plot x,y -200100 next sus -200110 next ab -200111 for wa=1 to 25 -200112 color=2 :plot x,y -200113 next wa -200120 for abc=1 to 10 -200130 color=6 :plotx,y :let x=x+1 -200140 for sus=1 to 85 -200150 color=2 :plot x,y -200160 next sus -200170 next abc +1 text:home:gosub 500 +2 lvl=1 :home +3 let k=0 +4 let lives=5 +5 let key$="NO" +6 let kx=29 :let ky=27 +7 let s=0 +8 let e=0 +9 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ +10 let levelt=1 +11 let j=1 +12 gr +13 color=6 +14 for q=1 to 39 +15 hlin 0,39 at k :let k=k+1 +16 next q +17 color=10 +18 vlin 0,38 at 39 +19 color=13 :for sun=1 to 7 +20 hlin 18,21 at j :let j=j+1 +21 next sun +22 color=13 +23 let cx=25 :let cy=19 +24 rem becketts new gravity improved (no bugs so far) +25 plot cx,cy +26 color=9 :plot kx,ky +27 let X=12: let Y=23 +28 let score=0 +29 print "SCORE:";score +30 print "LIVES:";lives +31 print "KEY OBTAINED?";key$ +32 rem level plotter +33 color=12 +34 dim z0(39,39) +35 read x1,y1 +36 if x1=0 and y1=0 goto 44 +37 z0(x1,y1)=1 +38 plot x1,y1 +39 color=5 +40 plot x1,(y1+1) :color=12 +41 goto 35 +42 rem character printer +43 color=2 +44 color=2 +45 plot x,y +46 rem get key command +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 +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 +49 if lives<1 then text: home: htab (17):vtab(12):flash:print "YOU LOSE!":normal:end +50 color=2 :plot x,y :let c$="":get c$ +51 if x<0 then let x=0 +52 if x>39 and levelt=1 then let x=39 +53 if c$="W" goto 57 +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 +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 +56 goto 47 +57 for i=1 to 6: plot x,y +58 gosub 77 +59 color=6 :plot x,y :let Y=Y-1 +60 for r=1 to 125 +61 color=2 :plot x,y +62 next r +63 gosub 79 +64 next i +65 plot x,y +66 color=6 :plot x,y :let Y=Y+1 +67 for o=1 to 75 +68 color=2 :plot x,y +69 next o +70 gosub 79 +71 gosub 74 +72 goto 65 +73 goto 47 +74 if z0(X,Y+1)=1 goto 47 +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 +76 return +77 if z0(X,Y-2)=1 goto 65 +78 return +79 let k=PEEK(49152) +80 if k=196 and x<38 then color=6 :plot x,y :X=X+1 +81 if k=193 and x>1 then color=6 :plot x,y :X=X-1 +82 if z0(x,y)=1 and k=196 then let x=x-1 :plot x,y +83 if z0(x,y)=1 and k=193 then let x=x+1 :plot x,y +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 +86 if z0(x,y-1)=1 and k=196 then let x=x-1 :plot x,y +87 if z0(x,y-1)=1 and k=193 then let x=x+1 :plot x,y +88 let k=PEEK(49168) +89 color=2 :plot x,y +90 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 +95 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 6 +96 let cy=cy-1 +97 color=13 :plot cx,cy +98 for t=1 to 65 +99 plot cx,cy +100 next t +101 color=6 :plot cx,cy +102 next w +103 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4 +104 let cy=cy+1 +105 color=13 :plot cx,cy +106 for t=1 to 65 +107 plot cx,cy +108 next t +109 color=6 :plot cx,cy +110 next w +111 color=2 :plot x,y +112 return +113 for w=1 to 6 +114 let ky=ky-1 +115 color=9 :plot kx,ky +116 for t=1 to 65 +117 plot kx,ky +118 next t +119 color=6 :plot kx,ky +120 next w +121 print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$:for w=1 to 4 +122 let ky=ky+1 +123 color=9 :plot kx,ky +124 for t=1 to 65 +125 plot kx,ky +126 next t +127 color=6 :plot kx,ky +128 next w +129 color=2 :plot x,y :print chr$(7) :home :print "SCORE:";score :print "LIVES:";lives :print "KEY OBTAINED?";key$ +130 color=6 :vlin 19,20 at 39 :for e=1 to 300 +131 vlin 18, 21 at 39 :next e :for e=1 to 300 +132 vlin 17,22 at 39 :next e :for e=1 to 300 +133 vlin 16,23 at 39:next e :for e=1 to 300 +134 vlin 15,24 at 39:next e :for e=1 to 300 +135 vlin 14,25 at 39 :next e :for e=1 to 300 +136 vlin 13,26 at 39 :next e +137 color=2 :vlin 19,20 at 39 :for e=1 to 325 +138 color=3 :plot 39,18 :plot39,21 :next e :for e=1 to 325 +139 color=2 :plot 39,17 :plot39,22 :next e :for e=1 to 325 +140 color=3 :plot 39,16 :plot39,23:next e :for e=1 to 325 +141 color=2 :plot 39,15:plot39,24:next e :for e=1 to 325 +142 color=3 :plot 39,14 :plot39,25 :next e +143 for a=1 to 500 +144 color=2: plot x,y +145 next a +146 for ab=1 to 7 +147 color=6 :plot x,y :let y=y-1 +148 for sus=1 to 85 +149 color=2 :plot x,y +150 next sus +151 next ab +152 for wa=1 to 25 +153 color=2 :plot x,y +154 next wa +155 for abc=1 to 10 +156 color=6 :plotx,y :let x=x+1 +157 for sus=1 to 85 +158 color=2 :plot x,y +159 next sus +160 next abc +161 let lvl=2 +162 home +163 let k=0 +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 \ No newline at end of file