It is "and" and not "or" because you want to allow them to both be in the same row or colomn.

Wouldn't 'and' make sure that it isn't in the same column or row?

]]>` ``Repeat X≠A and Y≠B`

It is "and" and not "or" because you want to allow them to both be in the same row or colomn.

On a side note, "While" is the same thing as "Repeat not(" except it is faster.

]]>For(A,1,10

Repeat not([J](B,Ans

randInt(1,7→B

randInt(1,16

End

1→[J](B,Ans

End

It works perfectly as shown here, but if I add another not( it will start overlapping.

BUT… every test I run, the ones don't overlap the two anyways.

EDIT:

And, got it, I think.

randInt(1,7→A

randInt(1,16→B

2→[J](A,B

For(θ,1,D

Repeat not([J](Z,Ans

randInt(1,7→Z

randInt(1,16

End

1→[J](Z,Ans

End

Repeat not([J](X,Y

randInt(1,7→X

randInt(1,16→Y

End

:randInt(1,7→X

:randInt(1,16→Y

:Repeat X≠A or Y≠B

:randInt(1,7→A

:randInt(1,16→B

:End ]]>

Think about it, you are trying to make it so that A and B are random numbers, but (A=X)and(B=Y) isn't true. hmm… how could you use that in the conditional…

Your conditional shouldn't have anything to do with the matrix because X and Y have absolutely nothing to do with the matrix at all. In your mind, X and Y are coordinates on the matrix, but there is nothing special on the matrix at [J](X,Y). Like you said earlier, the player (and the "win" spot) "hover" above the matrix. The calculator doesn't know that. What you were trying to code was something like not([J](X,Y,hovering).

What you did was a great way to utilize the tools available; having something located at coordinates of a matrix but not actually on the matrix. You just have to remember the calculator isn't as smart as you ;)

]]>` ``:DelVar [J]{7,16}→dim([J] :randInt(1,7→X :randInt(1,16→Y :Repeat not([J](X,Y :randInt(1,7→A :randInt(1,16→B :End`

Look at the 4th line. [J](X,Y) will always return "0" because you haven't changed the matrix at all yet; it is still full of 0's.

]]>Sorry, I didn't mean for it come out that way

Don't worry, I didn't take it that way either.

I decided to show you what I'd do to the Menu program

Thanks for the tips. There were a few things in there that I definitely would've never thought of.

A revised version has been edited into the first post again. Only one problem left. I haven't had this happen in a while, though, so I don't know if I somehow fixed it or not. I edited in the ) before the ands a while ago and that may have done it. Nevermind, it just happened again.

EDIT:

I changed the way difficulty is handled. More mines instead of less health.

I decided to show you what I'd do to the Menu program.

ClrHome

2→X

5→Y

Output(2,7,"EASY

Output(4,6,"MEDIUM

Output(6,7,"HARD

Output(X,Y,">

Repeat K=105 or K=45

Repeat Ans

getKey→K

End

Output(X,Y,"

min(8,max(0,X+sum(2ΔList(K={25,34→X

If not(X

6→X

If X=8

2→X

If 2=abs(X-4

5→Y

If X=4

4→Y

Output(X,Y,">

End

ClrHome

If K>45

Then

100-25(XY=16)-50(XY=30→H

I'd add all of prgmMINES here. This is so it would be all in one program.

End

I don't have any optimizations at the moment, but you could make the cursor cooler with one of the special characters.

]]>Nice job on the custom menu.

Thanks, haha. The thing is a bit long, though, so I can't help but wonder if there's some way it could be optimized.

]]>When I stuck it into my calculator,

` ``Output(C,D,sub("-^^LR",1+[J](C,D),1`

was just

` ``Output(C,D,sub("-^",1+[J](C,D),1`

That's what I was talking about with the whole "add the symbol for a detonated bomb to the string" thing.

Nice job on the custom menu.

]]>The R's and L's shouldn't detonate anymore.

I tried something to make the bombs not appear in the movement pieces spot, but they still occasionally do. It's only rare because of regular probability factors.

Not sure what you mean by "add the symbol for a detonated bomb to the string"

And I will be adding the fix 0 thing now, thanks for the tip.

And now that I figured out how to make the non 1 values not detonate, I'm sure I could make the movement piece part of the matrix.

]]>I have a few suggestions:

Add a "Fix 0" to the beginning of your program; my health was exactly 100.000.

Add the symbol for a detonated bomb to the string.

Your collision detection system needs to be redone a little. Since it works on booleans, it registers both a 2(a live bomb) and a 3(a dead bomb) as "true", so you go boom either way.

]]>You talked about having the character "hovering above the matrix" earlier. While that methods works great for this game, in others that have a greater variety of "map pieces" you may need to consider having a number in the matrix that represents the player/selector.

Just a thought I felt like sharing.

Good Luck!

` ``*:If Y=B :0→[J](X,Y :ClrHome :Output(1,1,Str1`

You're using that "boom" here. I'm going to guess that Str1 has 128 characters. If that's true, then you can get rid of the ClrHome.

Good luck on your first game!

]]>**mines**

` ``:ClrHome :2→X :5→Y :Output(2,7,"EASY :Output(4,6,"MEDIUM :Output(6,7,"HARD :Output(X,Y,"> :Repeat K=105 or K=45 :Repeat Ans :getKey→K :End :Output(X,Y," :min(8,max(0,X+sum(2ΔList(K={25,34}→X :If not(X :6→X :If X=8 :2→X :If 2=abs(X-4 :5→Y :If X=4 :4→Y :Output(X,Y,"> :End :ClrHome :If K>45 :Then :9+5(XY=16)+10(XY=30→D :DelVar [J]{7,16}→dim([J] :randInt(1,7→A :randInt(1,16→B :2→[J](A,B :For(θ,1,D :Repeat not([J](Z,Ans :randInt(1,7→Z :randInt(1,16 :End :1→[J](Z,Ans :End :Repeat not([J](X,Y :randInt(1,7→X :randInt(1,16→Y :End :100→H :DelVar KWhile K≠45 and H>0 :For(Z,1,7 :For(θ,1,16 :Output(Z,θ,sub("-^^LR",1+[J](Z,θ),1 :End :End :Output(8,1,"HEALTH: :Output(8,9,H :Repeat K=45 or [J](X,Y)=1 or [J](X,Y)=2 :getKey→K :If K:Then :If not([J](X,Y :Output(X,Y,"- :If [J](X,Y)=3 :Output(X,Y,"L :If [J](X,Y)=4 :Output(X,Y,"R :End :min(7,max(1,X+sum(ΔList(K={25,34→X :min(16,max(1,Y+sum(ΔList(K={24,26→Y :Output(X,Y,"+ :End :If [J](X,Y)=2 :Goto X :If K≠45 and [J](X,Y)≠2:Then :H-20→H :If Y>B :3→[J](X,Y :If Y<B :4→[J](X,Y :If Y=B :0→[J](X,Y :ClrHome :Output(1,1," !BOOM! * * ** ** * * :Pause :End :End :Lbl X :ClrHome :If H=0 and K≠45 :Output(2,7,"FAIL :If [J](X,Y)=2 :Output(2,7,"WIN! :Return :End`

A few things..

All of my problems have supposedly been solved.

If you notice anything else that should be changed for optimization reasons, please point it out.

]]>