0 Members and 1 Guest are viewing this topic.
:.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,2)→O:End::.wrong size:If {O-2}r≠2: DelVar Str1: Goto AV:End::.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::.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,"MODE - Quit"):L1→P::DispGraph::While getKey(0):Pause 5:End:Repeat getKey(54): If getKey(15) or getKey(55): Goto EX: End:End::.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: iPart(U}→U: iPart(V}→V: If U=15: ‾1→U: ElseIf V=15: ‾1→V: End::: .INSERT BRAIN HERE: .!If X^7 or (Y^7): .End:: {A}+U→{A}: {B}+V→{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::If F=2: M+1→M: .map loopback: If M=θ: 0→M: End: Goto NM:End::If F=1: Fix 3: Text(10,0,"You have died"): Fix 2: DispGraph: Repeat getKey(54): End: Goto RS:End::.if F=0, then::Goto MM:::.EXIT:Lbl EX:Fix 4:ClrHome:While getKey(0):Pause 5: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
Don't forget, its a string of tokens, not characters.