Being that it lost in contest #11, there is a lot of work still to be done on the game.

Throughout testing the game, I've noticed that it was running a little slow, even on its fastest settings. As I haven't compared the speed of anything yet, I have know idea what would make the program run faster. Here is the source code:
Code:
::DCS
:"FFF0000000000888FD0F000000008918F0D0F000000891980F0D0F000089198000F0D0F008919800000F0D0F8919800
00088F0D89198FF0000818F89198FEF000008189198FDF000000818198DFDF00000008188FFDF0000000778118DF77000
0077708818077700887700FF880077FF8180000000000FEF8880000000000FFF"
:If 80>det([[20
:Then
:Disp "Doors CSE Required"
:Return
:End
:DelVar ∟WALLDelVar ∟YAXISDelVar ∟XAXISDelVar ∟LIVESDelVar ∟ENEMYDelVar ∟BLOCKDelVar ∟LEVELDelVar Str1DelVar ADelVar BDelVar CDelVar DDelVar EDelVar FDelVar GDelVar HDelVar IDelVar JDelVar KDelVar LDelVar MDelVar NDelVar ODelVar PDelVar QDelVar RDelVar SDelVar TDelVar UDelVar VDelVar WDelVar XDelVar YDelVar ZDelVar θ
:Lbl 12
:ClrHome
:Menu("        PvP Craft         ","Play",13,"Controls",14,"Quit",15
:Lbl 14
:Disp "Arrows:Move/Mine/Attack"
:Disp ""
:Disp "MODE,STAT,APPS,ALPHA:Place"
:Disp ""
:Disp "XTθn:Jump,Place"
:Disp ""
:Disp "2ND:Sword Store"
:Disp ""
:Disp "DEL:Pickaxe Store"
:Repeat D≠0
:getKey→D
:End
:Goto 12
:Lbl 15
:Return
:Lbl 13
:Menu("    Number Of Enemies     ","One (Fastest)",6,"Two",7,"Three",8,"Four",9,"Five (Slowest)",10,"Back",12
:Lbl 6
:1→F
:Goto 11
:Lbl 7
:2→F
:Goto 11
:Lbl 8
:3→F
:Goto 11
:Lbl 9
:4→F
:Goto 11
:Lbl 10
:5→F
:Lbl 11
:F→dim(∟YAXIS
:F→dim(∟XAXIS
:F→dim(∟LIVES
:F→dim(∟ENEMY
:F→dim(∟BLOCK
:F→dim(∟LEVEL
:10→C
:For(E,1,F
:10→∟LIVES(E
:End
:0→dim(∟WALL
:randInt(1,10)→P
:randInt(1,26)→Q
:Menu("       Terrain Size       ","Tiny (Fastest)",1,"Small",2,"Medium",3,"Large",4,"Huge (Slowest)",5,"Back",13
:Lbl 1
:randInt(1,40)→M
:Goto 0
:Lbl 2
:randInt(41,80)→M
:Goto 0
:Lbl 3
:randInt(81,120)→M
:Goto 0
:Lbl 4
:randInt(121,160)→M
:Goto 0
:Lbl 5
:randInt(161,200)→M
:Lbl 0
:ClrHome
:For(N,1,M
:Repeat R<5
:randInt(1,9)→O
:If O=1 or O=6
:P+1→P
:If O=2 or O=7
:P-1→P
:If O=3 or O=8
:Q+1→Q
:If O=4 or O=9
:Q-1→Q
:If P=0
:1→P
:If P=11
:10→P
:If Q=0
:1→Q
:If Q=27
:26→Q
:If O=5
:Then
:randInt(1,10)→P
:randInt(1,26)→Q
:End
:dim(∟WALL)+1→dim(∟WALL
:sum(P*100+Q=∟WALL→R
:End
:If R=4
:det(12,BLACK,BLACK
:If R=3
:det(12,DARKGRAY,DARKGRAY
:If R=2
:det(12,GRAY,GRAY
:If R=1
:det(12,MEDGRAY,MEDGRAY
:If R=0
:det(12,LTGRAY,LTGRAY
:Output(P,Q," "
:P*100+Q→∟WALL(dim(∟WALL
:End
:DelVar PDelVar QDelVar NDelVar M
:det(12,300
:randInt(1,10)→A
:randInt(1,26)→B
:For(E,1,F
:randInt(1,10)→∟YAXIS(E
:randInt(1,26)→∟XAXIS(E
:∟YAXIS(E)*100+∟XAXIS(E)→∟ENEMY(E)
:End
:While max(A*100+B=∟WALL
:randInt(1,10)→A
:randInt(1,26)→B
:End
:For(E,1,F
:While max(∟YAXIS(E)*100+∟XAXIS(E)=∟WALL or (A=∟YAXIS(E) and B=∟XAXIS(E
:randInt(1,10)→∟YAXIS(E
:randInt(1,26)→∟XAXIS(E
:End
:End
:det(12,GREEN,WHITE
:Output(A,B,"θ"
:det(12,RED,WHITE
:For(E,1,F
:Output(∟YAXIS(E),∟XAXIS(E),"θ"
:End
:"Gold   Wood   Stone  Iron   Diamond"→Str1
:Repeat D=45 or C≤0 or max(∟LIVES)≤0
:getKey→D
:det(12,300
:If D=21
:Then
:ClrHome
:Disp " Sword   Damage Uses Cost"
:Disp "1:Gold      2    10   05"
:Disp "2:Wood      2    20   10"
:Disp "3:Stone     3    30   20"
:Disp "4:Iron      4    40   30"
:Disp "5:Diamond   5    50   40"
:Disp "        INVENTORY"
:Output(10,3,"Hand      1    --"
:Output(10,23,G
:If W≠0
:Then
:Output(8,3,sub(Str1,7W-6,7
:If W=1
:Output(8,13,"2"
:If W≥2
:Output(8,13,W
:Output(8,18,Y
:End
:If X≠0
:Then
:Output(9,3,sub(Str1,7X-6,7
:If X=1
:Output(9,13,"2"
:If X≥2
:Output(9,13,X
:Output(9,18,10X
:End
:Repeat D≠0
:getKey→D
:End
:If X=0
:Then
:If W≠0
:Then
:If D=92 and G≥5
:1→X
:If D=93 and G≥10
:2→X
:If D=94 and G≥20
:3→X
:If D=82 and G≥30
:4→X
:If D=83 and G≥40
:5→X
:End
:If W=0
:Then
:If D=92 and G≥5
:1→W
:If D=93 and G≥10
:2→W
:If D=94 and G≥20
:3→W
:If D=82 and G≥30
:4→W
:If D=83 and G≥40
:5→W
:10W→Y
:End
:If D=92 and G≥5
:G-5→G
:If D=93 and G≥10
:G-10→G
:If D=94 and G≥20
:G-20→G
:If D=82 and G≥30
:G-30→G
:If D=83 and G≥40
:G-40→G
:End
:ClrHome
:For(S,1,dim(∟WALL
:If ∟WALL(S)≠0
:Then
:int(∟WALL(S)/100)→T
:∟WALL(S)-T*100→U
:sum(T*100+U=∟WALL→R
:If R=5
:det(12,BLACK,BLACK
:If R=4
:det(12,DARKGRAY,DARKGRAY
:If R=3
:det(12,GRAY,GRAY
:If R=2
:det(12,MEDGRAY,MEDGRAY
:If R=1
:det(12,LTGRAY,LTGRAY
:Output(T,U," "
:End
:End
:If Z=0
:det(12,GREEN,WHITE
:If Z=1
:det(12,GREEN,LTGRAY
:If Z=2
:det(12,GREEN,MEDGRAY
:If Z=3
:det(12,GREEN,GRAY
:If Z=4
:det(12,GREEN,DARKGRAY
:If Z=5
:det(12,GREEN,BLACK
:If C≥10
:Then
:Output(A,B,"θ"
:Else
:Output(A,B,int(C
:End
:For(E,1,F
:If ∟LEVEL(E)=0
:det(12,RED,WHITE
:If ∟LEVEL(E)=1
:det(12,RED,LTGRAY
:If ∟LEVEL(E)=2
:det(12,RED,MEDGRAY
:If ∟LEVEL(E)=3
:det(12,RED,GRAY
:If ∟LEVEL(E)=4
:det(12,RED,DARKGRAY
:If ∟LEVEL(E)=5
:det(12,RED,BLACK
:If ∟LIVES(E)≥10
:Then
:Output(∟YAXIS(E),∟XAXIS(E),"θ"
:Else
:Output(∟YAXIS(E),∟XAXIS(E),int(∟LIVES(E
:End
:End
:Else
:If D=23
:Then
:ClrHome
:Disp " Pickaxe  Speed Uses Cost"
:Disp "1:Gold      5    10   10"
:Disp "2:Wood      2    20   10"
:Disp "3:Stone     3    30   20"
:Disp "4:Iron      4    40   30"
:Disp "5:Diamond   5    50   40"
:Disp "        INVENTORY"
:Output(10,3,"Hand      1    --"
:Output(10,23,G
:If P≠0
:Then
:Output(8,3,sub(Str1,7P-6,7
:If P=1
:Output(8,13,"5"
:If P≥2
:Output(8,13,P
:Output(8,18,N
:End
:If Q≠0
:Then
:Output(9,3,sub(Str1,7Q-6,7
:If Q=1
:Output(9,13,"5"
:If Q≥2
:Output(9,13,Q
:Output(9,18,10Q
:End
:Repeat D≠0
:getKey→D
:End
:If Q=0
:Then
:If P≠0
:Then
:If D=92 and G≥10
:1→Q
:If D=93 and G≥10
:2→Q
:If D=94 and G≥20
:3→Q
:If D=82 and G≥30
:4→Q
:If D=83 and G≥40
:5→Q
:End
:If P=0
:Then
:If D=92 and G≥10
:1→P
:If D=93 and G≥10
:2→P
:If D=94 and G≥20
:3→P
:If D=82 and G≥30
:4→P
:If D=83 and G≥40
:5→P
:10P→N
:End
:If D=92 and G≥10
:G-10→G
:If D=93 and G≥10
:G-10→G
:If D=94 and G≥20
:G-20→G
:If D=82 and G≥30
:G-30→G
:If D=83 and G≥40
:G-40→G
:End
:ClrHome
:For(S,1,dim(∟WALL
:If ∟WALL(S)≠0
:Then
:int(∟WALL(S)/100)→T
:∟WALL(S)-T*100→U
:sum(T*100+U=∟WALL→R
:If R=5
:det(12,BLACK,BLACK
:If R=4
:det(12,DARKGRAY,DARKGRAY
:If R=3
:det(12,GRAY,GRAY
:If R=2
:det(12,MEDGRAY,MEDGRAY
:If R=1
:det(12,LTGRAY,LTGRAY
:Output(T,U," "
:End
:End
:If Z=0
:det(12,GREEN,WHITE
:If Z=1
:det(12,GREEN,LTGRAY
:If Z=2
:det(12,GREEN,MEDGRAY
:If Z=3
:det(12,GREEN,GRAY
:If Z=4
:det(12,GREEN,DARKGRAY
:If Z=5
:det(12,GREEN,BLACK
:If C≥10
:Then
:Output(A,B,"θ"
:Else
:Output(A,B,int(C
:End
:For(E,1,F
:If ∟LEVEL(E)=0
:det(12,RED,WHITE
:If ∟LEVEL(E)=1
:det(12,RED,LTGRAY
:If ∟LEVEL(E)=2
:det(12,RED,MEDGRAY
:If ∟LEVEL(E)=3
:det(12,RED,GRAY
:If ∟LEVEL(E)=4
:det(12,RED,DARKGRAY
:If ∟LEVEL(E)=5
:det(12,RED,BLACK
:If ∟LIVES(E)≥10
:Then
:Output(∟YAXIS(E),∟XAXIS(E),"θ"
:Else
:Output(∟YAXIS(E),∟XAXIS(E),int(∟LIVES(E
:End
:End
:Else
:A→I
:B→J
:Z→θ
:If D=25 or D=22
:A-1→A
:If D=26 or D=33
:B+1→B
:If D=34 or D=42
:A+1→A
:If D=24 or D=31
:B-1→B
:If A=0
:1→A
:If A=11
:10→A
:If B=0
:1→B
:If B=27
:26→B
:If D≠22 and D≠33 and D≠42 and D≠31
:Then
:For(E,1,F
:If A=∟YAXIS(E) and B=∟XAXIS(E)
:Then
:If Z=∟LEVEL(E
:Then
:If W=0
:0.1→V
:If W=1
:0.2→V
:If W≥2
:W/10→V
:∟LIVES(E)-V→∟LIVES(E
:Y-1→Y
:If Y=0
:Then
:X→W
:0→X
:10W→Y
:End
:End
:If Z≥∟LEVEL(E
:Then
:I→A
:J→B
:End
:End
:End
:If D=32 and Z≤4 and G≥1
:Then
:A*100+B→∟WALL(max(seq(S(0=∟WALL(S)),S,1,dim(∟WALL)
:G-1→G
:Z+1→Z
:Else
:If sum(A*100+B=∟WALL)<Z
:sum(A*100+B=∟WALL)→Z
:End
:If sum(A*100+B=∟WALL)>Z
:Then
:If P=0
:1→V
:If P=1
:5→V
:If P≥2
:P→V
:For(M,1,V
:If sum(A*100+B=∟WALL)>Z
:Then
:If N≠0 or P=0
:Then
:0→∟WALL(max(seq(S(A*100+B=∟WALL(S)),S,1,dim(∟WALL)
:sum(A*100+B=∟WALL→R
:If R=4
:det(12,RED,DARKGRAY
:If R=3
:det(12,RED,GRAY
:If R=2
:det(12,RED,MEDGRAY
:If R=1
:det(12,RED,LTGRAY
:If R=0
:det(12,RED,WHITE
:For(E,1,F
:If A*100+B=∟ENEMY(E
:Then
:If ∟LIVES(E)≥10
:Then
:Output(A,B,"θ"
:Else
:Output(A,B,int(∟LIVES(E
:End
:∟LEVEL(E)-1→∟LEVEL(E
:End
:End
:If max(A*100+B=∟ENEMY)=0
:Output(A,B," "
:G+1→G
:N-1→N
:End
:End
:End
:If N=0
:Then
:Q→P
:0→Q
:10Q→N
:End
:I→A
:J→B
:End
:If C<10 and randInt(0,2)=2
:C+0.05→C
:If Z=0
:det(12,GREEN,WHITE
:If Z=1
:det(12,GREEN,LTGRAY
:If Z=2
:det(12,GREEN,MEDGRAY
:If Z=3
:det(12,GREEN,GRAY
:If Z=4
:det(12,GREEN,DARKGRAY
:If Z=5
:det(12,GREEN,BLACK
:If C≥10
:Then
:Output(A,B,"θ"
:Else
:Output(A,B,int(C
:End
:If A≠I or B≠J
:Then
:If θ=0
:det(12,WHITE,WHITE
:If θ=1
:det(12,LTGRAY,LTGRAY
:If θ=2
:det(12,MEDGRAY,MEDGRAY
:If θ=3
:det(12,GRAY,GRAY
:If θ=4
:det(12,DARKGRAY,DARKGRAY
:If θ=5
:det(12,BLACK,BLACK
:Output(I,J," "
:End
:Else
:If G≥1
:Then
:If max(A*100+B=∟ENEMY) or A=I and B=J
:Then
:Else
:sum(A*100+B=∟WALL→R
:If R≤4
:Then
:A*100+B→∟WALL(max(seq(S(0=∟WALL(S)),S,1,dim(∟WALL)
:If R=4
:det(12,BLACK,BLACK
:If R=3
:det(12,DARKGRAY,DARKGRAY
:If R=2
:det(12,GRAY,GRAY
:If R=1
:det(12,MEDGRAY,MEDGRAY
:If R=0
:det(12,LTGRAY,LTGRAY
:Output(A,B," "
:G-1→G
:End
:End
:End
:I→A
:J→B
:End
:End
:End
:For(E,1,F
:If ∟LIVES(E)=0
:Then
:If ∟ENEMY(E)≠0
:Then
:Output(∟YAXIS(E),∟XAXIS(E)," "
:0→∟YAXIS(E
:0→∟XAXIS(E
:0→∟ENEMY(E
:End
:Else
:∟YAXIS(E→K
:∟XAXIS(E→L
:∟LEVEL(E→θ
:randInt(1,8)→H
:If H=1
:K+1→K
:If H=2
:K-1→K
:If H=3
:L+1→L
:If H=4
:L-1→L
:If H=5
:Then
:If K<A
:K+1→K
:If K>A
:K-1→K
:End
:If H=6
:Then
:If L<B
:L+1→L
:If L>B
:L-1→L
:End
:If K=0
:1→K
:If K=11
:10→K
:If L=0
:1→L
:If L=27
:26→L
:If sum(K*100+L=∟WALL)>∟LEVEL(E
:Then
:If randInt(0,1)=1 and ∟LEVEL(E)≤4 and ∟BLOCK(E)≥1
:Then
:∟ENEMY(E)→∟WALL(max(seq(S(0=∟WALL(S)),S,1,dim(∟WALL)
:∟BLOCK(E)-1→∟BLOCK(E
:∟LEVEL(E)+1→∟LEVEL(E
:Else
:0→∟WALL(max(seq(S(K*100+L=∟WALL(S)),S,1,dim(∟WALL)
:sum(K*100+L=∟WALL→R
:If R=4
:det(12,GREEN,DARKGRAY
:If R=3
:det(12,GREEN,GRAY
:If R=2
:det(12,GREEN,MEDGRAY
:If R=1
:det(12,GREEN,LTGRAY
:If R=0
:det(12,GREEN,WHITE
:If A=K and B=L
:Then
:If C≥10
:Then
:Output(K,L,"θ"
:Else
:Output(K,L,int(C
:End
:Z-1→Z
:Else
:If max(K*100+L=∟ENEMY
:Then
:If R=4
:det(12,RED,DARKGRAY
:If R=3
:det(12,RED,GRAY
:If R=2
:det(12,RED,MEDGRAY
:If R=1
:det(12,RED,LTGRAY
:If R=0
:det(12,RED,WHITE
:For(R,1,F
:If K=∟YAXIS(R) and L=∟XAXIS(R)
:Then
:If ∟LIVES(R)≥10
:Then
:Output(K,L,"θ"
:Else
:Output(K,L,int(∟LIVES(R
:End
:End
:End
:Else
:Output(K,L," "
:End
:End
:∟BLOCK(E)+1→∟BLOCK(E
:End
:∟YAXIS(E→K
:∟XAXIS(E→L
:End
:If A=K and B=L
:Then
:If ∟LEVEL(E)=Z
:C-0.25→C
:∟YAXIS(E→K
:∟XAXIS(E→L
:End
:If max(K*100+L=∟ENEMY
:Then
:∟YAXIS(E→K
:∟XAXIS(E→L
:End
:If sum(K*100+L=∟WALL)<∟LEVEL(E
:sum(K*100+L=∟WALL)→∟LEVEL(E
:If ∟LIVES(E)<10 and randInt(0,2)=2
:∟LIVES(E)+0.05→∟LIVES(E
:If ∟LEVEL(E)=0
:det(12,RED,WHITE
:If ∟LEVEL(E)=1
:det(12,RED,LTGRAY
:If ∟LEVEL(E)=2
:det(12,RED,MEDGRAY
:If ∟LEVEL(E)=3
:det(12,RED,GRAY
:If ∟LEVEL(E)=4
:det(12,RED,DARKGRAY
:If ∟LEVEL(E)=5
:det(12,RED,BLACK
:If ∟LIVES(E)≥10
:Then
:Output(K,L,"θ"
:Else
:Output(K,L,int(∟LIVES(E
:End
:If θ=0
:det(12,WHITE,WHITE
:If θ=1
:det(12,LTGRAY,LTGRAY
:If θ=2
:det(12,MEDGRAY,MEDGRAY
:If θ=3
:det(12,GRAY,GRAY
:If θ=4
:det(12,DARKGRAY,DARKGRAY
:If θ=5
:det(12,BLACK,BLACK
:If K≠∟YAXIS(E) or L≠∟XAXIS(E
:Output(∟YAXIS(E),∟XAXIS(E)," "
:K→∟YAXIS(E
:L→∟XAXIS(E
:K*100+L→∟ENEMY(E
:End
:End
:End
:ClrHome
:det(12,300
:If C≤0
:Disp "You Lose!"
:If max(∟LIVES)≤0
:Disp "You Win!
:If D≠45
:Then
:Pause
:ClrHome
:End
:DelVar ∟WALLDelVar ∟YAXISDelVar ∟XAXISDelVar ∟LIVESDelVar ∟ENEMYDelVar ∟BLOCKDelVar ∟LEVELDelVar Str1DelVar ADelVar BDelVar CDelVar DDelVar EDelVar FDelVar GDelVar HDelVar IDelVar JDelVar KDelVar LDelVar MDelVar NDelVar ODelVar PDelVar QDelVar RDelVar SDelVar TDelVar UDelVar VDelVar WDelVar XDelVar YDelVar ZDelVar θ


Also, what do you think of the name? The first name was Arena Craft, it is now PvP Craft, and assemblybandit suggested Kill Craft in the contest forum.

Here is the beta. I've made no changes on it since the submission to the contest.
http://download1321.mediafire.com/8epiahq866qg/hpcbfgxrhrykpcv/PVPCRAFT.8xp
"Lost" is a bit of a strong word. Smile Comments from the judges included "Loading takes a while, character is not very responsive to key presses.", "Might be better once the game's speed is up by a lot. Right now, too slow to really enjoy.", "The fact it is this far and 'works' is good, hopefully they make progress on making it a better game.", "Creative use of the homescreen and DCS color commands.", "Creative use of grays for third dimension.", and "Needs some adjustment to clarity of gameplay. For example, I often couldn't tell when I was actually striking the enemy, and when I was building/digging." Hopefully that will help you tune it.
KermMartian wrote:
"Lost" is a bit of a strong word. Smile Comments from the judges included "Loading takes a while, character is not very responsive to key presses.", "Might be better once the game's speed is up by a lot. Right now, too slow to really enjoy.", "The fact it is this far and 'works' is good, hopefully they make progress on making it a better game.", "Creative use of the homescreen and DCS color commands.", "Creative use of grays for third dimension.", and "Needs some adjustment to clarity of gameplay. For example, I often couldn't tell when I was actually striking the enemy, and when I was building/digging." Hopefully that will help you tune it.
I agree with all of the comments. I can't even play it past 2 enemies and medium terrain size, even though it's a game in itself to see how long you can last on the slowest settings before you die of boredom Razz. It seems like almost all of the problems above could be fixed by speeding up the program. Do you see anything that I could improve that would cause a major speed increase, or is it stuck in the curse of CSE TI-BASIC slowness?

As for the last comment, I'm going to add an 'animation' for when the player or enemy takes damage in the next update.
Great concept and im sure there is room for optimisation and such. Im sure there are loads of people who are willing to help out with coding ideas.

I for one think you have done a magnificent job, remembering that you knocked this out in just a few days! Smile.
Thanks for the complements tr1p1ea.Smile

KermMartian wrote:
"character is not very responsive to key presses."
With its current speed, I think of the program as a turn based sandbox game. It saves the last key pressed and deciphers it your next turn, creating the illusion that the keys aren't responding. To my knowledge, there isn't much I can do to fix that issue, except, once again, make it faster.Sad
I've sped it up a bit using labels. It's actually playable on the huge maps now.Very Happy The main loop is now reduced down to this:
Code:
:Repeat D=45 or C≤0 or max(∟LIVES)≤0
:getKey→D
:det(12,300
:If D=21
:Goto B
:If D=23
:Goto C
:A→I
:B→J
:Z→θ
:If D=25 or D=22
:A-1→A
:If D=26 or D=33
:B+1→B
:If D=34 or D=42
:A+1→A
:If D=24 or D=31
:B-1→B
:If A=0
:1→A
:If A=11
:10→A
:If B=0
:1→B
:If B=27
:26→B
:If D=22 or D=33 or D=42 or D=31
:Goto F
:If sum(A*100+B=∟WALL)>Z
:Goto E
:If max(A*100+B=∟ENEMY
:Goto D
:Lbl A
:If D=32 and Z≤4 and G≥1
:Then
:A*100+B→∟WALL(max(seq(S(0=∟WALL(S)),S,1,dim(∟WALL)
:G-1→G
:Z+1→Z
:Else
:If sum(A*100+B=∟WALL)<Z
:sum(A*100+B=∟WALL)→Z
:End
:If C<10 and randInt(0,2)=2
:C+0.05→C
:If Z=0
:det(12,GREEN,WHITE
:If Z=1
:det(12,GREEN,LTGRAY
:If Z=2
:det(12,GREEN,MEDGRAY
:If Z=3
:det(12,GREEN,GRAY
:If Z=4
:det(12,GREEN,DARKGRAY
:If Z=5
:det(12,GREEN,BLACK
:If C≥10
:Then
:Output(A,B,"θ"
:Else
:Output(A,B,int(C
:End
:If A≠I or B≠J
:Then
:If θ=0
:det(12,WHITE,WHITE
:If θ=1
:det(12,LTGRAY,LTGRAY
:If θ=2
:det(12,MEDGRAY,MEDGRAY
:If θ=3
:det(12,GRAY,GRAY
:If θ=4
:det(12,DARKGRAY,DARKGRAY
:If θ=5
:det(12,BLACK,BLACK
:Output(I,J," "
:End
:Lbl G
:For(E,1,F
:If ∟LIVES(E)=0
:Then
:If ∟ENEMY(E)≠0
:Then
:Output(∟YAXIS(E),∟XAXIS(E)," "
:0→∟YAXIS(E
:0→∟XAXIS(E
:0→∟ENEMY(E
:End
:Else
:∟YAXIS(E→K
:∟XAXIS(E→L
:∟LEVEL(E→θ
:randInt(1,8)→H
:If H=1
:K+1→K
:If H=2
:K-1→K
:If H=3
:L+1→L
:If H=4
:L-1→L
:If H=5
:Then
:If K<A
:K+1→K
:If K>A
:K-1→K
:End
:If H=6
:Then
:If L<B
:L+1→L
:If L>B
:L-1→L
:End
:If K=0
:1→K
:If K=11
:10→K
:If L=0
:1→L
:If L=27
:26→L
:If sum(K*100+L=∟WALL)>∟LEVEL(E
:Goto I
:If A=K and B=L
:Goto J
:Lbl H
:If max(K*100+L=∟ENEMY
:Then
:∟YAXIS(E→K
:∟XAXIS(E→L
:End
:If sum(K*100+L=∟WALL)<∟LEVEL(E
:sum(K*100+L=∟WALL)→∟LEVEL(E
:If ∟LIVES(E)<10 and randInt(0,2)=2
:∟LIVES(E)+0.05→∟LIVES(E
:If ∟LEVEL(E)=0
:det(12,RED,WHITE
:If ∟LEVEL(E)=1
:det(12,RED,LTGRAY
:If ∟LEVEL(E)=2
:det(12,RED,MEDGRAY
:If ∟LEVEL(E)=3
:det(12,RED,GRAY
:If ∟LEVEL(E)=4
:det(12,RED,DARKGRAY
:If ∟LEVEL(E)=5
:det(12,RED,BLACK
:If ∟LIVES(E)≥10
:Then
:Output(K,L,"θ"
:Else
:Output(K,L,int(∟LIVES(E
:End
:If θ=0
:det(12,WHITE,WHITE
:If θ=1
:det(12,LTGRAY,LTGRAY
:If θ=2
:det(12,MEDGRAY,MEDGRAY
:If θ=3
:det(12,GRAY,GRAY
:If θ=4
:det(12,DARKGRAY,DARKGRAY
:If θ=5
:det(12,BLACK,BLACK
:If K≠∟YAXIS(E) or L≠∟XAXIS(E
:Output(∟YAXIS(E),∟XAXIS(E)," "
:K→∟YAXIS(E
:L→∟XAXIS(E
:K*100+L→∟ENEMY(E
:End
:End
:End

Even with the new improved speed, having more than one enemy is still unbearable. Any ideas?
I've compacted the the player part of the code and the enemy part into one single section. I'm currently working on bug-fixing the bug-filled code. The new code format will make adding new features much easier, such as support for older calculators and multiplayer. Also, I want to add cross-platform multiplayer, if that's even possible. Right now the only problem is that I only own one calculator, so it will be more hit and miss, unless there is an emulator that can act as 2 calculators linking with each other (jsTIfield suggestion Wink).
Version 0.11 released, adding a new reformatted code, fixing bugs and increasing speed a bit, and improved menus and stores. Now I start working on multiplayer and monochrome capability, after I get a better understanding of monochrome calculators and linking.
FrozenFire49 wrote:
I've sped it up a bit using labels. It's actually playable on the huge maps now.Very Happy The main loop is now reduced down to this:
If you don't mind, some random optimizations that jump out at me:

First, a bit of a standard four-direction key thing I try to use in some form or another in the programs that require it:

Code:
:If D=25 or D=22
:A-1→A
:If D=26 or D=33
:B+1→B
:If D=34 or D=42
:A+1→A
:If D=24 or D=31
:B-1→B
:If A=0
:1→A
:If A=11
:10→A
:If B=0
:1→B
:If B=27
:26→B
to
Code:
A-(A≠0)(D=25 or D=22)+(A≠10)(D=34 or D=42→A
B-(B≠0)(D=26 or D=33)+(B≠26)(D=24 or D=31→B


- A*100 can be written as AE2 to save two bytes, where E is the small E meaning "*10^".
- Numbers like 0.05 can be written as .05 to save a byte.
- Statements like "If C<10 and randInt(0,2)=2" can be rearranged to save a byte: "If C<10 and 2=randInt(0,2"

Compress:

Code:
:If Z=0
:det(12,GREEN,WHITE
:If Z=1
:det(12,GREEN,LTGRAY
:If Z=2
:det(12,GREEN,MEDGRAY
:If Z=3
:det(12,GREEN,GRAY
:If Z=4
:det(12,GREEN,DARKGRAY
:If Z=5
:det(12,GREEN,BLACK
to
Code:
{WHITE,LTGRAY,MEDGRAY,GRAY,DARKGRAY
:det(12,GREEN,1+Ans(Z


In a similar vein, you can compress

Code:
:If θ=0
:det(12,WHITE,WHITE
:If θ=1
:det(12,LTGRAY,LTGRAY
:If θ=2
:det(12,MEDGRAY,MEDGRAY
:If θ=3
:det(12,GRAY,GRAY
:If θ=4
:det(12,DARKGRAY,DARKGRAY
:If θ=5
:det(12,BLACK,BLACK
to
Code:
{WHITE,LTGRAY,MEDGRAY,GRAY,DARKGRAY
det(12,Ans(Z),Ans(Z


None of this will help you too much with speed, but at least you'll be able to shrink a lot of lines out of it.
Version 0.2 is released. Using the above suggestions and other techniques, I've doubled the loading speed and game speed since the first release. The newest update also adds water, obsidian, ender crystals, saving, and mining downwards.

I've decided that I won't convert this game to monochrome because it heavily relies on color features, but I'm still going to add multiplayer in a future update.
FrozenFire49 wrote:
Version 0.2 is released. Using the above suggestions and other techniques, I've doubled the loading speed and game speed since the first release. The newest update also adds water, obsidian, ender crystals, saving, and mining downwards.

I've decided that I won't convert this game to monochrome because it heavily relies on color features, but I'm still going to add multiplayer in a future update.
Very exciting! Keep up the good work, and feel free to continue to ask if you want help optimizing sections of code you think could be faster or smaller. I look forward to trying this new update.
Thanks, here's the code. Any help is appreciated. The code is too large to fit in one segment.
Code:
::DCS
:"FFF0000000000888FD0F000000008918F0D0F000000891980F0D0F000089198000F0D0F008919800000F0D0F891980
000088F0D89198FF0000818F89198FEF000008189198FDF000000818198DFDF00000008188FFDF0000000778118DF770
000077708818077700887700FF880077FF8180000000000FEF8880000000000FFF
:If 80>det([[20
:Then
:Disp "Doors CSE Required
:Return
:End
:SetUpEditor ∟CRAFT
:340→dim(∟CRAFT
:Archive∟CRAFT
:Lbl 12
:DelVar ∟WALLDelVar ∟YAXISDelVar ∟XAXISDelVar ∟LIVESDelVar ∟PLACEDelVar ∟BLOCKDelVar ∟LEVELDelVar ∟COLORDelVar Str1DelVar ADelVar BDelVar CDelVar DDelVar EDelVar FDelVar GDelVar HDelVar IDelVar JDelVar KDelVar LDelVar MDelVar NDelVar ODelVar PDelVar QDelVar RDelVar SDelVar TDelVar UDelVar VDelVar WDelVar XDelVar YDelVar ZDelVar θ
:ClrHome
:Menu("        PvP Craft         ","New Game",13,"Load Game",18,"Controls",14,"Help",M,"Quit",15
:Lbl 14
:ClrHome
:Output(1,1,"Arrows:Move/Mine/Attack
:Output(2,1,"MODE,STAT,APPS,ALPHA:Place
:Output(3,1,"XTθn:Jump,Place
:Output(4,1,"VARS:Mine Downward
:Output(5,1,"2ND:Sword Store
:Output(6,1,"DEL:Pickaxe Store
:Output(7,1,"CLEAR:Pause Game
:Repeat D
:getKey→D
:End
:Goto 12
:Lbl M
:Output(1,1,"Gray:Land
:Output(2,6,"Darker=Higher
:Output(3,1,"Blue:Water
:Output(4,6,"Darker=Deeper
:Output(5,1,"Magenta:Obsidian
:Output(6,6,"High Value
:Output(7,6,"Diamond Pick Required
:Output(8,1,"Orange:Ender Crystal
:Output(9,6,"Heals Enemies
:Output(10,6,"Pickaxe Required
:Repeat D
:getKey→D
:End
:Goto 12
:Lbl 15
:SetUpEditor
:Return
:Lbl 13
:Menu("    Number Of Enemies     ","One (Fastest)",6,"Two",7,"Three",8,"Four",9,"Five (Slowest)",10,"Random",16,"Back",12
:Lbl 16
:randInt(2,6→F
:Goto 11
:Lbl 6
:2→F
:Goto 11
:Lbl 7
:3→F
:Goto 11
:Lbl 8
:4→F
:Goto 11
:Lbl 9
:5→F
:Goto 11
:Lbl 10
:6→F
:Lbl 11
:F→dim(∟YAXIS
:F→dim(∟XAXIS
:F→dim(∟LIVES
:F→dim(∟PLACE
:F→dim(∟BLOCK
:F→dim(∟LEVEL
:For(E,1,F
:10→∟LIVES(E
:End
:296→dim(∟WALL
:Menu("       Terrain Size       ","Tiny",1,"Small",2,"Medium",3,"Large",4,"Huge",5,"Random",17,"Back",13
:Lbl 17
:randInt(51,800→M
:Goto 0
:Lbl 1
:randInt(201,300→M
:Goto 0
:Lbl 2
:randInt(301,400→M
:Goto 0
:Lbl 3
:randInt(401,500→M
:Goto 0
:Lbl 4
:randInt(501,600→M
:Goto 0
:Lbl 5
:randInt(601,700→M
:Lbl 0
:{NAVY,BLUE,LTBLUE,WHITE,LTGRAY,MEDGRAY,GRAY,DARKGRAY,BLACK,MAGENTA,ORANGE→∟COLOR
:ClrHome
:Fill(‾1,∟WALL
:det(12,WHITE,LTBLUE
:Output(1,1,"                                                                                                                                                                                                                                                                   
:randInt(1,10→P
:randInt(1,26→Q
:For(N,1,M
:Repeat R<7 and (R<5 or 12=randInt(12,3R
:randInt(1,4→O
:P-(P≠1 and O=1)+(P≠10 and O=2→P
:Q-(Q≠1 and O=3)+(Q≠26 and O=4→Q
:27P+Q→A
:∟WALL(A→R
:End
:If R=6
:K+1→K
:det(12,WHITE,∟COLOR(R+5
:Output(P,Q,"
:R+1→∟WALL(A
:End
:randInt(1,10→P
:randInt(1,26→Q
:int(rand.2(1000-M→D
:For(N,1,D
:Repeat R>‾3
:randInt(1,4→O
:P-(P≠1 and O=1)+(P≠10 and O=2→P
:Q-(Q≠1 and O=3)+(Q≠26 and O=4→Q
:27P+Q→A
:∟WALL(A→R
:End
:det(12,WHITE,∟COLOR(R+3
:Output(P,Q,"
:R-1→∟WALL(A
:End
:DelVar PDelVar QDelVar NDelVar MDelVar D
:det(12,300
:For(E,1,F
:Repeat sum(∟PLACE(E)=∟PLACE)=1 and ∟WALL(∟PLACE(E))≤5 and 0≤∟WALL(∟PLACE(E
:randInt(1,10→∟YAXIS(E
:randInt(1,26→∟XAXIS(E
:27∟YAXIS(E)+∟XAXIS(E→∟PLACE(E
:∟WALL(∟PLACE(E→∟LEVEL(E
:End
:End
:For(E,1,F
:If E=1
:Then
:det(12,GREEN,∟COLOR(∟LEVEL(1)+4
:Else
:det(12,RED,∟COLOR(∟LEVEL(E)+4
:End
:Output(∟YAXIS(E),∟XAXIS(E),"θ
:End
:Goto I
:Lbl 18
:UnArchive∟CRAFT
:If 0=∟CRAFT(340
:Goto 12
:Disp "Loading...
:For(I,1,296
:∟CRAFT(I→∟WALL(I
:End
:∟CRAFT(297→F
:∟CRAFT(298→W
:∟CRAFT(299→X
:∟CRAFT(300→Y
:∟CRAFT(301→N
:∟CRAFT(302→P
:∟CRAFT(303→Q
:∟CRAFT(304→K
:For(I,1,F
:∟CRAFT(I+304→∟YAXIS(I
:∟CRAFT(I+310→∟XAXIS(I
:∟CRAFT(I+316→∟LIVES(I
:∟CRAFT(I+322→∟PLACE(I
:∟CRAFT(I+328→∟BLOCK(I
:∟CRAFT(I+334→∟LEVEL(I
:End
:{NAVY,BLUE,LTBLUE,WHITE,LTGRAY,MEDGRAY,GRAY,DARKGRAY,BLACK,MAGENTA,ORANGE→∟COLOR
:Lbl O
:ClrHome
:For(S,28,296
:If S/27≠int(S/27
:Then
:int(S/27→T
:S-27T→U
:∟WALL(S→R
:det(12,WHITE,∟COLOR(R+4
:Output(T,U,"
:End
:End
:For(I,1,F
:If ∟PLACE(I
:Then
:If I=1
:Then
:det(12,GREEN,∟COLOR(∟LEVEL(1)+4
:Else
:det(12,RED,∟COLOR(∟LEVEL(I)+4
:End
:If 10≤∟LIVES(I
:Then
:Output(∟YAXIS(I),∟XAXIS(I),"θ
:Else
:Output(∟YAXIS(I),∟XAXIS(I),int(∟LIVES(I
:End
:End
:End
:Archive∟CRAFT
:Lbl I
:"Gold   Wood   Stone  Iron   Diamond→Str1
:Repeat ∟LIVES(1)≤0 or sum(0≥∟LIVES)=F-1
:For(E,1,F
:DelVar D
:DelVar H
:If 0≥∟LIVES(E
:Then
:If ∟PLACE(E
:Then
:det(12,RED,∟COLOR(∟LEVEL(E)+4
:Output(∟YAXIS(E),∟XAXIS(E),"
:0→∟YAXIS(E
:0→∟XAXIS(E
:0→∟PLACE(E
:End
:Else
:If E>1
:randInt(1,8→H
:If E=1
:getKey→D
:det(12,300
:∟BLOCK(E→G
:If D=45
:Goto P
:If D=21
:Goto B
:If D=23
:Goto C
:∟YAXIS(E→A
:∟XAXIS(E→B
:∟LIVES(E→C
:∟LEVEL(E→Z
:A-(A≠1)(D=25 or D=22 or H=1 or (H=5 and A>∟YAXIS(1)) or (H=6 and B=∟XAXIS(1) and A>∟YAXIS(1)))+(A≠10)(D=34 or D=42 or H=2 or (H=5 and A<∟YAXIS(1)) or (H=6 and B=∟XAXIS(1) and A<∟YAXIS(1→A
:B-(B≠1)(D=24 or D=31 or H=3 or (H=6 and B>∟XAXIS(1)) or (H=5 and ∟YAXIS(E)=∟YAXIS(1) and B>∟XAXIS(1)))+(B≠26)(D=26 or D=33 or H=4 or (H=6 and B<∟XAXIS(1)) or (H=5 and ∟YAXIS(E)=∟YAXIS(1) and B<∟XAXIS(1→B
:27A+B→J
:If D=22 or D=33 or D=42 or D=31
:Goto F
:If Z<∟WALL(J
:Goto E
:If max(J=∟PLACE) and J≠∟PLACE(E
:Goto D
:If 0>∟WALL(J
:Then
:If E>1 and G≥1 and randInt(0,1
:Then
:∟WALL(J→R
:R+1→∟WALL(J
:det(12,WHITE,∟COLOR(R+5
:Output(A,B,"
:G-1→G
:End
:∟YAXIS(E→A
:∟XAXIS(E→B
:27A+B→J
:End
:If D=44 and Z≥1
:Then
:∟WALL(J)-1→∟WALL(J
:G+1→G
:Z-1→Z
:End
:Lbl A
:If D=32 and Z≤4 and G≥1
:Then
:∟WALL(J)+1→∟WALL(J
:G-1→G
:Z+1→Z
:Else
:If Z>∟WALL(J
:∟WALL(J→Z
:End
:If C<10 and 2=randInt(0,2
:C+.05→C
:If E>1 and C<10
:Then
:For(I,1,K
:If C<10 and randInt(0,1
:C+0.05→C
:End
:End
:If E=1
:Then
:det(12,GREEN,∟COLOR(Z+4
:Else
:det(12,RED,∟COLOR(Z+4
:End
:If C≥10
:Then
:Output(A,B,"θ
:Else
:Output(A,B,int(C
:End
:If A≠∟YAXIS(E) or B≠∟XAXIS(E
:Then
:det(12,GREEN,∟COLOR(∟LEVEL(E)+4
:Output(∟YAXIS(E),∟XAXIS(E),"
:End
:Lbl G
:A→∟YAXIS(E
:B→∟XAXIS(E
:C→∟LIVES(E
:Z→∟LEVEL(E
:J→∟PLACE(E
:Lbl H
:G→∟BLOCK(E
:End
:End
:End
:Lbl L
:ClrHome
:det(12,300
:If 0≥∟LIVES(1
:Disp "You Lose!
:If sum(0≥∟LIVES)=F-1 and 0<∟LIVES(1
:Disp "You Win!
:Pause
:ClrHome
:Goto 12
:Lbl P
:DelVar D
:ClrHome
:Menu("        Pause Menu        ","Return",O,"Sword Store",B,"Pickaxe Store",C,"Save And Exit",N,"Exit Without Saving",12
:Lbl N
:UnArchive∟CRAFT
:Disp "Saving...
:For(I,1,296
:∟WALL(I→∟CRAFT(I
:End
:F→∟CRAFT(297
:W→∟CRAFT(298
:X→∟CRAFT(299
:Y→∟CRAFT(300
:N→∟CRAFT(301
:P→∟CRAFT(302
:Q→∟CRAFT(303
:K→∟CRAFT(304
:For(I,1,F
:∟YAXIS(I→∟CRAFT(I+304
:∟XAXIS(I→∟CRAFT(I+310
:∟LIVES(I→∟CRAFT(I+316
:∟PLACE(I→∟CRAFT(I+322
:∟BLOCK(I→∟CRAFT(I+328
:∟LEVEL(I→∟CRAFT(I+334
:End
:1→∟CRAFT(340
:Archive∟CRAFT
:Goto 12

Code:
:Lbl B
:ClrHome
:Disp " Sword   Damage Uses Cost
:Disp "1:Gold      2    10   05
:Disp "2:Wood      2    20   10
:Disp "3:Stone     3    30   20
:Disp "4:Iron      4    40   30
:Disp "5:Diamond   5    50   40
:Disp "        INVENTORY
:Output(10,3,"Hand      1    --
:Lbl J
:Output(10,23,"   
:Output(10,23,G
:If W
:Then
:Output(8,3,sub(Str1,7W-6,7
:If W=1
:Output(8,13,"2
:If W≥2
:Output(8,13,W
:Output(8,18,Y
:End
:If X
:Then
:Output(9,3,sub(Str1,7X-6,7
:If X=1
:Output(9,13,"2
:If X≥2
:Output(9,13,X
:Output(9,18,10X
:End
:Repeat D
:getKey→D
:End
:If X=0
:Then
:If W
:Then
:If D=92 and G≥5
:1→X
:If D=93 and G≥10
:2→X
:If D=94 and G≥20
:3→X
:If D=82 and G≥30
:4→X
:If D=83 and G≥40
:5→X
:Else
:If D=92 and G≥5
:1→W
:If D=93 and G≥10
:2→W
:If D=94 and G≥20
:3→W
:If D=82 and G≥30
:4→W
:If D=83 and G≥40
:5→W
:10W→Y
:End
:If D=92 and G≥5
:G-5→G
:If D=93 and G≥10
:G-10→G
:If D=94 and G≥20
:G-20→G
:If D=82 and G≥30
:G-30→G
:If D=83 and G≥40
:G-40→G
:End
:If max(D={92,93,94,82,83
:Goto J
:If D=23
:Goto C
:If D=45
:Goto P
:ClrHome
:For(S,28,296
:If S/27≠int(S/27
:Then
:int(S/27→T
:S-27T→U
:∟WALL(S→R
:det(12,WHITE,∟COLOR(R+4
:Output(T,U,"
:End
:End
:For(I,1,F
:If ∟PLACE(I
:Then
:If I=1
:Then
:det(12,GREEN,∟COLOR(∟LEVEL(1)+4
:Else
:det(12,RED,∟COLOR(∟LEVEL(I)+4
:End
:If 10≤∟LIVES(I
:Then
:Output(∟YAXIS(I),∟XAXIS(I),"θ
:Else
:Output(∟YAXIS(I),∟XAXIS(I),int(∟LIVES(I
:End
:End
:End
:Goto H
:Lbl C
:ClrHome
:Disp " Pickaxe  Speed Uses Cost
:Disp "1:Gold      5    10   10
:Disp "2:Wood      2    20   10
:Disp "3:Stone     3    30   20
:Disp "4:Iron      4    40   30
:Disp "5:Diamond   5    50   40
:Disp "        INVENTORY
:Output(10,3,"Hand      1    --
:Lbl K
:Output(10,23,"   
:Output(10,23,G
:If P
:Then
:Output(8,3,sub(Str1,7P-6,7
:If P=1
:Output(8,13,"5
:If P≥2
:Output(8,13,P
:Output(8,18,N
:End
:If Q
:Then
:Output(9,3,sub(Str1,7Q-6,7
:If Q=1
:Output(9,13,"5
:If Q≥2
:Output(9,13,Q
:Output(9,18,10Q
:End
:Repeat D
:getKey→D
:End
:If Q=0
:Then
:If P
:Then
:If D=92 and G≥10
:1→Q
:If D=93 and G≥10
:2→Q
:If D=94 and G≥20
:3→Q
:If D=82 and G≥30
:4→Q
:If D=83 and G≥40
:5→Q
:Else
:If D=92 and G≥10
:1→P
:If D=93 and G≥10
:2→P
:If D=94 and G≥20
:3→P
:If D=82 and G≥30
:4→P
:If D=83 and G≥40
:5→P
:10P→N
:End
:If D=92 and G≥10
:G-10→G
:If D=93 and G≥10
:G-10→G
:If D=94 and G≥20
:G-20→G
:If D=82 and G≥30
:G-30→G
:If D=83 and G≥40
:G-40→G
:End
:If max(D={92,93,94,82,83
:Goto K
:If D=21
:Goto B
:If D=45
:Goto P
:ClrHome
:For(S,28,296
:If S/27≠int(S/27
:Then
:int(S/27→T
:S-27T→U
:∟WALL(S→R
:det(12,WHITE,∟COLOR(R+4
:Output(T,U,"
:End
:End
:For(I,1,F
:If ∟PLACE(I
:Then
:If I=1
:Then
:det(12,GREEN,∟COLOR(∟LEVEL(1)+4
:Else
:det(12,RED,∟COLOR(∟LEVEL(I)+4
:End
:If 10≤∟LIVES(I
:Then
:Output(∟YAXIS(I),∟XAXIS(I),"θ
:Else
:Output(∟YAXIS(I),∟XAXIS(I),int(∟LIVES(I
:End
:End
:End
:Goto H
:Lbl D
:For(I,1,F
:If A=∟YAXIS(I) and B=∟XAXIS(I
:Then
:If Z=∟LEVEL(I) and (E=1 or I=1
:Then
:If E=1
:Then
:If W=0
:.1→V
:If W=1
:.2→V
:If W≥2
:W/10→V
:Else
:.25→V
:End
:∟LIVES(I)-V→∟LIVES(I
:det(12,BROWN,RED
:If 0≥∟LIVES(I
:Then
:Output(A,B,"O
:Else
:Output(A,B,int(∟LIVES(I
:End
:If I=1
:Then
:det(12,GREEN,∟COLOR(∟LEVEL(1)+4
:Else
:det(12,RED,∟COLOR(∟LEVEL(I)+4
:End
:If E=1
:Then
:Y-1→Y
:If Y=0
:Then
:X→W
:0→X
:10W→Y
:End
:End
:If 0<∟LIVES(I
:Output(A,B,int(∟LIVES(I
:End
:If Z≥∟LEVEL(I
:Then
:∟YAXIS(E→A
:∟XAXIS(E→B
:27A+B→J
:End
:F→I
:End
:End
:Goto A
:Lbl E
:If E=1 or Z=5 or G=0 or randInt(0,1
:Then
:If P=0 or E>1
:1→V
:If P=1 and E=1
:5→V
:If P≥2 and E=1
:P→V
:For(M,1,V
:∟WALL(J→R
:If R>Z and (N or P=0 or E>1
:Then
:If R≥6
:Then
:If E=1 and P≥1 and R≥6
:Then
:If R=6 and P=5
:Then
:det(12,WHITE,BLACK
:Output(A,B,"
:G+3→G
:N-1→N
:5→∟WALL(J
:End
:If R=7 and P≥1
:Then
:det(12,WHITE,MAGENTA
:Output(A,B,"
:K-1→K
:N-1→N
:6→∟WALL(J
:End
:Else
:det(12,WHITE,∟COLOR(R+4
:End
:V→M
:Else
:∟WALL(J)-1→∟WALL(J
:If J=∟PLACE(1
:Then
:det(12,GREEN,∟COLOR(R+3
:Else
:det(12,RED,∟COLOR(R+3
:End
:For(I,1,F
:If J=∟PLACE(I
:Then
:If 10≤∟LIVES(I
:Then
:Output(∟YAXIS(I),∟XAXIS(I),"θ
:Else
:Output(∟YAXIS(I),∟XAXIS(I),int(∟LIVES(I
:End
:∟LEVEL(I)-1→∟LEVEL(I
:End
:End
:If 0=max(J=∟PLACE
:Output(A,B,"
:G+1→G
:If E=1
:N-1→N
:End
:End
:End
:If N=0
:Then
:Q→P
:0→Q
:10Q→N
:End
:Else
:32→D
:End
:∟YAXIS(E→A
:∟XAXIS(E→B
:27A+B→J
:Goto A
:Lbl F
:If G≥1
:Then
:If max(J=∟PLACE
:Then
:Else
:∟WALL(J→R
:If R≤4
:Then
:R+1→∟WALL(J
:det(12,WHITE,∟COLOR(R+5
:Output(A,B,"
:G-1→G
:End
:End
:End
:∟YAXIS(E→A
:∟XAXIS(E→B
:27A+B→J
:Goto G

Edit:
Corrected the code for v0.21, which fixes a bug that occurred when the terrain is reloading after closing a menu, and changed the value of obsidian and the healing rate of the crystals.
I plan on adding sand in the next update, and when it gets exposed to water, it floods over. I've just came up with the code for the flooding, and it seems like it would run slowly, so I would like it to be optimized before implemented into the actual code. As well as being optimized, I would also like it to have a more random/natural pattern. The sand is at level -1 and the shallow water is at level -2.
Code:
:If ‾1=∟WALL(J   //Checks if new location can be flooded
:Then
:DelVar ∟WATER
:1→dim(∟WATER

:If 270>J   //checks if there is water around the location
:Then
:If ‾2≥∟WALL(J+27
:1→∟WATER(1
:End
:If 27<J
:Then
:If ‾2≥∟WALL(J-27
:1→∟WATER(1
:End
:If (J+1)/27≠int((J+1)/27
:Then
:If ‾2≥∟WALL(J+1
:1→∟WATER(1
:End
:If (J-1)/27≠int((J-1)/27
:Then
:If ‾2≥∟WALL(J-1
:1→∟WATER(1
:End
:If ∟WATER(1
:Then
:DelVar L
:J→∟WATER(1

:Repeat L=dim(∟WATER   //adds surrounding locations to the flood zone if they qualify
:L+1→L
:If 270>∟WATER(L
:Then
:If ‾1=∟WALL(27+∟WATER(L
:Then
:1+dim(∟WATER→dim(∟WATER
:27+∟WATER(L→∟WATER(dim(∟WATER
:End
:End
:If 27<∟WATER(L
:Then
:If ‾1=∟WALL(‾27+∟WATER(L
:Then
:1+dim(∟WATER→dim(∟WATER
:‾27+∟WATER(L→∟WATER(dim(∟WATER
:End
:End
:If (∟WATER(L)+1)/27≠int((∟WATER(L)+1)/27
:Then
:If ‾1=∟WALL(1+∟WATER(L
:Then
:1+dim(∟WATER→dim(∟WATER
:1+∟WATER(L→∟WATER(dim(∟WATER
:End
:End
:If (∟WATER(L)-1)/27≠int((∟WATER(L)-1)/27
:Then
:If ‾1=∟WALL(‾1+∟WATER(L
:Then
:1+dim(∟WATER→dim(∟WATER
:‾1+∟WATER(L→∟WATER(dim(∟WATER
:End
:End

:‾2→∟WALL(∟WATER(L   //floods the current location
:int(∟WATER(L)/27→T
:‾27T+∟WATER(L)→U
:If ∟WATER(L)=∟PLACE(1
:Then
:det(12,GREEN,LTBLUE
:Else
:det(12,RED,LTBLUE
:End
:For(I,1,F
:If ∟WATER(L)=∟PLACE(I
:Then
:If 10≤∟LIVES(I
:Then
:Output(T,U,"θ
:Else
:Output(T,U,int(∟LIVES(I
:End
:End
:End
:If 0=max(∟PLACE=∟WATER(L
:Output(T,U,"
:End
:End
:End

Edit:
Added descriptions to the code

Edit 2:
Fixes the code
I think I fixed the flooding, but I can't run it because I get a memory error, even if I reset the RAM. I could get rid of ∟WATER, but I don't know an equally fast way to do 0=max(R=∟WATER by using ∟YWATR and ∟XWATR.
Code:
:T-(T>1 and 1=∟RAND1(I))+(T<10 and 2=∟RAND1(I→M
:U-(U>1 and 3=∟RAND1(I))+(U<26 and 4=∟RAND1(I→N
:27M+N→R
:If ‾1=∟WALL(R) and 0=max(R=∟WATER
:Then
:P+1→P
:M→∟YWATR(P
:N→∟XWATR(P
:R→∟WATER(P
:End

Edit: I've removed the X and Y list and kept the main WATER list.

How much would switching the list which have 27Y+X (WALL and WATER lists) to matrices benefit the program in speed and size?
Sorry about all of the questions, but here's a somewhat informative post about the future of this project.

Here is a list for what's going to be in the next update. I admit that it's mainly a to-do list for myself, but I'll post it so everyone knows its progress.

Code:
[X] Sand
    [X] Water is able to flood over the sand
[X] User selectable starting terrain height
[X] Drowning
[X] Fall damage
[\] Inventory
    [X] Switching tools
    [\] Selling tools for half the durability
[ ] TNT
[ ] Flint and Steel
[ ] Armor
[\] Potions
    [ ] Harming/Poison
    [ ] Healing/Regeneration
    [ ] Strength
    [ ] Weakness
    [ ] Swiftness/Haste
    [ ] Slowness
[\] Enchantments
    [ ] Sharpness (Swords)
    [X] Efficiency (Pickaxes)
    [ ] Protection (Armor)
    [\] Unbreaking (Swords, Pickaxes, Armor, Flint and Steel)
    [ ] Flame (Swords, Flint and Steel)
    [X] Fortune (Pickaxes)
    [ ] Blast Protection (Chestplates)
    [ ] Fire Protection (Leggings)
    [ ] Respiration (Helmet)
    [ ] Feather falling (Boots)
    [ ] Potency (Potions)
    [ ] Extension (Potions)
[X]Map Creator and Editor
[ ] Fix bugs
    [X] Water sometimes doesn't flood properly
    [X] Split program up into smaller programs (limited RAM)
FUTURE UPDATES
- Sound Effects using amihart's NoteMan program
    - Mario Sounds
        - Starting
        - Purchasing
        - Winning
        - Losing
    - Other?
- Combining Tools
- Fog
- Status Editor
- Netherrack
- Placeable Obsidian
This game is actually pretty addictive. The most addictive and fun game I've tried so far.

The first game I tried was random enemies (I think 5) and the largest world. It's a little slow, but that doesn't make it any less fun. I'm really enjoying it.

I hope you continue to develop this for a long time. You're doing an amazing job.
Thank you, and I will continue development on it. I do regret that it is slower with more enemies, but it is a calculator after all. If you have any suggestions, feel free to post them.
I'll try and come up with some ideas, once I've played it a bit more.

The slowness really isn't that big of a problem, in my opinion. It makes it kinda relaxing.
Is this project dying? Sad I really am looking forward to a post of "no, it's not," but its fine if it isn't. I have kind of been editing the code a little for things like color, graphics, etc and I made a new icon for it that I think looks a lot better.

idk how to add code, but if you reply, in any way, I can post the new icon. Oh, and I think the name "Blokker" or "Blokkor" would work for a new name. Thanks!

Very Happy

Oh, and, *SUPER BUMP*
Unfortunately, it has unofficially been halted for a long time now. Honestly, I got about halfway through the major update, and I got distracted with other stuff (like Cemetech's MC server), and I got tired of the constant memory errors, even after I split it up in 5 separate programs and optimized them.
I will try to continue the project and implement any changes that you see fit. If worse comes to worse, here is the code for someone else to continue, but for now, it would be very helpful if others could be bug testers. But I warn you, there is a lot of incomplete stuff and bugs, and it takes almost an entirely cleared RAM to play.

Download

PVPCRAFT
Code:
:DCS
"FFF0000000000888FDBF000000008918FBDBF000000891980FBDBF000089198000FBDBF008919800000FBDBF891980000088FBD89198FF0000818F89198FEF000008189198FDF000000818198DFDF00000008188FFDF0000000778118DF770000077708818077700887700FF880077FF8180000000000FEF8880000000000FFF
If 80>det([[20
Then
Disp "Doors CSE Required
Return
End
det(11,1,0
SetUpEditor |LCRAFT
422->dim(|LCRAFT
Archive |LCRAFT
"Gold   Wood   Stone  Iron   Diamond->Str1
"Gold   LeatherChain  Iron   Diamond->Str2
"Healing  Harming  Strength Weakness SwiftnessSlowness TNT      Match    ->Str3
{NAVY,BLUE,LTBLUE,YELLOW,WHITE,LTGRAY,MEDGRAY,GRAY,DARKGRAY,BLACK,MAGENTA,ORANGE->|LCOLOR
Lbl 12
DelVar |LWALLDelVar |LYAXISDelVar |LXAXISDelVar |LLIVESDelVar |LPLACEDelVar |LBLOCKDelVar |LLEVELDelVar |LTOOLSDelVar ADelVar BDelVar CDelVar DDelVar EDelVar FDelVar GDelVar HDelVar IDelVar JDelVar KDelVar LDelVar MDelVar NDelVar ODelVar PDelVar QDelVar RDelVar SDelVar TDelVar UDelVar VDelVar WDelVar XDelVar YDelVar ZDelVar theta
ClrHome
Menu("        PvP Craft         ","New Game",13,"Load Game",18,"Map Editor",26,"Controls",14,"Help",M,"Quit",15
Lbl 14
ClrHome
Output(1,1,"Arrows:Move/Mine/Attack
Output(2,1,"MODE,STAT,APPS,ALPHA:Place
Output(3,1,"PRGM,TAN,(,SIN:Use Item
Output(3,1,"XTthetan:Jump,Place
Output(4,1,"VARS:Mine Downward
Output(5,1,"2ND:Sword Shop
Output(6,1,"DEL:Pickaxe Shop
Output(7,1,"MATH:Armor Shop
Output(7,1,"^:Inventory
Output(8,1,"CLEAR:Pause Game
Repeat D
getKey->D
End
Goto 12
Lbl M
Output(1,1,"Gray:Land
Output(2,6,"Darker=Higher
Output(3,1,"Blue:Water
Output(4,6,"Darker=Deeper
Output(5,1,"Magenta:Obsidian
Output(6,6,"High Value
Output(7,6,"Diamond Pick Required
Output(8,1,"Orange:Ender Crystal
Output(9,6,"Heals Enemies
Output(10,6,"Pickaxe Required
Repeat D
getKey->D
End
Goto 12
Lbl 15
DelVar Str1DelVar Str2DelVar Str3DelVar |LCOLORDelVar |LRAND
SetUpEditor
Return
Lbl 13
Menu("    Number Of Enemies     ","One (Fastest)",6,"Two",7,"Three",8,"Four",9,"Five (Slowest)",10,"Random",16,"Back",12
Lbl 16
randInt(2,6->F
Goto 11
Lbl 6
2->F
Goto 11
Lbl 7
3->F
Goto 11
Lbl 8
4->F
Goto 11
Lbl 9
5->F
Goto 11
Lbl 10
6->F
Lbl 11
F->dim(|LYAXIS
F->dim(|LXAXIS
F->dim(|LLIVES
F->dim(|LPLACE
F->dim(|LBLOCK
F->dim(|LLEVEL
For(E,1,F
10->|LLIVES(E
End
296->dim(|LWALL
87->dim(|LTOOLS
Menu("     Starting Terrain     ","Deep Water",21,"Shallow Water",22,"Sand",23,"Low Land",24,"High Land",25,"Back",13
Lbl 21
Fill(~3,|LWALL
Goto 20
Lbl 22
Fill(~2,|LWALL
Goto 20
Lbl 23
Fill(~1,|LWALL
Goto 20
Lbl 24
Fill(0,|LWALL
Goto 20
Lbl 25
Fill(1,|LWALL
Lbl 20
Menu("       Terrain Size       ","Tiny",1,"Small",2,"Medium",3,"Large",4,"Huge",5,"Random",17,"Back",13
Lbl 17
randInt(51,800->M
Goto 0
Lbl 1
randInt(51,200->M
Goto 0
Lbl 2
randInt(201,350->M
Goto 0
Lbl 3
randInt(351,500->M
Goto 0
Lbl 4
randInt(501,650->M
Goto 0
Lbl 5
randInt(651,800->M
Lbl 0
ClrHome
det(12,WHITE,|LCOLOR(5+|LWALL(1
Output(1,1,"                                                                                                                                                                                                                                                                   
randInt(1,10->P
randInt(1,26->Q
For(N,1,M
Repeat R<7 and (R<5 or 12=randInt(12,3R
randInt(1,4->O
P-(P!=1 and O=1)+(P!=10 and O=2->P
Q-(Q!=1 and O=3)+(Q!=26 and O=4->Q
If 1=randInt(1,100
Then
randInt(1,10->P
randInt(1,26->Q
End
27P+Q->A
|LWALL(A->R
End
If R=~2
Then
det(12,WHITE,WHITE
0->|LWALL(A
Else
If R=6
K+1->K
det(12,WHITE,|LCOLOR(R+6
R+1->|LWALL(A
End
Output(P,Q,"
End
randInt(1,10->P
randInt(1,26->Q
randInt(100,200->D
For(N,1,D
Repeat R>~4 and (R>~3 or randInt(0,1
randInt(1,4->O
P-(P!=1 and O=1)+(P!=10 and O=2->P
Q-(Q!=1 and O=3)+(Q!=26 and O=4->Q
If 1=randInt(1,100
Then
randInt(1,10->P
randInt(1,26->Q
End
27P+Q->A
|LWALL(A->R
End
det(12,WHITE,|LCOLOR(R+4
Output(P,Q,"
R-1->|LWALL(A
If ~1=R or (0=R and (~1>|LWALL(A+27(P!=10)) or ~1>|LWALL(A-27(P!=1)) or ~1>|LWALL(A+1(Q!=26)) or ~1>|LWALL(A-1(Q!=1
Then
DelVar BDelVar L
260->dim(|LWATER
A->|LWATER(1
1->B
det(12,WHITE,LTBLUE
Repeat L=B
L+1->L
|LWATER(L->S
int(S/27->T
S-27T->U
randIntNoRep(1,4,4->|LRAND
For(I,1,4
T-(T>1 and 1=|LRAND(I))+(T<10 and 2=|LRAND(I->M
U-(U>1 and 3=|LRAND(I))+(U<26 and 4=|LRAND(I->C
27M+C->R
If ~1=|LWALL(R) and 0=max(R=|LWATER
Then
B+1->B
R->|LWATER(B
End
End
~2->|LWALL(S
Output(T,U,"
End
DelVar |LWATER
End
End
DelVar PDelVar QDelVar NDelVar MDelVar D
det(12,300
For(E,1,F
Repeat sum(|LPLACE(E)=|LPLACE)=1 and |LWALL(|LPLACE(E))<=5 and 0<=|LWALL(|LPLACE(E
randInt(1,10->|LYAXIS(E
randInt(1,26->|LXAXIS(E
27|LYAXIS(E)+|LXAXIS(E->|LPLACE(E
|LWALL(|LPLACE(E->|LLEVEL(E
End
End
For(E,1,F
If E=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(E)+5
End
Output(|LYAXIS(E),|LXAXIS(E),"theta
End
1->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
Lbl 18
UnArchive |LCRAFT
If 0=|LCRAFT(422
Goto 12
Disp "Loading...
For(I,1,296
|LCRAFT(I->|LWALL(I
End
|LCRAFT(297->F
|LCRAFT(298->K
For(I,1,F
|LCRAFT(I+298->|LYAXIS(I
|LCRAFT(I+304->|LXAXIS(I
|LCRAFT(I+310->|LLIVES(I
|LCRAFT(I+316->|LPLACE(I
|LCRAFT(I+322->|LBLOCK(I
|LCRAFT(I+328->|LLEVEL(I
End
For(I,1,87
|LCRAFT(I+334->|LTOOLS(I
End
Archive |LCRAFT
ClrHome
For(S,28,296
If S/27!=int(S/27
Then
int(S/27->T
S-27T->U
|LWALL(S->R
det(12,WHITE,|LCOLOR(R+5
Output(T,U,"
End
End
For(I,1,F
If |LPLACE(I
Then
If I=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(I)+5
End
If 10<=|LLIVES(I
Then
Output(|LYAXIS(I),|LXAXIS(I),"theta
Else
Output(|LYAXIS(I),|LXAXIS(I),int(|LLIVES(I
End
End
End
1->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
Lbl 26
Menu("     Starting Terrain     ","Abyss",28,"Deep Water",29,"Shallow Water",30,"Sand",31,"Low Land",32,"More Terrains",27,"Back",12
Lbl 27
Menu("  More Starting Terrain   "," High Land 1 (Lowest)",33,"High Land 2",34,"High Land 3",35,"High Land 4",36,"High Land 5 (Highest)",37,"Obsidian",38,"Back",26
Lbl 28
Fill(~4,|LWALL
Goto 39
Lbl 29
Fill(~3,|LWALL
Goto 39
Lbl 30
Fill(~2,|LWALL
Goto 39
Lbl 31
Fill(~1,|LWALL
Goto 39
Lbl 32
Fill(0,|LWALL
Goto 39
Lbl 33
Fill(1,|LWALL
Goto 39
Lbl 34
Fill(2,|LWALL
Goto 39
Lbl 35
Fill(3,|LWALL
Goto 39
Lbl 36
Fill(4,|LWALL
Goto 39
Lbl 37
Fill(5,|LWALL
Goto 39
Lbl 38
Fill(6,|LWALL
Lbl 39
ClrHome
det(12,BROWN,|LCOLOR(5+|LWALL(1
Output(1,1,"+                                                                                                                                                                                                                                                                   
1->P
1->Q
Repeat D=105
Repeat D
getKey->D
End
27P+Q->A
Output(P,Q,"
P-(P!=1 and D=25)+(P!=10 and D=34->P
Q-(Q!=1 and D=24)+(Q!=26 and D=26->Q
|LWALL(A)-(|LWALL(A)!=~4 and D=31)+(D=21 and 7!=|LWALL(A->|LWALL(A
det(12,BROWN,|LCOLOR(5+|LWALL(27P+Q
Output(P,Q,"+
End
Output(P,Q,"
For(A,28,296
If ~1=|LWALL(A
Then
int(A/27->T
A-27T->U
If ~1>|LWALL(A+27(T!=10)) or ~1>|LWALL(A-27(T!=1)) or ~1>|LWALL(A+1(U!=26)) or ~1>|LWALL(A-1(U!=1
Then
DelVar BDelVar L
260->dim(|LWATER
A->|LWATER(1
1->B
det(12,WHITE,LTBLUE
Repeat L=B
L+1->L
|LWATER(L->S
int(S/27->T
S-27T->U
randIntNoRep(1,4,4->|LRAND
For(I,1,4
T-(T>1 and 1=|LRAND(I))+(T<10 and 2=|LRAND(I->M
U-(U>1 and 3=|LRAND(I))+(U<26 and 4=|LRAND(I->C
27M+C->R
If ~1=|LWALL(R) and 0=max(R=|LWATER
Then
B+1->B
R->|LWATER(B
End
End
~2->|LWALL(S
Output(T,U,"
End
DelVar |LWATER
End
End
End
det(12,RED,|LCOLOR(5+|LWALL(27P+Q
Output(P,Q,"theta
For(E,2,F
Repeat max(27P+Q=|LPLACE)=0 and |LWALL(27P+Q)<=5 and -3<=|LWALL(27P+Q
Repeat D=105 or D=31 or D=21
Repeat D
getKey->D
End
If sum(27P+Q=|LPLACE
Then
Output(P,Q,"theta
Else
Output(P,Q,"
End
P-(P!=1 and D=25)+(P!=10 and D=34->P
Q-(Q!=1 and D=24)+(Q!=26 and D=26->Q
det(12,RED,|LCOLOR(5+|LWALL(27P+Q
Output(P,Q,"theta
End
End
27P+Q->|LPLACE(E
P->|LYAXIS(E
Q->|LXAXIS(E
|LWALL(|LPLACE(E->|LLEVEL(E
End
Repeat max(27P+Q=|LPLACE)=0 and |LWALL(27P+Q)<=5 and -3<=|LWALL(27P+Q
Repeat D=105 or D=31 or D=21
Repeat D or sum(27P+Q=|LPLACE
getKey->D
End
If sum(27P+Q=|LPLACE
Then
det(12,RED,|LCOLOR(5+|LWALL(27P+Q
Output(P,Q,"theta
Else
Output(P,Q,"
End
P-(P!=1 and D=25)+(P!=10 and D=34->P
Q-(Q!=1 and D=24)+(Q!=26 and D=26->Q
det(12,GREEN,|LCOLOR(5+|LWALL(27P+Q
Output(P,Q,"theta
End
End
27P+Q->|LPLACE(1
P->|LYAXIS(1
Q->|LXAXIS(1
|LWALL(|LPLACE(1->|LLEVEL(1
DelVar PDelVar Q
1->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000

PVPGAME

Code:
det(11,1,0
If D=5
G->|LBLOCK(E
If D=6
Goto P
If D=7
Goto C
Lbl U
Repeat |LLIVES(1)<=0 or sum(0>=|LLIVES)=F-1
For(E,1,F
DelVar D
DelVar H
If 0>=|LLIVES(E
Then
If |LPLACE(E
Then
det(12,RED,|LCOLOR(|LLEVEL(E)+5
Output(|LYAXIS(E),|LXAXIS(E),"
0->|LYAXIS(E
0->|LXAXIS(E
0->|LPLACE(E
End
Else
If E>1
randInt(1,8->H
If E=1
getKey->D
det(12,300
|LBLOCK(E->G
If D=53
Goto 32
If D=41
Goto C
If D=45
Goto P
If D=21 or D=23
Then
2+11(D=23->R
2->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=55
Then
1->S
4->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
|LYAXIS(E->A
|LXAXIS(E->B
|LLIVES(E->C
|LLEVEL(E->Z
A-(A!=1)(D=25 or D=22 or H=1 or (H=5 and A>|LYAXIS(1)) or (H=6 and B=|LXAXIS(1) and A>|LYAXIS(1)))+(A!=10)(D=34 or D=42 or H=2 or (H=5 and A<|LYAXIS(1)) or (H=6 and B=|LXAXIS(1) and A<|LYAXIS(1->A
B-(B!=1)(D=24 or D=31 or H=3 or (H=6 and B>|LXAXIS(1)) or (H=5 and |LYAXIS(E)=|LYAXIS(1) and B>|LXAXIS(1)))+(B!=26)(D=26 or D=33 or H=4 or (H=6 and B<|LXAXIS(1)) or (H=5 and |LYAXIS(E)=|LYAXIS(1) and B<|LXAXIS(1->B
27A+B->J
If E>1 and Z<~1 and G>=1 and randInt(0,1
Then
|LYAXIS(E->A
|LXAXIS(E->B
27A+B->J
32->D
End
If D=22 or D=33 or D=42 or D=31
Goto F
If Z<|LWALL(J
Goto E
If max(J=|LPLACE) and J!=|LPLACE(E
Goto D
If ~1>|LWALL(J
Then
If E>1 and G>=1 and 0=max(J=|LPLACE) and randInt(0,1
Then
|LWALL(J->R
If R=~2
Then
0->|LWALL(J
det(12,WHITE,WHITE
Else
R+1->|LWALL(J
det(12,WHITE,|LCOLOR(R+6
End
Output(A,B,"
G-1->G
|LYAXIS(E->A
|LXAXIS(E->B
27A+B->J
End
If ~2>|LWALL(J) or 0!=max(J=|LPLACE
Then
|LYAXIS(E->A
|LXAXIS(E->B
27A+B->J
End
End
If D=44 and Z>=0
Then
|LWALL(J)-1->|LWALL(J
G+1->G
Z-1->Z
If ~1=Z
Then
If ~1>|LWALL(J+27(A!=10)) or ~1>|LWALL(J-27(A!=1)) or ~1>|LWALL(J+1(B!=26)) or ~1>|LWALL(J-1(B!=1
Then
DelVar L
1->P
260->dim(|LWATER
J->|LWATER(1
~2->Z
Repeat L=P
L+1->L
|LWATER(L->R
int(R/27->T
R-27T->U
randIntNoRep(1,4,4->|LRAND
For(I,1,4
T-(T>1 and 1=|LRAND(I))+(T<10 and 2=|LRAND(I->M
U-(U>1 and 3=|LRAND(I))+(U<26 and 4=|LRAND(I->N
27M+N->S
If ~1=|LWALL(S) and 0=max(S=|LWATER
Then
P+1->P
S->|LWATER(P
End
End
~2->|LWALL(R
If R=|LPLACE(1
Then
det(12,GREEN,LTBLUE
Else
det(12,RED,LTBLUE
End
For(I,1,F
If R=|LPLACE(I
Then
If 10<=|LLIVES(I
Then
Output(T,U,"theta
Else
Output(T,U,int(|LLIVES(I
End
~2->|LLEVEL(I
End
End
If 0=max(|LPLACE=R
Output(T,U,"
End
DelVar |LWATER
End
End
End
Lbl A
If D=32 and Z<=4 and G>=1
Then
G-1->G
If Z=~2
Then
0->Z
0->|LWALL(J
Else
|LWALL(J)+1->|LWALL(J
Z+1->Z
End
End
If C<10 and 2=randInt(0,2
C+.05->C
If E>1 and C<10
Then
For(I,1,K
If C<10 and randInt(0,1
C+0.05->C
End
End
If Z<=~2
C-.2->C
If Z>|LWALL(J
Then
If E=1 and 3<=Z-|LWALL(J
Then
C-.5(Z-2-|LWALL(J->C
det(12,GREEN,RED
If 0>=C
Then
Output(A,B,"O
Else
Output(A,B,int(C
End
det(12,WHITE,|LCOLOR(|LLEVEL(E)+5
Output(|LYAXIS(E),|LXAXIS(E),"
End
|LWALL(J->Z
End
If E=1
Then
det(12,GREEN,|LCOLOR(Z+5
Else
det(12,RED,|LCOLOR(Z+5
End
If C>=10
Then
Output(A,B,"theta
Else
If 0>=C
Then
Output(A,B,"O
Else
Output(A,B,int(C
End
End
If A!=|LYAXIS(E) or B!=|LXAXIS(E
Then
det(12,WHITE,|LCOLOR(|LLEVEL(E)+5
Output(|LYAXIS(E),|LXAXIS(E),"
End
Lbl G
A->|LYAXIS(E
B->|LXAXIS(E
C->|LLIVES(E
Z->|LLEVEL(E
J->|LPLACE(E
G->|LBLOCK(E
End
End
End
Lbl L
ClrHome
det(12,300
If 0>=|LLIVES(1
Disp "You Lose!
If sum(0>=|LLIVES)=F-1 and 0<|LLIVES(1
Disp "You Win!
Pause
ClrHome
Goto 12
Lbl P
DelVar D
ClrHome
Menu("        Pause Menu        ","Return",O,"Shops",C,"Save And Exit",N,"Exit Without Saving",12
Lbl C
Menu("           Shops          ","Swords",26,"Pickaxes",27,"Helmets",28,"Chestplates",29,"Leggings",30,"Boots",31,"Items Page 1",32,"Items Page 2",34,"Pause Menu",P
Lbl O
ClrHome
For(S,28,296
If S/27!=int(S/27
Then
int(S/27->T
S-27T->U
|LWALL(S->R
det(12,WHITE,|LCOLOR(R+5
Output(T,U,"
End
End
For(I,1,F
If |LPLACE(I
Then
If I=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(I)+5
End
If 10<=|LLIVES(I
Then
Output(|LYAXIS(I),|LXAXIS(I),"theta
Else
Output(|LYAXIS(I),|LXAXIS(I),int(|LLIVES(I
End
End
End
Goto U
Lbl 32
1->R
3->D
Goto 33
Lbl 34
5->R
3->D
Goto 33
Lbl 26
2->R
2->D
Goto 33
Lbl 27
13->R
2->D
Goto 33
Lbl 28
24->R
2->D
Goto 33
Lbl 29
35->R
2->D
Goto 33
Lbl 30
46->R
2->D
Goto 33
Lbl 31
57->R
2->D
Lbl 33
"P\VPGOTO
det(11,0,0
prgmXTEMP000
Lbl N
UnArchive |LCRAFT
Disp "Saving...
For(I,1,296
|LWALL(I->|LCRAFT(I
End
F->|LCRAFT(297
K->|LCRAFT(298
For(I,1,F
|LYAXIS(I->|LCRAFT(I+298
|LXAXIS(I->|LCRAFT(I+304
|LLIVES(I->|LCRAFT(I+310
|LPLACE(I->|LCRAFT(I+316
|LBLOCK(I->|LCRAFT(I+322
|LLEVEL(I->|LCRAFT(I+328
End
For(I,1,87
|LTOOLS(I->|LCRAFT(I+334
End
1->|LCRAFT(422
Archive |LCRAFT
Lbl 12
8->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
Lbl D
For(I,1,F
If A=|LYAXIS(I) and B=|LXAXIS(I
Then
If Z=|LLEVEL(I) and (E=1 or I=1
Then
If E=1
Then
If 0=|LTOOLS(2
.1->V
If 1=|LTOOLS(2
.2->V
If 2<=|LTOOLS(2
|LTOOLS(2)/10->V
Else
.25->V
End
|LLIVES(I)-V->|LLIVES(I
det(12,BROWN,RED
If 0>=|LLIVES(I
Then
Output(A,B,"O
Else
Output(A,B,int(|LLIVES(I
End
If I=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(I)+5
End
If E=1
Then
|LTOOLS(3)-1->|LTOOLS(3
If 0=|LTOOLS(3
Then
|LTOOLS(7->|LTOOLS(2
|LTOOLS(8->|LTOOLS(3
0->|LTOOLS(7
0->|LTOOLS(8
End
End
If 0<|LLIVES(I
Output(A,B,int(|LLIVES(I
End
If Z>=|LLEVEL(I
Then
|LYAXIS(E->A
|LXAXIS(E->B
27A+B->J
End
F->I
End
End
Goto A
Lbl E
If E=1 or Z=5 or G=0 or randInt(0,1
Then
5(2=|LTOOLS(12->Q
If E=1 and 1=|LTOOLS(13+Q
6->V
If E=1 and 2<=|LTOOLS(13+Q
|LTOOLS(13+Q->V
If E=1 and |LTOOLS(13+Q
V+|LTOOLS(15+Q->V
If E>1 or 0=|LTOOLS(13+Q) or 0=|LTOOLS(12
1->V
If E=1 and 7=|LWALL(J) and V>=2
Then
det(12,WHITE,MAGENTA
Output(A,B,"
K-1->K
|LTOOLS(14+Q)-1->|LTOOLS(14+Q
6->|LWALL(J
V-2->V
End
If E=1 and 6=|LWALL(J) and |LTOOLS(14+Q) and V>=5+5(1=|LTOOLS(13+Q
Then
det(12,WHITE,BLACK
Output(A,B,"
G+5->G
|LTOOLS(14+Q)-1->|LTOOLS(14+Q
5->|LWALL(J
V-5-5(1=|LTOOLS(13+Q->V
End
If V and 6>|LWALL(J
Then
For(M,1,V
|LWALL(J->R
If R>Z and (|LTOOLS(14+Q) or E>1 or 0=|LTOOLS(12) or 0=|LTOOLS(13+Q
Then
R-1->|LWALL(J
If J=|LPLACE(1
Then
det(12,GREEN,|LCOLOR(R+4
Else
det(12,RED,|LCOLOR(R+4
End
For(I,1,F
If J=|LPLACE(I
Then
If 10<=|LLIVES(I
Then
Output(|LYAXIS(I),|LXAXIS(I),"theta
Else
Output(|LYAXIS(I),|LXAXIS(I),int(|LLIVES(I
End
|LLEVEL(I)-1->|LLEVEL(I
End
End
If 0=max(J=|LPLACE
Output(A,B,"
G+1+(0<randInt(0,|LTOOLS(17+Q->G
If E=1 and |LTOOLS(12) and 0=randInt(0,randInt(0,|LTOOLS(16+Q
|LTOOLS(14+Q)-1->|LTOOLS(14+Q
If 0=R
Then
If ~1>|LWALL(J+27(A!=10)) or ~1>|LWALL(J-27(A!=1)) or ~1>|LWALL(J+1(B!=26)) or ~1>|LWALL(J-1(B!=1
Then
DelVar L
1->P
260->dim(|LWATER
J->|LWATER(1
~2->Z
Repeat L=P
L+1->L
|LWATER(L->R
int(R/27->T
R-27T->U
randIntNoRep(1,4,4->|LRAND
For(I,1,4
T-(T>1 and 1=|LRAND(I))+(T<10 and 2=|LRAND(I->M
U-(U>1 and 3=|LRAND(I))+(U<26 and 4=|LRAND(I->N
27M+N->S
If ~1=|LWALL(S) and 0=max(S=|LWATER
Then
P+1->P
S->|LWATER(P
End
End
~2->|LWALL(R
If R=|LPLACE(1
Then
det(12,GREEN,LTBLUE
Else
det(12,RED,LTBLUE
End
For(I,1,F
If R=|LPLACE(I
Then
If 10<=|LLIVES(I
Then
Output(T,U,"theta
Else
Output(T,U,int(|LLIVES(I
End
~2->|LLEVEL(I
End
End
If 0=max(|LPLACE=R
Output(T,U,"
End
DelVar |LWATER
End
End
End
End
End
If |LTOOLS(12) and 0=|LTOOLS(13+Q
|LTOOLS(12)-1->|LTOOLS(12
If 0=|LTOOLS(13
Then
|LTOOLS(18->|LTOOLS(13
|LTOOLS(19->|LTOOLS(14
|LTOOLS(20->|LTOOLS(15
|LTOOLS(21->|LTOOLS(16
|LTOOLS(22->|LTOOLS(17
0->|LTOOLS(18
0->|LTOOLS(19
0->|LTOOLS(20
0->|LTOOLS(21
0->|LTOOLS(22
End
Else
32->D
End
|LYAXIS(E->A
|LXAXIS(E->B
27A+B->J
Goto A
Lbl F
If G>=1
Then
If 0=max(J=|LPLACE
Then
|LWALL(J->R
If R<=4
Then
If R=~2
Then
0->|LWALL(J
det(12,WHITE,WHITE
Else
R+1->|LWALL(J
det(12,WHITE,|LCOLOR(R+6
End
Output(A,B,"
G-1->G
End
End
End
|LYAXIS(E->A
|LXAXIS(E->B
27A+B->J
Goto G

PVPSHOPS

Code:
det(11,1,0
If D=3
Goto C
Lbl B
ClrHome
If R=13
Disp "Pickaxe    Speed Uses Cost
If R=24
Disp "Helmet     Armor Uses Cost
If R=35
Disp "Chestplate Armor Uses Cost
If R=46
Disp "Leggings   Armor Uses Cost
If R=57
Disp "Boots      Armor Uses Cost
If R=2
Then
Disp "Sword     Damage Uses Cost
Disp "1:Gold      2     10   05
Else
If R!=24 and R!=57
Disp "1:Gold      6     10   10
End
If R=24 or R=57
Then
Disp "1:Gold      3     10   05
Disp "2:Leather   1     20   05
Disp "3:Chain     1.5   30   10
Disp "4:Iron      2     40   15
Disp "5:Diamond   2.5   50   20
Else
If R=35 or R=46
Then
Disp "2:Leather   2     20   10
Disp "3:Chain     3     30   20
Else
Disp "2:Wood      2     20   10
Disp "3:Stone     3     30   20
End
Disp "4:Iron      4     40   30
Disp "5:Diamond   5     50   40
End
Disp "        INVENTORY
If R=2 or R=13
Then
Output(8,1,"6:Hand      1
Else
Output(8,1,"6:Cloth     0
End
Lbl J
Output(8,22,"   
Output(8,22,G
If |LTOOLS(R
Then
Output(9,2,"7:
If R<=13
Then
Output(9,4,sub(Str1,7|LTOOLS(R)-6,7
Else
Output(9,4,sub(Str2,7|LTOOLS(R)-6,7
End
If 1=|LTOOLS(R
Output(9,13,6-4(R=2)-3(R=24 or R=27
If 2<=|LTOOLS(R
Output(9,13,|LTOOLS(R)-.5|LTOOLS(R+5)(R=24 or R=57
Output(9,18,|LTOOLS(R+1
End
If |LTOOLS(R+5
Then
Output(10,2,"8:
If R<=13
Then
Output(10,4,sub(Str1,7|LTOOLS(R+5)-6,7
Else
Output(10,4,sub(Str2,7|LTOOLS(R+5)-6,7
End
If 1=|LTOOLS(R+5
Output(10,13,6-4(R=2)-3(R=24 or R=57
If 2<=|LTOOLS(R+5
Output(10,13,|LTOOLS(R+5)-.5|LTOOLS(R+5)(R=24 or R=57
Output(10,18,|LTOOLS(R+6
End
Output(|LTOOLS(R-1)+8,26,"<
Repeat D
getKey->D
End
If D=72 and |LTOOLS(R
Then
ClrHome
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=73 and |LTOOLS(R+5
Then
ClrHome
R+5->R
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If 0=|LTOOLS(R+5
Then
If |LTOOLS(R
Then
If D=92 and G>=10-5(R=2 or R=24 or R=57
1->|LTOOLS(R+5
If D=93 and G>=10-5(R=24 or R=57
2->|LTOOLS(R+5
If D=94 and G>=20-10(R=24 or R=57
3->|LTOOLS(R+5
If D=82 and G>=30-15(R=24 or R=57
4->|LTOOLS(R+5
If D=83 and G>=40-20(R=24 or R=57
5->|LTOOLS(R+5
10|LTOOLS(R+5->|LTOOLS(R+6
Else
If D=92 and G>=10-5(R=2 or R=24 or R=57
1->|LTOOLS(R
If D=93 and G>=10-5(R=24 or R=57
2->|LTOOLS(R
If D=94 and G>=20-10(R=24 or R=57
3->|LTOOLS(R
If D=82 and G>=30-15(R=24 or R=57
4->|LTOOLS(R
If D=83 and G>=40-20(R=24 or R=57
5->|LTOOLS(R
10|LTOOLS(R->|LTOOLS(R+1
End
If D=92 and G>=10-5(R=2 or R=24 or R=57
G-10+5(R=2 or R=24 or R=57->G
If D=93 and G>=10-5(R=24 or R=57
G-10+5(R=24 or R=57->G
If D=94 and G>=20-10(R=24 or R=57
G-20+10(R=24 or R=57->G
If D=82 and G>=30-15(R=24 or R=57
G-30+15(R=24 or R=57->G
If D=83 and G>=40-20(R=24 or R=57
G-40+20(R=24 or R=57->G
End
If D=84
Then
Output(|LTOOLS(R-1)+8,26,"
If |LTOOLS(R-1)=0 and |LTOOLS(R
Then
1->|LTOOLS(R-1
Else
If |LTOOLS(R-1)=1 and |LTOOLS(R+5
Then
2->|LTOOLS(R-1
Else
0->|LTOOLS(R-1
End
End
Output(|LTOOLS(R-1)+8,26,"<
Goto J
End
If max(D={92,93,94,82,83
Goto J
If D=21 or D=23
Then
2+11(D=23->R
Goto B
End
If D=45
Then
6->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=41
Then
7->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=55
Then
1->S
4->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
ClrHome
For(S,28,296
If S/27!=int(S/27
Then
int(S/27->T
S-27T->U
|LWALL(S->R
det(12,WHITE,|LCOLOR(R+5
Output(T,U,"
End
End
For(I,1,F
If |LPLACE(I
Then
If I=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(I)+5
End
If 10<=|LLIVES(I
Then
Output(|LYAXIS(I),|LXAXIS(I),"theta
Else
Output(|LYAXIS(I),|LXAXIS(I),int(|LLIVES(I
End
End
End
5->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
Lbl C
ClrHome
Disp "  Item   Cost:5   Item
If R=1
Then
Disp "1:Healing      2:Harming
Disp "3:Strength     4:Weakness
Else
Disp "1:Swiftness    2:Slowness
Disp "3:TNT          4:Match
End
Disp "        INVENTORY
Output(5,1,"5:Hand
Lbl K
Output(5,22,"   
Output(5,22,G
If |LTOOLS(68
Then
Output(6,2,"6:
Output(6,4,sub(Str3,9|LTOOLS(68)-8,9
End
If |LTOOLS(72
Then
Output(7,2,"7:
Output(7,4,sub(Str3,9|LTOOLS(72)-8,9
End
If |LTOOLS(76
Then
Output(8,2,"8:
Output(8,4,sub(Str3,9|LTOOLS(76)-8,9
End
If |LTOOLS(80
Then
Output(9,2,"9:
Output(9,4,sub(Str3,9|LTOOLS(80)-8,9
End
If |LTOOLS(84
Then
Output(10,2,"0:
Output(10,4,sub(Str3,9|LTOOLS(84)-8,9
End
Output(|LTOOLS(67)+5,26,"<
Repeat D
getKey->D
End
If D=84 and |LTOOLS(68
Then
ClrHome
68->R
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=72 and |LTOOLS(72
Then
ClrHome
72->R
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=73 and |LTOOLS(76
Then
ClrHome
76->R
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=74 and |LTOOLS(80
Then
ClrHome
80->R
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=102 and |LTOOLS(84
Then
ClrHome
84->R
9->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If G>=10 and 0=|LTOOLS(84
Then
If |LTOOLS(80
Then
If D=92
R->|LTOOLS(84
If D=93
R+1->|LTOOLS(84
If D=94
R+2->|LTOOLS(84
If D=82
R+3->|LTOOLS(84
Else
If |LTOOLS(76
Then
If D=92
R->|LTOOLS(80
If D=93
R+1->|LTOOLS(80
If D=94
R+2->|LTOOLS(80
If D=82
R+3->|LTOOLS(80
Else
If |LTOOLS(72
Then
If D=92
R->|LTOOLS(76
If D=93
R+1->|LTOOLS(76
If D=94
R+2->|LTOOLS(76
If D=82
R+3->|LTOOLS(76
Else
If |LTOOLS(68
Then
If D=92
R->|LTOOLS(72
If D=93
R+1->|LTOOLS(72
If D=94
R+2->|LTOOLS(72
If D=82
R+3->|LTOOLS(72
Else
If D=92
R->|LTOOLS(68
If D=93
R+1->|LTOOLS(68
If D=94
R+2->|LTOOLS(68
If D=82
R+3->|LTOOLS(68
End
End
End
End
If G>=5 and max(D={92,93,94,82
G-5->G
End
If D=83
Then
Output(|LTOOLS(67)+4,26,"
If |LTOOLS(67)=0 and |LTOOLS(68
Then
1->|LTOOLS(67
Else
If |LTOOLS(67)=1 and |LTOOLS(72
Then
2->|LTOOLS(67
Else
If |LTOOLS(67)=2 and |LTOOLS(76
Then
3->|LTOOLS(67
Else
If |LTOOLS(67)=3 and |LTOOLS(80
Then
4->|LTOOLS(67
Else
If |LTOOLS(67)=4 and |LTOOLS(84
Then
5->|LTOOLS(67
Else
0->|LTOOLS(67
End
End
End
End
End
Output(|LTOOLS(67)+4,26,"<
Goto K
End
If max(D={92,93,94,82
Goto K
If D=53
Then
(R=5)+5(R=1->R
Goto C
End
If D=21 or D=23
Then
2+11(D=23->R
Goto B
End
If D=45
Then
6->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=41
Then
7->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=55
Then
1->S
4->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
ClrHome
For(S,28,296
If S/27!=int(S/27
Then
int(S/27->T
S-27T->U
|LWALL(S->R
det(12,WHITE,|LCOLOR(R+5
Output(T,U,"
End
End
For(I,1,F
If |LPLACE(I
Then
If I=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(I)+5
End
If 10<=|LLIVES(I
Then
Output(|LYAXIS(I),|LXAXIS(I),"theta
Else
Output(|LYAXIS(I),|LXAXIS(I),int(|LLIVES(I
End
End
End
5->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000

PVPGOTO

Code:
det(11,1,1
If D=8
Then
"P\VPCRAFT
det(11,0,1
prgmXTEMP001
End
If max(D={1,5,6,7
Then
"P\VPGAME
det(11,0,1
prgmXTEMP001
End
If max(D={2,3
Then
"P\VPSHOPS
det(11,0,1
prgmXTEMP001
End
If max(D=4,9
Then
"P\VPITEMS
det(11,0,1
prgmXTEMP001
End

PVPITEMS

Code:
det(11,1,0
If D=9
Goto S
Lbl Q
ClrHome
Output(1,1,"Resources:"
Output(1,11,G
If S=1
Then
Output(5,1,"1:Sword       Hand
If |LTOOLS(2
Then
Output(6,2,"2:
Output(6,4,sub(Str1,7|LTOOLS(2)-6,7
End
If |LTOOLS(7
Then
Output(7,2,"3:
Output(7,4,sub(Str1,7|LTOOLS(7)-6,7
End
Output(8,1,"4:Pickaxe     Hand
If |LTOOLS(13
Then
Output(9,2,"5:
Output(9,4,sub(Str1,7|LTOOLS(13)-6,7
End
If |LTOOLS(18
Then
Output(10,2,"6:
Output(10,4,sub(Str1,7|LTOOLS(18)-6,7
End
Output(|LTOOLS(1)+5,24,"<
Output(|LTOOLS(12)+8,24,"<
End
If S=2
Then
Output(2,1,"1:Helmet      Cloth
If |LTOOLS(24
Then
Output(3,2,"2:
Output(3,4,sub(Str2,7|LTOOLS(24)-6,7
End
If |LTOOLS(29
Then
Output(4,2,"3:
Output(4,4,sub(Str2,7|LTOOLS(29)-6,7
End
Output(5,1,"4:Chestplate  Cloth
If |LTOOLS(35
Then
Output(6,2,"5:
Output(6,4,sub(Str2,7|LTOOLS(35)-6,7
End
If |LTOOLS(40
Then
Output(7,2,"6:
Output(7,4,sub(Str3,7|LTOOLS(40)-6,7
End
Output(5,1,"7:Leggings    Cloth
If |LTOOLS(46
Then
Output(6,2,"8:
Output(6,4,sub(Str2,7|LTOOLS(46)-6,7
End
If |LTOOLS(51
Then
Output(7,2,"9:
Output(7,4,sub(Str2,7|LTOOLS(51)-6,7
End
Output(|LTOOLS(23)+2,24,"<
Output(|LTOOLS(34)+5,24,"<
Output(|LTOOLS(45)+8,24,"<
End
If S=3
Then
Output(2,1,"1:Boots       Cloth
If |LTOOLS(57
Then
Output(3,2,"2:
Output(3,4,sub(Str2,7|LTOOLS(57)-6,7
End
If |LTOOLS(62
Then
Output(4,2,"3:
Output(4,4,sub(Str2,7|LTOOLS(62)-6,7
End
Output(5,1,"1:Items       Hand
If |LTOOLS(68
Then
Output(6,2,"2:
Output(6,4,sub(Str3,9|LTOOLS(68)-8,9
End
If |LTOOLS(72
Then
Output(7,2,"3:
Output(7,4,sub(Str3,9|LTOOLS(72)-8,9
End
If |LTOOLS(76
Then
Output(8,2,"4:
Output(8,4,sub(Str3,9|LTOOLS(76)-8,9
End
If |LTOOLS(80
Then
Output(9,2,"5:
Output(9,4,sub(Str3,9|LTOOLS(80)-8,9
End
If |LTOOLS(84
Then
Output(10,2,"6:
Output(10,4,sub(Str3,9|LTOOLS(84)-8,9
End
Output(|LTOOLS(56)+5,24,"<
Output(|LTOOLS(67)+5,24,"<
End
Lbl R
Repeat D
getKey->D
End
0->R
If S=1
Then
If D=92
1->R
If D=93
2->R
If D=94
7->R
If D=82
12->R
If D=83
13->R
If D=84
18->R
End
If S=2
Then
If D=92
23->R
If D=93
24->R
If D=94
29->R
If D=82
34->R
If D=83
35->R
If D=84
40->R
If D=72
45->R
If D=73
46->R
If D=74
51->R
End
If S=3
Then
If D=92
56->R
If D=93
57->R
If D=94
62->R
If D=82
67->R
If D=83
68->R
If D=84
72->R
If D=72
76->R
If D=73
80->R
If D=74
84->R
End
If max(R={1,12,23,34,45,56,67
Then
If S=1
Output(|LTOOLS(R)+3((R+10)/11)+2,24,"
If S=2
Output(|LTOOLS(R)+3((R+10)/11)-7,24,"
If S=3
Output(|LTOOLS(R)+3((R+10)/11)-16,24,"
If R=67
Then
If |LTOOLS(67)=0 and |LTOOLS(68
Then
1->|LTOOLS(67
Else
If |LTOOLS(67)=1 and |LTOOLS(72
Then
2->|LTOOLS(67
Else
If |LTOOLS(67)=2 and |LTOOLS(76
Then
3->|LTOOLS(67
Else
If |LTOOLS(67)=3 and |LTOOLS(80
Then
4->|LTOOLS(67
Else
If |LTOOLS(67)=4 and |LTOOLS(84
Then
5->|LTOOLS(67
Else
0->|LTOOLS(67
End
End
End
End
End
Else
If |LTOOLS(R)=0 and |LTOOLS(R+1
Then
1->|LTOOLS(R
Else
If |LTOOLS(R)=1 and |LTOOLS(R+6
Then
2->|LTOOLS(R
Else
0->|LTOOLS(R
End
End
End
If S=1
Output(|LTOOLS(R)+3((R+10)/11)+2,24,"<
If S=2
Output(|LTOOLS(R)+3((R+10)/11)-7,24,"<
If S=3
Output(|LTOOLS(R)+3((R+10)/11)-16,24,"<
Goto R
End
If max(R={2,7,13,18,24,29,35,40,46,51,57,62,68,72,76,80,84
Then
If |LTOOLS(R
Then
ClrHome
Lbl S
Output(2,1,"1:Sell For    Resource
If R>=68 or 1!=int(.5|LTOOLS(R+1
Output(2,23,"s
If R>=68
Then
Output(2,12,"05
Else
If 9<int(.5|LTOOLS(R+1
Then
Output(2,12,int(.5|LTOOLS(R+1
Else
Output(2,12,"0
Output(2,13,int(.5|LTOOLS(R+1
End
End
Output(3,8,"ENCHANTMENTS
If max(R={2,7
Then
Output(1,1,"Sword:
Output(1,7,sub(Str1,7|LTOOLS(R)-6,7
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+4
Then
Output(4,1,"Sharpness:
Output(4,11,|LTOOLS(R+2
Output(5,1,"Unbreaking:
Output(5,12,|LTOOLS(R+3
Output(6,1,"Flame:
Output(6,7,|LTOOLS(R+4
End
End
If max(R={13,18
Then
Output(1,1,"Pickaxe:
Output(1,9,sub(Str1,7|LTOOLS(R)-6,7
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+4
Then
Output(4,1,"Efficiency:
Output(4,12,|LTOOLS(R+2
Output(5,1,"Unbreaking:
Output(5,12,|LTOOLS(R+3
Output(6,1,"Fortune:
Output(6,9,|LTOOLS(R+4
End
End
If max(R={24,29
Then
Output(1,1,"Helmet:
Output(1,8,sub(Str2,7|LTOOLS(R)-6,7
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+4
Then
Output(4,1,"Protection:
Output(4,12,|LTOOLS(R+2
Output(5,1,"Unbreaking:
Output(5,12,|LTOOLS(R+3
Output(6,1,"Resp\iration:
Output(6,13,|LTOOLS(R+4
End
End
If max(R={35,40
Then
Output(1,1,"Chestplate:
Output(1,12,sub(Str2,7|LTOOLS(R)-6,7
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+4
Then
Output(4,1,"Protection:
Output(4,12,|LTOOLS(R+2
Output(5,1,"Unbreaking:
Output(5,12,|LTOOLS(R+3
Output(6,1,"Thorns:
Output(6,8,|LTOOLS(R+4
End
End
If max(R={46,51
Then
Output(1,1,"Leggings:
Output(1,10,sub(Str2,7|LTOOLS(R)-6,7
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+4
Then
Output(4,1,"Protection:
Output(4,12,|LTOOLS(R+2
Output(5,1,"Unbreaking:
Output(5,12,|LTOOLS(R+3
Output(6,1,"Blast/Fire Resistance:
Output(6,23,|LTOOLS(R+4
End
End
If max(R={57,62
Then
Output(1,1,"Boots:
Output(1,7,sub(Str2,7|LTOOLS(R)-6,7
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+4
Then
Output(4,1,"Protection:
Output(4,12,|LTOOLS(R+2
Output(5,1,"Unbreaking:
Output(5,12,|LTOOLS(R+3
Output(6,1,"Feather Falling:
Output(6,17,|LTOOLS(R+4
End
End
If R>=68
Then
If 6>=|LTOOLS(R
Then
Output(1,1,"Potion:
Output(1,8,sub(Str3,9|LTOOLS(R)-8,9
If |LTOOLS(R+1) or |LTOOLS(R+2) or |LTOOLS(R+3
Then
Output(4,1,"Potency:
Output(4,9,|LTOOLS(R+1
Output(5,1,"Extended:
Output(5,10,|LTOOLS(R+2
Output(6,1,"Refillable:
Output(6,12,|LTOOLS(R+3
End
Else
Output(1,1,"Equipment:
Output(1,10,sub(Str3,9|LTOOLS(R)-8,9
If |LTOOLS(R+1) or |LTOOLS(R+2) or |LTOOLS(R+3
Then
Output(4,1,"Damaging:
Output(4,10,|LTOOLS(R+1
Output(5,1,"Flame:
Output(5,7,|LTOOLS(R+2
Output(6,1,"Reusable:
Output(6,10,|LTOOLS(R+3
End
End
End
If 0=|LTOOLS(R+2) and 0=|LTOOLS(R+3) and 0=|LTOOLS(R+1+3(R<68
Then
Output(4,1,"2:Level 1          Cost:10
Output(5,1,"3:Level 2          Cost:20
Output(6,1,"4:Level 3          Cost:30
Output(7,1,"5:Level 4          Cost:40
Output(8,1,"6:Level 5          Cost:50
Else
Output(8,1,"2:Clear Enchantments
Output(9,4,"(No Refund)
End
Repeat D
getKey->D
End
If D=92
Menu("Are You Sure?","Yes",T,"No",S
If |LTOOLS(R+2) or |LTOOLS(R+3) or |LTOOLS(R+1+3(R<68
Then
If D=93
Then
Menu("Are You Sure?","Yes",U,"No",S
Lbl U
0->|LTOOLS(R+2
0->|LTOOLS(R+3
0->|LTOOLS(R+1+3(R<68
ClrHome
Goto S
End
Else
If D=93
1->D
If D=94
2->D
If D=82
3->D
If D=83
4->D
If D=84
5->D
End
If D<=5 and 0=|LTOOLS(R+2) and 0=|LTOOLS(R+3) and 0=|LTOOLS(R+1+3(R<68
Then
If G>=10D
Then
augment({0,D},randInt(0,D,2->|LRAND
SortA(|LRAND
DeltaList(|LRAND->|LRAND
For(I,1,3
|LRAND(I->|LTOOLS(I+R+(R<68
End
G-10D->G
ClrHome
End
Goto S
End
Goto Q
End
End
If D=55
Then
S+1->S
If S=4
1->S
Goto Q
End
If D=21 or D=23
Then
2+11(D=23->R
2->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=45
Then
6->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
If D=41
Then
7->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
End
ClrHome
For(S,28,296
If S/27!=int(S/27
Then
int(S/27->T
S-27T->U
|LWALL(S->R
det(12,WHITE,|LCOLOR(R+5
Output(T,U,"
End
End
For(I,1,F
If |LPLACE(I
Then
If I=1
Then
det(12,GREEN,|LCOLOR(|LLEVEL(1)+5
Else
det(12,RED,|LCOLOR(|LLEVEL(I)+5
End
If 10<=|LLIVES(I
Then
Output(|LYAXIS(I),|LXAXIS(I),"theta
Else
Output(|LYAXIS(I),|LXAXIS(I),int(|LLIVES(I
End
End
End
5->D
"P\VPGOTO
det(11,0,0
prgmXTEMP000
Lbl T
If R<68
Then
G+int(.5|LTOOLS(R+1->G
0->|LTOOLS(R+4
Else
G+5->G
End
If R<68
Then
max(R={2,13,24,35,46,57})+2max(R={7,18,29,40,51,62->D
If D=|LTOOLS(R-5D+4
0->|LTOOLS(R-5D+4
If D>|LTOOLS(R-5D+4
1->|LTOOLS(R-5D+4
If D=1
Then
|LTOOLS(R+5->|LTOOLS(R
|LTOOLS(R+6->|LTOOLS(R+1
|LTOOLS(R+7->|LTOOLS(R+2
|LTOOLS(R+8->|LTOOLS(R+3
|LTOOLS(R+9->|LTOOLS(R+4
R+5->R
End
0->|LTOOLS(R+4
Else
If R/4-16=|LTOOLS(67
0->|LTOOLS(67
If R/4-16<|LTOOLS(67
~1+|LTOOLS(67->|LTOOLS(67
If R!=84
Then
For(R,R,80,4
|LTOOLS(R+4->|LTOOLS(R
|LTOOLS(R+5->|LTOOLS(R+1
|LTOOLS(R+6->|LTOOLS(R+2
|LTOOLS(R+7->|LTOOLS(R+3
End
84->R
End
End
0->|LTOOLS(R
0->|LTOOLS(R+1
0->|LTOOLS(R+2
0->|LTOOLS(R+3
Goto Q
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement