0 Members and 1 Guest are viewing this topic.
:.GETHISCR:Lbl GHS::Fix 1:Fix 4::0→{GDB0}:0→E→L→K→I+1→U::sub(DSP)::Repeat E: getKey→K: If K=9 and (L>0): 1→E: End: If K=4: 1→U: ElseIf K=1: 0→U: ElseIf K=2: If L>0: L-1→L: 0→{GDB0+L}: sub(DSP): End: End: If K: For(I,0,26): If {GDB00+I}=K: sub(SC1,I): End: End: End::: While getKey(0): End:End:Fix 0:Fix 5:ClrHome:Return::Lbl SC1:If r1=0: sub(SC2,32): Return:End:If U: sub(SC2,r1+64):Else: sub(SC2,r1+96):End:Return::Lbl SC2:If L<16: r1→{GDB0+L}: 0→{GDB0+L+1}: L+1→L: sub(DSP):End:Return::Lbl DSP:ClrHome:Text(16,0,"HIGH SCORE!"):Output(0,2,"Type your name:"):If {GDB0}: Output(0,3,GDB0:End:If L<16: Output(L,3,95►Frac):End
:det(17)→GDB0:DeltaList(33,47,39,31,46,38,30,22,14,45,37,29,21,13,44,36,28,20,12,43,35,27,19,11,42,34,26)→GDB00
:.AAPACMAN A fun arcade game:DiagnosticOff:::.appvar:Lbl AV:"vPac-Man"→Str1::.only if exist:.UnarchiveStr1::.exists? if notmake:!If GetCalc(Str1)→O:: .create, ret if < RAM: Return!If GetCalc(Str1,57)→O: 666→{O}r: 256→{O+2}r: 13→{O+4}r: "DJ"→Str01: "Byte"→Str02: "Clyde"→Str03: For(I,0,16): {Str01+I}→{O+I+6}: End: For(I,0,16): {Str02+I}→{O+I+23}: End: For(I,0,16): {Str03+I}→{O+I+40}: End:End::.wrong size:ReturnIf {O-2}r≠57:::.SPRITES::.CLOSED:[387CFEFEFE7C3800]→Pic0:.UP:[82C6EEFEFE7C3800]→Pic1:.RIGHT:[3E7CF8F0F87C3E00]→Pic2:.LEFT:[F87C3E1E3E7CF800]→Pic3:.DOWN:[387CFEFEEEC68200]→Pic4:.DOT:[0000102810000000]→Pic5:.LIFE:[70E0C0E070000000]→Pic6:.GHOST:[387CD6FEFEFEAA00]→Pic7:::.no. of maps::3→θ:.MAP DATA:[FFFC006B6B1B120246C6B6B001FFF811B1B7171001F00FFFFC006F7B1112224446F7B001FFF8631767B70F0F0F0FFFFC446AAB4452FA5116AAB111FFF83491B4971001100F]→GDB1:::.hi scr stuffs:det(17)→GDB0:DeltaList(33,47,39,31,46,38,30,22,14,45,37,29,21,13,44,36,28,20,12,43,35,27,19,11,42,34,26)→GDB00:::.TEXT DRAWN TO BUFFER:Fix 5:::.MAIN MENU:Lbl MM:ClrDraw:Fix 1:Text(27,0,"PAC-MAN"):Fix 0:ref(0,8,96,1):Text(1,10,"By Michael Ripley")::21→A:Text(4,A,"2ND - Start"):Text(4,A+7,"ALPHA - High Scores":Text(4,A+14,"MODE - Quit"):L1→P::DispGraph::While getKey(0):Pause 5:End:Repeat getKey(54): If getKey(15) or getKey(55): Goto EX: Else If getKey(48): Goto HS: End:End:Goto SG::.HIGH SCORE:Lbl HS:ClrDraw:Fix 1:Text(16,0,"High Scores"):Fix 0:For(I,0,2): I*7+10→P: Text(3,P,I+49►Frac,".": Text(15,P,{I*2+O}r►Dec): Text(40,P,I*17+O+6):End:DispGraph:While getKey(0):Pause 50:End:Repeat getKey(54) or getKey(15) or getKey(55) or getKey(48):End:Goto MM::::.START GAME:Lbl SG::.init vars:0→M→S+3→L:::.NEXT MAP:Lbl NM:::.Load map data:For(I,0,116): {M*23+(I/8)+GDB1}e(I^8)*2→iPart(L1*2+I+20}:End:::.Draw map:0→N:ClrDrawr:For(B,0,8): For(A,0,12): iPart(B*13+A+(L1*2)+20}→P: If P=2: ref(A*7,B*7,7,7)r: End: If P=0: N+1→N: Pt-On(A*7,B*7,Pic5)r: End: End:End:::.RESET:Lbl RS:::.G-pos:0→{L1}::.G-dir:conj(M*23+GDB1+20,L1+1,3)::.G-pos:For(I,0,5): iPart(M*23+GDB1+16*2+I}*7→{L1+I+4}:End::.reset vars:0→E→F+1→C→Q→Z::.P-pos:M*23+GDB1+15*2→P:iPart(P}*7→X:iPart(P+1}*7→Y::.P-dir:M*23+GDB1+19*2→P:iPart(P}→G:iPart(P+1}→H:If G=15: ‾1→G:ElseIf H=15: ‾1→H:End:If H=‾1: 1→D:ElseIf G=1: 2→D:ElseIf G=‾1: 3→D:Else: 4→D:End::sub(RD,1):sub(DW):Pause 1000::.MAIN LOOP:Repeat getKey(55) or F:: .KEY PRESSES: If getKey(1): !If pxl-Test(X,Y+7)r+pxl-Test(X+6,Y+7)r: 0→G+1→H+3→D: End: End: If getKey(2): !If pxl-Test(X-1,Y)r+pxl-Test(X-1,Y+6)r: ‾1→G+1→H+3→D: End: End: If getKey(3): !If pxl-Test(X+7,Y)r+pxl-Test(X+7,Y+6)r: 0→H+1→G+1→D: End: End: If getKey(4): !If pxl-Test(X,Y-1)r+pxl-Test(X+6,Y-1)r: ‾1→H+1→G+1→D: End: End:: .MOVE: DS<(Z,2): X+G→A: Y+H→B: !If pxl-Test(A,B)r+pxl-Test(A+6,B)r+pxl-Test(A,B+6)r+pxl-Test(A+6,B+6)r: A→X: B→Y: If X=91: 0→X: ElseIf X=‾1: 90→X: End: If X>84: X-91→E: Else: 0→E: End: End:: .MOVE GHOSTS: For(I,0,2): .gXp, gYp: I*2+L1+4→A+1→B: L1+1*2+(I*2)→U+1→V:: .get J,K: sub(GGD)::: .G-BRAIN:..............:: .On tile: !If {A}^7 or ({B}^7): L4+2→P: 0→{L4}r: 0→{P}: If J: J*‾1→{L4}: Else: K*‾1→{L4+1}: End::.stop indent::.1 UP:!If pxl-Test({A},{B}-1)r:If {L4+1}≠‾1: 0→{{P}*2+L4+3}: ‾1→{{P}*2+L4+4}: {P}+1→{P}:End:End::.2 RIGHT:!If pxl-Test({A}+7,{B})r:If {L4}≠1: 1→{{P}*2+L4+3}: 0→{{P}*2+L4+4): {P}+1→{P}:End:End::.3 DOWN:!If pxl-Test({A},{B}+7)r:If {L4+1}≠1: 0→{{P}*2+L4+3}: 1→{{P}*2+L4+4}: {P}+1→{P}:End:End::.4 LEFT:!If pxl-Test({A}-1,{B})r:If {L4}≠‾1: ‾1→{{P}*2+L4+3}: 0→{{P}*2+L4+4}: {P}+1→{P}:End:End::.resume indent:: {rand^{L4+2}*2+L4+3}→P: {P}→iPart(U}: {P+1}→iPart(V}: sub(GGD): End::..............:: {A}+J→{A}: {B}+K→{B}:: .coll test: If N: If {A}-5≤X and ({A}+5≥X): If {B}-5≤Y and ({B}+5≥Y): 1→F: L-1→L: End: End: End: End: End::: .WOKKA WOKKA: DS<(Q,10): C=0→C: End:: sub(RD,0): sub(DW):End::.Game Over:If F=3: ClrDraw: Fix 1: Text(0,0,"Game Over"): Fix 0: Text(0,10,"Score: ",S►Dec): DispGraph: While getKey(0): .do-nothing: Pause 50: End: Repeat getKey(54): End:: .HI SCORE!: If S>{O+4}r: .in ext prog: sub(GHS): S→{O+4}r: For(I,0,17): {GDB0+I}→{O+I+40}: End: If {O+4}r>{O+2}r: expr(O+4,O+2,2): expr(O+40,O+23,17): If {O+2}r>{O}r: expr(O+2,O,2): expr(O+23,O+6,17): End: End: End:End::.beat level:If F=2: M+1→M: .map loopback: If M=θ: 0→M: End: Goto NM:End::.lost life:If F=1: Fix 3: Text(10,0,"You have died"): Fix 2: DispGraph: Repeat getKey(54): End: Goto RS:End::.pressed MODE:Goto MM:::.EXIT:Lbl EX:Fix 4:ClrHome:While getKey(0):Pause 5:End:Return:::.get G-dir:Lbl GGD:If iPart(U}=15: ‾1→J:ElseIf iPart(V}=15: ‾1→K:End:Return:::.remove dot:Lbl RD:!If X^7 or (Y^7): X/7→A: Y/7→B: B*13+A+(L1*2)+20→P: !If iPart(P}: N-1→N: !If N: 2→F: End: !If r1: S+1→S: End: 1→iPart(P}: Pxl-Off(X+3,Y+2)r: Pxl-Off(X+2,Y+3)r: Pxl-Off(X+4,Y+3)r: Pxl-Off(X+3,Y+4)r: End:End:Return:::.DRAW:Lbl DW:ClrDraw:RecallPic:::.ghost:For(I,0,2): I*2+L1+4→P: Pt-On({P},{P+1},Pic7):End::Pt-On(X,Y,C*D*8+Pic0):If E: Pt-On(E,Y,C*D*8+Pic0):End:If L>>0: For(P,0,L-1): Pt-On(92,P*6,Pic6): End:Else: If L=‾1: 3→F: End:End:ref(91,28,5,7):rref(91,28,5,7):DispGraph:Return::.HISCORE STUFF:prgmAAAINPUT