home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 210
/
210.d81
/
pyramid
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
6KB
|
209 lines
0 v=peek(186)
1 ifx=0thenx=1:print"[147][144][194]uilding the [208]yramid...":load"unpacker",v,1
2 ifx=1thenx=2:load"pyramid.shps.lnk",v,1
3 ifx=2thenx=3:load"lineplot.o",v,1
4 ifx=3thenx=4:load"joeplay",v,1
5 ifx=4thenx=5:load"taps",v,1
6 ifx=5thenx=6:load"victory",v,1
7 text=50759:plot=51462:hi=51459
10 print"[147]":poke53280,0:poke53281,0
70 dimx(15),y(15),p(15):n=15:s=1:b=0
72 ss$=" "
170 goto280
180 rem erase bottom
182 forll=21to23:systext,ss$,0,ll*8:next:return
184 :
210 remsetallpiecesinholes
220 fori=1to15:ag=1:p(i)=ag:next:ki=int(rnd(1)*15)+1:return
230 reminitialization
280 fori=1to15:readx(i),y(i):nexti
290 gosub220
350 print"[147]"spc(11)"[204][207][193][196][211][212][193][210] [208][210][197][211][197][206][212][211]"
352 print""spc(16)"[208][217][210][193][205][201][196]"
354 print""spc(15)"[208][160][207][160][215][160][197][160][210]"
356 print""spc(12)"[211][160][212][160][210][160][213][160][199][160][199][160][204][160][197]"
380 print""spc(12)"[194][217][160][193][204][193][206][160][199][193][210][196][206][197][210]"
381 printspc(13)"[195][207][208][217][210][201][199][200][212] 1986"
382 print""spc(12)"[198][210][207][205][160][193][206][160][201][196][197][193] [194][217]"
384 printspc(14)"[211][193][206][196][217][160][211][205][201][212][200]"
390 print" [204][207][193][196][211][212][193][210] [201][211] [206][207][212] [208][213][194][204][201][195] [196][207][205][193][201][206]."
392 print" [208][204][197][193][211][197] [210][197][211][208][197][195][212] [212][200][197] [193][213][212][200][207][210]'[211] [210][201][199][200][212][211]."
400 ifb=1then450
410 print" [196][207] [217][207][213] [215][193][206][212] [201][206][211][212][210][213][195][212][201][207][206][211]? ([217]/[206])";
412 poke198,0:wait198,1:getq$:ifq$="y"then1080
420 ifq$<>"n"then412
450 remshowgameboard
455 x=0:y=0:sh=0:gosub20000:sys51459
456 forz=1to15:sh=3:ifz=kithensh=2
457 x=x(z):y=y(z):gosub20000:next
460 gosub180
471 systext,"which piece do you want to remove first? (a-o)",0,176
472 poke198,0:wait198,1:getq$:q=asc(q$)-64:ifq<1orq>15then460
473 systext,q$,14*8,176+8:gosub180
474 gl=0:ifq=kithensystext,"not the pharaoh...",0,176:gl=1
475 ifgl=1thenfordl=1to1000:next:goto471
481 p(q)=0:n=n-1:sh=3:x=x(q):y=y(q):so=3:gosub30000
483 sh=1:gosub20000
490 systext,"press 'q' to quit",0,21*8
492 systext,"pieces left",22*8,21*8
493 systext,"pieces removed",22*8,22*8
500 remmainprogram
510 n$=mid$(str$(n),2):ifn<10thenn$=" "+n$
520 systext,n$,37*8,21*8
530 r=15-n:r$=mid$(str$(r),2):ifr<10thenr$=" "+r$
540 systext,r$,37*8,22*8
550 remplayerinput
560 ot$="overthrows:"+str$(ot)+" ":systext,ot$,178,1
561 systext,ss$,0,23*8
562 systext,"from: ",0,23*8
563 poke198,0:wait198,1:getq$:ifq$="q"then960
564 ifq$="w"thenn=2:goto560
570 rem
580 f=asc(q$+chr$(0))-64:iff<1orf>15then560
590 ifp(f)=0then560:remnopiecein"[198][210][207][205]"
592 systext,q$,7*8,23*8
600 systext," ",12*8,23*8
601 systext,"to: ",12*8,23*8
602 poke198,0:wait198,1:getq$:printq$;:ifq$="q"then960
610 rem
620 t=asc(q$+chr$(0))-64:ift<1ort>15then600
630 ifp(t)=1then560:rempiecein"[212][207]"
635 systext,q$,16*8,23*8
637 rem **************
640 remcheckforrightrow/column
650 ify(t)<>y(f)then690:remnotinsamerow
660 yy=y(t):ifabs(x(t)-x(f))=12thenxx=(x(t)+x(f))/2:goto770
680 goto560
690 ify(f)>y(t)then730
700 yy=y(f)+4:ifx(f)-6=x(t)thenxx=x(f)-3:goto770
710 ifx(f)+6=x(t)thenxx=x(f)+3:goto770
720 goto560
730 yy=y(t)+4:ifx(t)+6=x(f)thenxx=x(t)+3:goto770
740 ifx(f)+6=x(t)thenxx=x(f)+3:goto770
750 goto560
760 remmakesurethereisapegtojump
770 fori=1to15:ifxx=x(i)andyy=y(i)thenpn=i:i=15:goto790
780 ifxx-2=x(i)andyy=y(i)thenpn=i:i=15
790 nexti
800 ifp(pn)=0then560:remnopiecetojump
810 p(pn)=0:p(f)=0:p(t)=1
815 rem *************
816 rem *************
820 remmovepiece
830 rem erase piece in from
832 sh=3:ifki=fthensh=2
834 x=x(f):y=y(f):so=1:gosub30000
835 sh=1:gosub20000
840 :
860 rem draw piece in to
872 sh=3:ifki=fthensh=2
873 x=x(t):y=y(t):so=2:gosub30000
874 sh=3:ifki=fthensh=2:ki=t
875 gosub20000
876 :
880 rem remove jumped piece
890 n=n-1
892 sh=3:ifpn=kithensh=2
893 x=x(pn):y=y(pn):so=3:gosub30000
894 sh=1:gosub20000
895 :
896 ifki=pnthenx=x(t):y=y(t):sh=2:so=1:gosub30000:ot=ot+1:sh=2:gosub20000:ki=t
900 ifn>1then510
910 rem win if 1 piece left
920 gosub180:systext,"congratulations! you won!!",24,21*8
940 goto1000
950 remplayerquit-givescore
960 gosub180:n$="pieces left:"+str$(n)+" ":systext,n$,0,21*8
961 systext,"score:",0*8,22*8:x=9*8:y=22*8
962 ifn=2thensystext,"above average",x,y:goto1000
970 ifn=3thensystext,"average",x,y:goto1000
980 ifn=4thensystext,"fair",x,y:goto1000
982 systext,"pretty rotten",x,y
983 poke252,161:poke251,0:sys49152
984 ifpeek(788)<>49then984
990 remend
1000 ifn<>1then1005
1003 systext,"press a key to see your rating...",2*8,23*8:poke198,0:wait198,1
1004 gosub40000
1005 systext," play again? (y/n) ",3*8,23*8
1006 poke198,0:wait198,1:getq$:ifq$="n"then1030
1010 ifq$<>"y"then1006
1020 gosub220:n=15:ot=0:goto456
1030 sys51459:print"[147] [212]hank you for playing"
1032 print""spc(16)"[208][217][210][193][205][201][196]"
1034 print""spc(15)"[208][160][207][160][215][160][197][160][210]"
1036 print""spc(12)"[211][160][212][160][210][160][213][160][199][160][199][160][204][160][197]"
1040 rem
1050 goto41000
1060 end
1070 reminstructions
1080 print"[147] [208][217][210][193][205][201][196][160][208][207][215][197][210][160][211][212][210][213][199][199][204][197]"
1090 print" [217][207][213][210] [199][207][193][204] [201][211] [212][207] [210][197][205][207][214][197] [193][211] [205][193][206][217] [211][195][210][201][194][197][211]":print
1092 print"[193][211] [208][207][211][211][201][194][204][197] [198][210][207][205] [212][200][197] [194][207][193][210][196] [194][217] [202][213][205][208][201][206][199]":print
1100 print"[207][214][197][210] [207][206][197] [211][195][210][201][194][197] [193][212] [193] [212][201][205][197] [201][206][212][207] [193][206]":print:print"[197][205][208][212][217] [211][208][193][195][197].":print
1108 print" [201][198][160][193][160][208][200][193][210][207][193][200][160][201][211][160][202][213][205][208][197][196], [212][200][193][212][160][201][211]":print
1109 print"[195][207][206][211][201][196][197][210][197][196][160][193][206][160][207][214][197][210][212][200][210][207][215]. [203][197][197][208][160][201][206][160][205][201][206][196]":print
1110 print"[212][200][193][212] [212][200][197][160][198][197][215][197][210][160][207][214][197][210][212][200][210][207][215][211][160][217][207][213] [200][193][214][197], [212][200][197]":print
1112 print"[194][197][212][212][197][210][160][217][207][213][210] [210][193][212][201][206][199][160][215][201][204][204] [194][197], [201][198][160][217][207][213][160][215][201][206]":print"[212][200][197][160][199][193][205][197].":print
1120 print" [201][198] [217][207][213] [200][193][214][197] [205][207][210][197] [212][200][193][206] [207][206][197] [208][201][197][195][197] [204][197][198][212]"
1122 print"[215][201][212][200][207][213][212] [193][206][217] [204][197][199][193][204] [205][207][214][197][211] [193][214][193][201][204][193][194][204][197], [208][210][197][211][211] ";
1123 printchr$(34)"[209]"chr$(34)" [212][207][160][209][213][201][212][160][193][206][196][160][199][197][212][160][217][207][213][210][160][210][193][212][201][206][199]."
1130 print" [208][210][197][211][211] [193] [203][197][217] [212][207][160][194][197][199][201][206]";:poke198,0:wait198,1
1140 getq$:b=1:goto350
1150 rempiecelocations
1160 data17,0,14,4,20,4,11,8,17,8,23,8,8,12,14,12,20,12,26,12,5,16,11,16
1170 data17,16,23,16,29,16
10000 d=peek(186):n$="pyramid":open15,d,15,"s0:"+n$:close15:saven$,d:end
20000 rem shape stuff
20010 poke249,224:poke250,204:poke251,0:poke252,64:poke253,x:poke254,y
20020 poke255,sh:sysplot
20030 return
30000 rem sound routines
30005 ss=sh:si=54272
30010 ifso=1orso=2thengosub31000:return
30030 gosub33000:return
30040 :
31000 rem sound t
31010 pokesi+1,14:pokesi+5,3:pokesi+6,255-15:pokesi+24,15:pokesi+4,1