Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Michael_Lee on August 29, 2010, 08:42:50 pm

Title: Axe Minesweeper
Post by: Michael_Lee on August 29, 2010, 08:42:50 pm
I'm going to try to make a minesweeper game using Axe.

Some more interesting features that I'm going to try to include are an undo button, multiple high scores, customizable field size and mine amount, and grayscale.

Although, I'm not too sure about the grayscale one - I've tried to make one, but artistically, it kind of sucks.  It's a bit dull, and doesn't really enhance the gameplay at this time.

Currently, I have a crude mockup and am working on the basic mechanics.

I've attached a gif of what I have so far - obviously, it's far from complete, but my code seems to be placing the mines if not the numbers correctly.  (Although, oddly, it places more mines then it should).
Title: Re: Axe Minesweeper
Post by: Happybobjr on August 29, 2010, 08:51:33 pm
awesome.  love seeing your works :D

i can't wait.

note: i thought the grayscale looked good on it.
Title: Re: Axe Minesweeper
Post by: apcalc on August 29, 2010, 08:52:01 pm
Looks nice!

Excellent job so far! :)
Title: Re: Axe Minesweeper
Post by: MRide on August 29, 2010, 08:56:43 pm
Yes, this looks great.  Hope you get everything worked out.
The greyscale looks good, too.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on August 29, 2010, 09:49:37 pm
Excellent!  Don't forget to have the "smiley face" wear sunglasses when the player wins the game!  Like this: 8)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on August 29, 2010, 10:22:05 pm
Muhahaha!
My program now adds in the numbers correctly!  It also displays exactly how many mines I want (which is 16, at the moment).

@Hot_Dog:
Sunglasses?  Hmm, I'll try that, but it's difficult to draw add sunglasses when I have only 8 by 8 pixels.  Maybe I'll try using a bigger circle.  

Title: Re: Axe Minesweeper
Post by: Hot_Dog on August 29, 2010, 10:36:34 pm
Muhahaha!
My program now adds in the numbers correctly!  It also displays exactly how many mines I want (which is 16, at the moment).


Man, that's a sweet screenshot!  I might actually play this minesweeper game!
Title: Re: Axe Minesweeper
Post by: patriotsfan on August 29, 2010, 11:02:03 pm
Wow, looks great so far! Keep up the good work! :D
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on August 30, 2010, 12:18:57 am
This looks pretty sweet. I'll be sure to play it when it's done :)

Glad to see you make more programs
Title: Re: Axe Minesweeper
Post by: Builderboy on August 30, 2010, 12:38:56 am
Looking really nice :) Minesweeper is an excellent game to write that is both challenging and entertaining ^^
Title: Re: Axe Minesweeper
Post by: Michael_Lee on August 30, 2010, 03:10:30 pm
I've added flags, the question mark thing, and am currently working on getting the revealed squares to expand when I click on a blank one.  It isn't working!  
Or maybe it's just really slow - either way, the code (and I) am unhappy.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on August 30, 2010, 03:14:43 pm
Whatever the case, nice work on the flags and question mark!  Although, I've never had to use the question mark...
Title: Re: Axe Minesweeper
Post by: calc84maniac on August 30, 2010, 03:20:24 pm
You're going to have to use some sort of flood-filling algorithm for this.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on August 30, 2010, 03:40:44 pm
You may want to check some TI-BASIC source code for minesweeper games. There are some nice ones in Omnimaga archives, if you want to check for flood filling algorithms. Hopefully it is not too hard to translate to Axe code. Good luck!
Title: Re: Axe Minesweeper
Post by: Builderboy on August 30, 2010, 04:48:43 pm
Hmmmm flood fill eh?  I have written quite a few of those in my time, PM me if you want some detailed descriptions :) I will have to see how they translate to a minesweeper game tho...
Title: Re: Axe Minesweeper
Post by: Michael_Lee on August 30, 2010, 05:21:57 pm
Flood fill?
It's a possibility, but it seems a bit inefficient. 

@ DJ
I'm not sure what you mean - I checked the downloads and the archives from the old website, but there doesn't appear to be any Minesweeper games that does a mass reveal - they just seem to show only the adjacent squares without branching out.
Title: Re: Axe Minesweeper
Post by: calc84maniac on August 30, 2010, 05:30:47 pm
Flood fill?
It's a possibility, but it seems a bit inefficient.
That's pretty much the only way to do it and handle all cases correctly (because what happens when you click a blank space is the exact definition of a flood fill). As for being inefficient, you won't really have to worry about that when using Axe, as long as you code it well.
Title: Re: Axe Minesweeper
Post by: Builderboy on August 30, 2010, 05:33:25 pm
Yeah pretty much what calc84 said, you will need some sort of flood fill algorithm in order to code that properly, and while it may sound inefficient, it may not be as slow as you think, especially in Axe, and for such a small space.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on August 31, 2010, 01:29:45 am
Flood fill?
It's a possibility, but it seems a bit inefficient.  

@ DJ
I'm not sure what you mean - I checked the downloads and the archives from the old website, but there doesn't appear to be any Minesweeper games that does a mass reveal - they just seem to show only the adjacent squares without branching out.
I thought this one did? http://www.omnimaga.org/index.php?action=downloads;sa=view;down=195

Maybe I am confused about what you mean by branching out, though...

@Builderboy keep in mind if he uses way too much code from someone else and he decides to enter this to the contest (seeing there are no download provided) this might affect his score a bit, though. However that's up to him so...
Title: Re: Axe Minesweeper
Post by: meishe91 on August 31, 2010, 02:19:18 am
Nah, that technically doesn't branch out. All that one does is show the eight other squares around the center point where you clicked. If the spot is a number it shows it and if blank it shows blank. If it is a bomb it doesn't reveal. I'll take a screenshot of the Minesweeper and show you what the branching out is, if I get a good example.

Edit:
Here is the picture. See where there is like a "bubble" of numbers? What happens there is that you click on a square that is blank and then it branches out to all the blank ones that is by it until it hits a number creating that "bubble." Make more sense?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on August 31, 2010, 02:33:26 am
Aah ok I see. Thanks for the info
Title: Re: Axe Minesweeper
Post by: meishe91 on August 31, 2010, 02:34:43 am
No problem :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on August 31, 2010, 01:42:03 pm
Haha, I've finally got expanding to work!
I can't post a screenshot because I'm at school right now, but it works, and it's respectably fast.  
It still has a few bugs though, and needs to be optimized, but I should hammer that out soon.

Edit: I might enter this into the contest, even though I'll probably lose a bunch of points for originality.  (There's an entire folder for BASIC minesweeper games on ticalc).  But hey, if few people are entering, I might have a shot.  (I think)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on August 31, 2010, 01:44:20 pm
Great! Hope you can get those bugs fixed easily :)

Can't wait for screenshots :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 01, 2010, 11:55:45 am
I've got the very basics coded: it's now a playable game.  It still needs a lot of polishing though, but that should be easy.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 01, 2010, 12:01:18 pm
Quote
It still needs a lot of polishing though

And more mines :)

Regardless, that's awesome!  You've done some excellent work!
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 01, 2010, 12:06:56 pm
Wow looks really nice!
Title: Re: Axe Minesweeper
Post by: Builderboy on September 01, 2010, 01:56:40 pm
That looks really cool!  I notice that when the area is clearing, it doesnt update all at once, but kinda goes in a sweeping fashion.  Was this intentional or just a byproduct of the method?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 01, 2010, 03:16:38 pm
@Hot_Dog:
I can easily change the number of mines.  I just set it at 10 so that the expanding process is more clear.  It's harder to test if I did it right if the bubbles are tiny.

@ Builderboy:
The sweeping is a byproduct.  Just a question, does it look better this way, or would be better if it was instantaneous?

Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 01, 2010, 03:34:03 pm
I think it would be better if instantaneous, but as long as it won't freeze the grayscale during the entire loading process
Title: Re: Axe Minesweeper
Post by: Madskillz on September 01, 2010, 03:59:57 pm
Looks great, I like the sweeping effect whether it was intentional or not. :)
Title: Re: Axe Minesweeper
Post by: Quigibo on September 01, 2010, 04:08:14 pm
I don't know how I overlooked this, but this is really cool!
Title: Re: Axe Minesweeper
Post by: meishe91 on September 01, 2010, 05:38:58 pm
The progress looks really good :) Keep up the good work :D
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 01, 2010, 05:40:20 pm
i like the sweeping effect.  although it could hurt highscore times...
Title: Re: Axe Minesweeper
Post by: Builderboy on September 01, 2010, 05:51:19 pm
I guess the question is, how fast does it do the sweep if there is no update?
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 01, 2010, 05:54:43 pm
i like the sweeping effect.  although it could hurt highscore times...

If it does the timing separately, the sweep would pause the clock for just that moment, and that'd be perfect, though.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 01, 2010, 05:55:47 pm
Ya. I noticed that in one spot, when it's checking the lower left side, that it takes longer for it to sweep it and such. Is there any reason why it takes longer there?
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 01, 2010, 07:24:27 pm
Noticed that too. And how can there be a 1 in a corner with blank squares surrounding it?

The game looks great, though :)
Title: Re: Axe Minesweeper
Post by: meishe91 on September 01, 2010, 08:06:20 pm
Noticed that too. And how can there be a 1 in a corner with blank squares surrounding it?

The game looks great, though :)

Where are you talking about? I only saw the single "1" in the top left corner.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 01, 2010, 08:12:20 pm
About the slowness at the bottom left: it's a bit complicated, but it's also something that's inherent in the design.  If I manage to find a method to make the program sweep back and forth vs from just one side, it should be much improved.  

Also, the one in the corner?  Are you referring to the upper left one?  I'm pretty sure it was touching a mine...

Also, how would I do time?  I've been looking through my list of commands, and I can't find any timer-related commands.  Or am I just being stupid and overlooking it?

To prevent any delays, could I use interrupts?  Create a subprogram that adds 1 to a variable each time, and after x amount, I display another second?  I think this might be also compatible with older calculators, even though the seconds might be more elongated on the older ones.  Hmm.  If I've misunderstood what an interrupt is, this'll all go out the window...

Edit: 20th post!
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 01, 2010, 08:16:41 pm
You would most likely need to use interrupts for a timer. I think they slow down when batteries are low, though, but I could be wrong. If they don't, then at least you can keep time flow more consistent than calling a sub-routine.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 01, 2010, 08:19:49 pm
How exactly are you doing the checking for the bubbles? You could maybe make a routine that checks up and then below the selected point and then just travels one way and then back, if that makes sense. I can't better type that out if you need. Just a thought though.

As for time, technically the only way you could do accurate time would be by using assembly code with 84+'s (and I think 83+SE's can but they don't have it built in, just something but I don't know.) but Axe has no timer features that I know of. I think though the closest you can get is by using pseudo timing.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 01, 2010, 08:28:42 pm
Yeah that's what I meant. Interrupts can be used for some sort of timer. I'll ask a question in the Axe sub-forum about them.
Title: Re: Axe Minesweeper
Post by: shmibs on September 01, 2010, 08:30:46 pm
that's pretty sweet!
unless you find some way to radically increase the speed of the sweeping, though, i'd leave it as it is. pausing screen update would ruin the gray, and the only other way i can think of doing it would be storing the data in a different spot and then copying it all over after the sweeping process is over(which adds a bit of unnecessary code). oh, and a suggestion: you should try making scrolling maps larger than the screen, as nobody has ever done that either, and it would make your sweeping effect more useful. good luck!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 01, 2010, 08:38:59 pm
that's pretty sweet!
unless you find some way to radically increase the speed of the sweeping, though, i'd leave it as it is. pausing screen update would ruin the gray, and the only other way i can think of doing it would be storing the data in a different spot and then copying it all over after the sweeping process is over(which adds a bit of unnecessary code). oh, and a suggestion: you should try making scrolling maps larger than the screen, as nobody has ever done that either, and it would make your sweeping effect more useful. good luck!

You're referring to the possible speed bump if there's no updating, right?
If so, then I don't think that there'll be much of a difference even if I don't update at all, unless using DispGraph is REALLY slow.
Also, if I use the FULL command, it goes very fast, but decreases compatibility.  It also causes my gray to occasionally flicker to a slight checkerboard pattern.  Anybody know why that's happening?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 02, 2010, 01:43:43 am
DispGraph every pixel change:
Code: [Select]
For(X,0,95
For(Y,0,63
Pxl-Change(X,Y
DispGraph
End
End
Result: (http://www.omnimaga.org/images/screenshots/pixelupdate1.gif)

DispGraph every column done updating:
Code: [Select]
For(X,0,95
For(Y,0,63
Pxl-Change(X,Y
End
DispGraph
End
Result: (http://www.omnimaga.org/images/screenshots/pixelupdate2.gif)

DispGraph at the very end:
Code: [Select]
For(X,0,95
For(Y,0,63
Pxl-Change(X,Y
End
End
DispGraph
Result: (http://www.omnimaga.org/images/screenshots/pixelupdate3.gif)

Should tell you how slow DispGraph is. (thanks to TI crappy LCD drivers)
Title: Re: Axe Minesweeper
Post by: meishe91 on September 02, 2010, 01:51:26 am
Holy crap, when I looked at that first screenshot I thought you posted a TI-BASIC program on accident or something :P I know it's still faster than TI-BASIC but it still looked like it :P
Title: Re: Axe Minesweeper
Post by: Builderboy on September 02, 2010, 01:53:31 am
Yeah Dispgraph is pretty darn slow, unfortunately :( But like it is right now is very fine :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 02, 2010, 02:05:38 am
Holy crap, when I looked at that first screenshot I thought you posted a TI-BASIC program on accident or something :P I know it's still faster than TI-BASIC but it still looked like it :P
Yeah the first time I ever tried this was in 15 Mhz mode. When I made this prog mins ago I thougth I accidentally ran BASIC code x.x

Hate mail can be sent to TI-Cares.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 02, 2010, 01:02:44 pm
Wow, DispGraph is slow...

When I first saw that post, I saw the screenshots before I read anything, and I thought you were comparing TI-BASIC to Axe to ASM or something :P

Noticed that too. And how can there be a 1 in a corner with blank squares surrounding it?

The game looks great, though :)

Where are you talking about? I only saw the single "1" in the top left corner.

Yeah, exactly. How can there be a one surrounded on all sides by 0s?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 02, 2010, 01:54:30 pm
It wasn't surrounded by zeros, I didn't even click those squares.  I think this is what it looked like:

1+1 ..... other stuff
+F1 .....
111 .....

Where +'s are unclicked squares and an F is a flag.
That one in the upper left corner was touching a mine on its lower right diagonal
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 02, 2010, 03:42:36 pm
Oh, whoops, miswatched x.x

The game looks great, by the way.
/me loses
Title: Re: Axe Minesweeper
Post by: meishe91 on September 02, 2010, 05:40:51 pm
Ya, only blank squares expand. Numbers just open the square you clicked :) So like Michael_Lee said there were numbers on both sides of it that weren't clicked while a bomb was diagonal to it.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 02, 2010, 05:51:10 pm
Yeah, I didn't pay enough attention. I thought it expanded and left a 1 in the corner :D
Title: Re: Axe Minesweeper
Post by: meishe91 on September 02, 2010, 05:57:29 pm
Oh :P Nah, just normal :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 03, 2010, 07:00:50 pm
Okay, update!

I added some new features, they are:
> Options menu - customize the minefield size and the amount of mines (trivia: you can't pick more mines then there's room)
> Increased speed - it now checks only half the time as before, which I found was a good compromise between speed and graphics
> Undo button - accidentally hit a mine?  Undo to restore the state!

Future features:
> Toggle the question mark on/off
> Add the timer
> Add high scores and other appvar goodiness
> Pause in-game (to return to the menu, pause time, etc.)
> Save your game and return to it later!
> Maybe make a larger minefield, which scrolls (Most likely, the minefield won't be able to go over 19x19 - is it worth implementing this feature?)

I'll add some better screenshots in a moment.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 03, 2010, 07:08:09 pm
Great! Glad to see some progress :) Keep up the good work. Did you do any work with the filling routine? Or is it the same?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 03, 2010, 07:15:25 pm
Wow looks pretty nice and the flood filling seems much faster now. Nice job! :)
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 03, 2010, 07:17:23 pm
Awesome work!  If you allow the minefield to be larger with scrolling, this will for sure make this game the best ti-83+ minesweeper on the market.
Title: Re: Axe Minesweeper
Post by: guy6020665 on September 03, 2010, 08:15:19 pm
Nice Job!!  :D

Looks really cool!

One question, doesn't an undo button take the point out of minesweeper?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 03, 2010, 08:47:50 pm
The filling routine is essentially the same, I might have tweaked a few numbers here and there, but the bulk of it is the same. 
Pruning down the amount of DispGraphs made a HUGE difference.

About the undo button: I've decided that if it's used, you can't record your time for that particular minefield. 
So there's a penalty for using the Undo button - you can't really 'win' the game if you use it.
I just added it for those users who are less concerned about earning a high score more concerned about being able to actually finish the game.
(If I ever distribute this to my classmates, there's a high that they don't know how to play minesweeper.  This might soften the learning curve for them.  Maybe.)
Maybe I should add an option to disable showing the location of all the mines when you lose?
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 03, 2010, 08:51:47 pm
The filling routine is essentially the same, I might have tweaked a few numbers here and there, but the bulk of it is the same. 
Pruning down the amount of DispGraphs made a HUGE difference.

About the undo button: I've decided that if it's used, you can't record your time for that particular minefield. 
So there's a penalty for using the Undo button - you can't really 'win' the game if you use it.
I just added it for those users who are less concerned about earning a high score more concerned about being able to actually finish the game.
(If I ever distribute this to my classmates, there's a high that they don't know how to play minesweeper.  This might soften the learning curve for them.  Maybe.)
Maybe I should add an option to disable showing the location of all the mines when you lose?

glad to hear of the improvements.

* you made me lose the game....
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 03, 2010, 08:52:22 pm
Aah I see, so it was definitively the DispGraph making such a difference. Now you know how slow the TI-82/83/84/+/SE LCD drivers are D: .

As for the Undo, maybe add difficulty modes or bonuses for when someone wants to disable it. Another option to disable showing the location of mines when you lose and a bonus for it seems like another cool idea. :)
Title: Re: Axe Minesweeper
Post by: willrandship on September 03, 2010, 08:52:32 pm
Well, how about having a sort of Undo/give up selection, then showing all the mines?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 04, 2010, 12:15:37 am
Aah I see, so it was definitively the DispGraph making such a difference. Now you know how slow the TI-82/83/84/+/SE LCD drivers are D: .

As for the Undo, maybe add difficulty modes or bonuses for when someone wants to disable it. Another option to disable showing the location of mines when you lose and a bonus for it seems like another cool idea. :)

I don't really like the idea of using bonuses to reward the player if they chose to disable the Undo button.  If the player avoids clicking the undo button, there's really no difference between the player who leaves it enabled and the one who disables it.

I think that instead of rewarding the player, I should penalize the player for clicking the undo button - in exchange for having unlimited shots at solving a particular minefield, they can't save their time to the high scores list.

Besides, I can't really think of any kind of bonus I could give.

But I think I will add an option to toggle to show the location of the mines when you lose.
Title: Re: Axe Minesweeper
Post by: Builderboy on September 04, 2010, 01:15:49 am
Yeah i like the idea of penalizing a player that uses the undo button in their game by removing highscores.  Because what about those times when you just cant seem to find a place to advance?  You just gotta guess and you really dont want to lose :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 04, 2010, 05:52:09 pm
Ah, right. I guess penalizing might be better.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 04, 2010, 10:13:13 pm
Yeah, not letting the player get into the high scores is a good idea. You can't really reward someone for avoiding a button, and penalizing by adding more time would get complicated :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 08, 2010, 01:02:29 am
Sorry for not posting an update for so long, but I decided to rewrite my code, which took awhile.
Well, the rewriting was easy, but the program was plagued by many inexplicable bugs.  Now, several coding sprees and many blasphemies later, I now have a program that is bug-free (as far as I can tell), and actually includes several new features (pause and a better options menu). 

I've rewrote the code so that it'll be easy to integrate scrolling and high scores, plus the entire code feels much more streamlined and less patchy.
I'll do that later; I'm pretty tired right now.
Meh, I didn't expect to be debugging this long, it's not like the rewrite was drastic, or anything...

I think I'll get scrolling, high scores, and the timer up by Saturday at the very latest.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 08, 2010, 01:07:22 am
Now, several coding sprees and many blasphemies later,
This is when we want to use a hammer. ;D

I understand debugging can be a pain tho x.x. I love the options added. Do you think scrolling will slow the grayscale down? Looks nice as always :)
Title: Re: Axe Minesweeper
Post by: meishe91 on September 08, 2010, 01:52:38 am
That looks really cool! Good luck with the rest of it :)
Title: Re: Axe Minesweeper
Post by: Jonius7 on September 08, 2010, 01:53:30 am
nice screenshot
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 08, 2010, 10:56:03 am
Do you think scrolling will slow the grayscale down?

Nah, probably not.  Or, at least, it won't be too noticeable.  It might be slower when a blank bubble is expanding (but only because there are so many more squares to check).
The way I'm envisioning it, integrating scrolling should only add about 5-10 lines max, as long as they're carefully crafted and written.

Right now, my greatest concern is getting the timer and the getKeys to work together nicely. 
I seem to have an irrational phobia of interrupts - it's probably because my calculator keeps getting RAM clears almost every time I try experimenting with them...

~~~~

Questions:
Is an 18x18 maximum field fine?  I think that if I use appvars instead of L1 to store my map data, I could increase the size dramatically at the cost of taking up RAM.  (A 40x40 field would take up about 3200 bytes, for example.)
When compiled, the program is 7873 bytes.  Is this a reasonable size?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 08, 2010, 01:27:47 pm
Aw sorry to hear about interrupts. I think one issue is that getkey doesn't work with them, though. I wonder what would be the solution around that. As for timer, you may need to use one without interrupts, but then it may be hard to keep in sync. That said, it is fine if it is not perfect, though. After all, no timer in NES games were.

18x18 seeems fine to me, personally. At 40x40 we might start getting lost cuz of the small screen x.x
Title: Re: Axe Minesweeper
Post by: meishe91 on September 08, 2010, 02:31:46 pm
I don't know if you have room for this idea, since I don't know how much room your tiles take, but when you add scrolling in if you could have like an arrow pointing in the ways you can move, like a small one, that could be helpful. It could tell you when you hit the end and such. Just a thought :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 08, 2010, 03:06:03 pm
I'm not sure if I'll have room to add arrows...
I was thinking of adding a sort of grayscale rectangle in the right menu to show how large the minefield is, and a rectangle with black borders to show which portion of the minefield you are currently viewing.
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 08, 2010, 07:35:16 pm
maybe have a wrap around minefield?

OOOOOOOOOO
OOOOOOOOOO
OOOOOOOOOO
OOOOOOOOOO
OOOOOOOOOO

OOOOOOOOOO  (x = click)
OOOOXOOOOO
OOOOOOOOOO
OOOOOOOOOO
OOOOOOOOOO

O3     1OOOOO
O3 22OOOOOO
OOOOOOOOOO
OO33 4OOOOO
OO     OOOOOO

see it wrapped around the top?
(would do horizontally too)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 08, 2010, 07:40:34 pm
that would be crazy O.O if i remember correctly there is an easter egg in windows where you can get to that, and it was a lot harder. 
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 08, 2010, 07:49:41 pm
Wow maybe that would be cool actually
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 08, 2010, 07:52:33 pm
Wrap-around... hmm...
I don't think it'll bloat my code too much, but it'll require much cleverness to pull off...

(Suddenly, Michael remembers setting up scrolling, and sees visions of endless debugging sessions)

On second though, scrolling first.  If I have time left over, I'll try adding an option for it.
(I'm going to have to add a second options menu, the way things are going.)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 08, 2010, 08:21:52 pm
You should just have one option menu but when moving the cursor down it would switch to another page of option like the TI-84+ 2.53MP MODE menu, or have it to scroll when selecting options below. Idk how easy it would be, though.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 08, 2010, 08:25:12 pm
I'm not sure if I'll have room to add arrows...
I was thinking of adding a sort of grayscale rectangle in the right menu to show how large the minefield is, and a rectangle with black borders to show which portion of the minefield you are currently viewing.

Ya, that's what I was afraid of. Maybe you could put arrows in the menu/info bar or something. I don't know. What ever works will be great :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 11, 2010, 12:33:49 am
I'm starting to get a little worried.

Currently, when compiled, my game takes up 8755 bytes on my calculator (the source takes up 4992)

My fear is that when I finish adding scrolling, timer, and high scores, the program will take over 10,000 bytes - this seems a little unreasonable for a game of minesweeper.

Is 9000+ bytes a reasonable size?
Title: Re: Axe Minesweeper
Post by: meishe91 on September 11, 2010, 12:36:44 am
I'm not sure. However I would worry about just getting a working version done for the contest and then start working on size optimizations :)
Title: Re: Axe Minesweeper
Post by: nemo on September 11, 2010, 12:39:04 am
how much data do you explicitly define..? i would think you would need under 100 bytes for all the sprites, do you know what's taking up all the memory?
Title: Re: Axe Minesweeper
Post by: Jonius7 on September 11, 2010, 12:42:00 am
i agree with meishe91. get the foundations down first and a full working program then work for program optimisations
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 11, 2010, 04:04:00 am
Same as Meishe91. Also, to me, it's fine if it's 12-15 KB considering the features your game has so far. However, is it gonna be an APP? Because as a regular program, you cannot have programs larger than 8 KB of executable code after compiling (this excludes the data)
Title: Re: Axe Minesweeper
Post by: meishe91 on September 11, 2010, 04:15:32 am
Woo, people agree with me :P

Ya, that might be an idea to think about (to compile to an app).

By the way, what happens if you do have more than 8KB of executable code? I never tried it :P
Title: Re: Axe Minesweeper
Post by: Netham45 on September 11, 2010, 04:17:53 am
Woo, people agree with me :P

Ya, that might be an idea to think about (to compile to an app).

By the way, what happens if you do have more than 8KB of executable code? I never tried it :P

If you try running code from anything above 8KB, the calc will simply reset and give you a nice ram cleared message.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 11, 2010, 04:49:25 am
Ah, well then it's a good thing I never tried to find out then. Thanks.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 11, 2010, 11:13:44 am
Same as Meishe91. Also, to me, it's fine if it's 12-15 KB considering the features your game has so far. However, is it gonna be an APP? Because as a regular program, you cannot have programs larger than 8 KB of executable code after compiling (this excludes the data)

Wait - whaaaaaaaaaaaat?  RAM clear?

My executable can't be larger then 8000?

Quick question: lately, I couldn't get my program to run when I used the Asm( command (although it works for everything else), so I've been using DoorsCS 7 and its homerun feature to run it directly.
Is this sort of the same thing?

Also, I think Quigibo said that compiling into an app is sort of buggy and could lead to worse then a RAM clear?  Is this true?
Title: Re: Axe Minesweeper
Post by: meishe91 on September 11, 2010, 02:28:10 pm
No, your source can be above 8000 bytes but the executable code can't be more than 8000. If I understand correctly. So say you have 2000 bytes of data and 8000 bytes of executable then the program would be 10 000 bytes but would run fine. But I'm not 100% sure so wait for someone else to answer too.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 11, 2010, 02:43:08 pm
What Meishe91 said. It's a limitation present in z80 assembly too. In FLash APP format, the limit is 16 KB. If your game executable code excluding the data is over 8 KB, I would compile in flash application form. Backup first, though. App compiling should work fine, but on certain calcs, it might not, like my old 83+. The only way to know is to do a backup on your computer then give it a try on calc. Else, try on WabbitEmu.
Title: Re: Axe Minesweeper
Post by: Quigibo on September 11, 2010, 06:21:08 pm
The App compiling used to be buggy in a very small number of calculators with the older version, but with the current versions (0.4.x), it's been working perfectly so far, I haven't heard of anyone having problems with them.  It just takes a little longer to compile.  I would backup your stuff anyway though.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 11, 2010, 07:04:50 pm
Oh, good.  Apps are fun!

I don't think backing up is a problem - I'm so paranoid that I back up almost every day, and sometimes even print my code (mainly for debugging purposes, but still, the code's preserved).
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 11, 2010, 07:55:50 pm
Yep, there's that 8 KB limit for programs (actually, it's 8811 bytes) just because TI decided it that way. In Axe I'm pretty sure data gets moved to the end, so yeah, only the executable amount counts. Wouldn't app compiling be a waste, though, unless the executable portion really is more than the limit?

Also, Quigibo: Does the app get signed by Axe? I don't really know how that stuff works...
Title: Re: Axe Minesweeper
Post by: meishe91 on September 11, 2010, 08:59:18 pm
Well if you gotta move to an app you gotta move to it whether you think it's necessary or not. Better that than risk a RAM clear, I think anyways.

As for the limit, I thought there was actually a reason why it was 8811 bytes or whatever. Like they just didn't pull it out of their butts but it made sense to some extent. I don't remember though.
Title: Re: Axe Minesweeper
Post by: calcdude84se on September 11, 2010, 09:43:39 pm
Programs start executing at $9D95. Any code executed on RAM page 0 ($C000-$FFFF, normally) will cause a reset.
$C000-$9D95=$226B=8811.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 11, 2010, 10:04:14 pm
Ah ok. Knew there was some reason.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 11, 2010, 11:25:50 pm
The App compiling used to be buggy in a very small number of calculators with the older version, but with the current versions (0.4.x), it's been working perfectly so far, I haven't heard of anyone having problems with them.  It just takes a little longer to compile.  I would backup your stuff anyway though.
I still had issues with 4.1 I believe, but I think my calc has hardware issues anyway
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 12, 2010, 01:22:55 am
New updates:
Added timer: note that when you undo, it turns into 999, the maximum allowed time.
Added high scores: currently is very basic, only shows the best time.

Updates currently in construction
Attempting to add scrolling: works, to a limited extent, but breaks the graphics and often glitches (so I didn't show it)

Future updates (if time)
Add difficulty levels (easy, medium, hard, custom)
Add 4 slots for high scores (easy, medium, hard, custom) along with names
Add wraparound
OPTIMIZE

Current issues:
Scrolling doesn't work,
Menu subprogram is too fast due to a different getKey scheme

~~~~

Sorry I couldn't get scrolling done - I'll try to finish by tomorrow. 
Well, I hope I can.  I'm going to be very unavoidably busy.

Also, Wabbitemu seems a lot faster then my calculator.  Anybody know why?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 12, 2010, 03:24:41 am
Awesome! As for wabbitemu, I have no clue sorry :(. I noticed in 15 MHz mode, Supersonic Ball runs insanely fast in it, though. Normally, Wabbitemu should run at the same speed, though. Maybe report bug to Buckeye?
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 12, 2010, 10:12:26 am
Yeah, I noticed Wabbit seemed to be a bit faster as well, even at 6 MHz. :-\
Title: Re: Axe Minesweeper
Post by: shmibs on September 12, 2010, 12:18:23 pm
did you change your floodfill algorithm? it might just be the emu running quickly, but it looks a lot better than it did the last time i saw it.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 12, 2010, 02:19:55 pm
I think it's basically the same but the number of DispGraphs he was using was changed, I think. I'm not sure though.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 12, 2010, 02:33:44 pm
I think it's basically the same but the number of DispGraphs he was using was changed, I think. I'm not sure though.
Yup, that's pretty much what I did.

Also:
I think Wabbitemu was slightly faster yesterday (not sure why).  It's probably either because the program is now an app or because I tinkered with the settings slightly.
Do apps go faster then Asm programs?
Title: Re: Axe Minesweeper
Post by: Builderboy on September 12, 2010, 02:35:14 pm
I dont think so, but i also noticed some speedup even in my Serenity game, so im not sure if its an asm thing or if its wabbit in general o.O
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 12, 2010, 02:47:36 pm
 !!!

;D   I just remembered: YOU CAN USE MODULUS IN AXE!!   ;D
I'm imagining so many things I can optimize now!

.....

*ahem*
Sorry about that - just wanted to share.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 12, 2010, 02:56:12 pm
I think Buckeye might have accidentally WabbitEmu in recent versions. I'll let him know. Which copy of WabbitEmu do you use, though? I think there are two.

And yeah modulus is awesome. It got pretty useful in Supersonic Ball, especially for smooth scrolling :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 12, 2010, 02:58:10 pm
I think Buckeye might have accidentally WabbitEmu in recent versions.

Eh, I think you're missing a verb there...

It claims its version 1.5
Title: Re: Axe Minesweeper
Post by: meishe91 on September 12, 2010, 02:58:57 pm
I'm still not really sure how to use modulus ??? But oh well, I can figure it out some other time :P
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 12, 2010, 03:00:40 pm
I think Buckeye might have accidentally WabbitEmu in recent versions.

Eh, I think you're missing a verb there...

It claims its version 1.5
http://knowyourmeme.com/memes/i-accidentally

Oh I meant the copy of wabbitemu on wabbit.codeplex.com. There are two or three, if I remember, all with the same version number.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 12, 2010, 03:08:35 pm
That... is a clever meme.

I'm not sure which version I have.  To be honest, I'm a little hazy on how exactly I managed to obtain Wabbitemu.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 13, 2010, 07:28:49 pm
Wabbit gets updated pretty often, so you might want to update yours occasionally.

I'm still not really sure how to use modulus ??? But oh well, I can figure it out some other time :P

What do you mean? Modulus is just the remainder after division. For example, if you had an array of 3 rows of 3 entries per row, and X is the entry you're in (counting across each row first, then going down), X/3 is the row number, and X^3 is the column in that row.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 13, 2010, 07:40:57 pm
Well modulus is not widely known by BASIC programmers because it doesn't have a direct modulus function (although it's possible I think to use combined functions to have modulus) and most people won't learn it in math. THose who only got BASIC as programming knowledge may have an harder time remembering
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 13, 2010, 07:41:57 pm
I learned modulus with Omnicalc.  No joke. :P

This looks like a nice program.  Good luck! :)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 13, 2010, 07:44:18 pm
I think you can use fPart like this: AfPart(A/B) to find the remainder of A/B
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 13, 2010, 07:45:50 pm
I think you can use fPart like this: AfPart(A/B) to find the remainder of A/B
Yup.  Just be careful of rounding errors. :)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 13, 2010, 07:49:17 pm
Ah yes, forgot about that D: Revised into

int(AfPart(A/B
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 13, 2010, 07:52:42 pm
Well, technically, 2.53 has modulus, but nobody seems to use it...

Added scrolling:
It glitches if you go off screen, but that can be fixed.

Also, sorry about the end where I kept clicking the same mine repeatedly.  I was using shortcut keys, and misplaced my fingers so I kept pressing the wrong buttons.
Plus, I didn't feel like finishing the entire 18x18 mine, so I quit.
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 13, 2010, 07:53:19 pm
Ah yes, forgot about that D: Revised into

int(AfPart(A/B
Erm, 2.99999999999999999 != 3 != 2...

How about round(AfPart(A/B),0 :)

Edit:Ninja'd

Well, technically, 2.53 has modulus, but nobody seems to use it...
I'm sorry, but if TI thinks introducing a useful feature on a glitchy OS is a good idea... :P

That screenie looks wonderful!  Nice job! ;D
Title: Re: Axe Minesweeper
Post by: Builderboy on September 13, 2010, 07:56:32 pm
OOps *facepalm* int doesnt round ;D
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 13, 2010, 07:58:28 pm
And about 84+MP modulus, you probably shouldn't use it since it wouldn't work on every other calc/OS.
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 13, 2010, 07:59:37 pm
Oops *facepalm* int doesnt round ;D
lol :P

* ZTrumpet facepalms Builderboy. ;D
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 13, 2010, 08:01:42 pm


Well, technically, 2.53 has modulus, but nobody seems to use it...
I'm sorry, but if TI thinks introducing a useful feature on a glitchy OS is a good idea... :P


Funny thing, actually.  Everybody says that its a glitchy OS, but I haven't found any bugs.
Unless you count slowness or some incompatibility as bugs.

And about 84+MP modulus, you probably shouldn't use it since it wouldn't work on every other calc/OS.
Good point.  Didn't think of that.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 13, 2010, 08:03:44 pm
OOps *facepalm* int doesnt round ;D

That's such an annoying glitch. Adds several bytes and at least half an hour of debugging because I keep forgetting about it.

EDIT: Michael_Lee, I think if you do enough nested expressions of a certain type (I don't remember what) it RAM clears (that's right, on the homescreen).

EDIT2: Actually, one of the more visible bugs is this: http://www.brandonw.net (http://www.brandonw.net) (go down to "fixing TI's bugs for them"). Basically, a miscode on TI's part makes xLIB useless.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 13, 2010, 08:10:53 pm
Wabbit gets updated pretty often, so you might want to update yours occasionally.

I'm still not really sure how to use modulus ??? But oh well, I can figure it out some other time :P

What do you mean? Modulus is just the remainder after division. For example, if you had an array of 3 rows of 3 entries per row, and X is the entry you're in (counting across each row first, then going down), X/3 is the row number, and X^3 is the column in that row.

I know what modulus is. But I don't know how to really use it or what I'd use it for. I never learned it in math, besides in like 4th grade when we just called it a remainder. I'd never heard the term "modulus" until Axe.

Also, about the screenshot. It looks great :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 13, 2010, 08:31:31 pm
Well, technically, 2.53 has modulus, but nobody seems to use it...
Well, if it was added in 2.53, using it would make your game incompatible with 2.43 and the 83+ :(

Also awesome screenshot!
Title: Re: Axe Minesweeper
Post by: Madskillz on September 13, 2010, 08:32:13 pm
modulus is a very useful in programming and is found in many other languages as well. It can be used for many applications like finding if a number is prime or for finding a row or many other uses. If you continue on programming, even in other languages it would be good to learn and the syntax is incredibly simple, after all it's just like all the other operators.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 13, 2010, 08:33:39 pm
Thanks for adding additional mines via scrolling!  That looks awesome!  By now the best Ti-83+ minesweeper game on the market. :D

Btw, what's the intended max for columns and rows?
Title: Re: Axe Minesweeper
Post by: meishe91 on September 13, 2010, 08:38:02 pm
modulus is a very useful in programming and is found in many other languages as well. It can be used for many applications like finding if a number is prime or for finding a row or many other uses. If you continue on programming, even in other languages it would be good to learn and the syntax is incredibly simple, after all it's just like all the other operators.

Ya, I saw that it was used in C++ from a book I need to read.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 13, 2010, 08:40:51 pm
By now the best Ti-83+ minesweeper game on the market. :D

Thanks!  That makes me really happy.

Btw, what's the intended max for columns and rows?

Currently 18 by 18.  18 feels arbitary, but it's because of the size limitation on the free RAM space.  18x18 is the maximum I could stuff into L1.
But if I use appvars instead of L1 to store my (temporary) map data, I could extend it infinitely (Although it would be best to add a limit, for the sake of speed and sanity).
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 13, 2010, 08:42:25 pm
TI should have added it to BASIC long ago. It's certainly more useful than the IS/DS functions :P

And back on topic, the updates look great!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 13, 2010, 08:46:13 pm
TI should have added it to BASIC long ago. It's certainly more useful than the IS/DS functions :P

What do those even do, anyways?  I've always wondered



Edit:  Over 50 posts!  I can play games now!
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 13, 2010, 08:50:10 pm
Well, IS increments a variable by one, checks if it's greater than a value, and if it is, it skips the next statement :P Almost completely useless. The only time I've ever seen it used was when my math teacher used a combination of Goto/Lbls and IS to make a very crude type of For loop.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 13, 2010, 08:50:38 pm
they were used on the TI-81 to do the equivalent of For() loops, but for some reasons, they were left in even after the addition of For() loops on later calcs.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 13, 2010, 08:51:23 pm
Wow, that must have been a nightmare to use for a TI-81x.x
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 13, 2010, 08:59:25 pm
Yeah, a For() loop on the TI-81 is like this:

Code: [Select]
0->A
Lbl 1
<do stuff>
IS>(A,5
Goto 1

Instead of like For(A,0,5):<do stuff>:End
Title: Re: Axe Minesweeper
Post by: shmibs on September 13, 2010, 09:27:45 pm
hmm... the scrolling looks a bit slow and messy. it should only have to increment/decrement one variable, right? what's slowing it down?

Thanks for adding additional mines via scrolling!  That looks awesome!  By now the best Ti-83+ minesweeper game on the market. :D
dittoes
awesome job!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 13, 2010, 09:40:28 pm
hmm... the scrolling looks a bit slow and messy. it should only have to increment/decrement one variable, right? what's slowing it down?

Currently, each time I want to move down, it deletes the space in the square, then redraws the squares according to my map data.
The redrawing routine is a bit bulky, although I do agree, it does feel slower then it should be.  I'll take a look at it.
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 13, 2010, 09:58:54 pm
Currently 18 by 18.  18 feels arbitary, but it's because of the size limitation on the free RAM space.  18x18 is the maximum I could stuff into L1.
But if I use appvars instead of L1 to store my (temporary) map data, I could extend it infinitely (Although it would be best to add a limit, for the sake of speed and sanity).
Why don't you check each time for size?  For instance, 10*20 would fit, but you can't enter it in.  I think that would be a nice addition. :)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 13, 2010, 10:05:06 pm
Hmmmm why is 18x18 the max? 18x18 is only 324, and L1 is much larger than that.  heck you could get away with 27x27 and still be good.  Are you using 2 bytes for each tile?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 14, 2010, 12:07:47 am
Why don't you check each time for size?  For instance, 10*20 would fit, but you can't enter it in.  I think that would be a nice addition. :)

I like that idea ;) 
But only if I have time.

Hmmmm why is 18x18 the max? 18x18 is only 324, and L1 is much larger than that.  heck you could get away with 27x27 and still be good.  Are you using 2 bytes for each tile?
Bytes 0-324 to hold the actual numbers
Bytes 325-648ish to identify if it's a flagged, questioned, or cleared square.
Total of almost 650 bytes.
If I take ztrumpet's idea, I think I could make larger fields.
Title: Re: Axe Minesweeper
Post by: Builderboy on September 14, 2010, 12:12:15 am
You could double your memory if you had the first half of the byte be number and the second half be the flagged data
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 14, 2010, 12:33:28 am
How do I do that?  (access half a byte)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 14, 2010, 12:35:35 am
First byte would be Byte/16, second byte would be Byte^16
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 14, 2010, 12:40:18 am
Divide and mod?
Title: Re: Axe Minesweeper
Post by: Builderboy on September 14, 2010, 12:44:27 am
Exactly
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 14, 2010, 12:46:01 am
???
I am very confused.
What would those do?

Edit: removed next post
Title: Re: Axe Minesweeper
Post by: Builderboy on September 14, 2010, 12:48:16 am
Sorry, im going insane right now.  I meant the first half is Byte/16 and the second half is Byte^16.  You divide the byte by 16 to get the first half of the byte, and mom id by 16 to get the second half

EDIT: Whatt??? I didnt post that first message O.O I really am going insane.  Im really sorry
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 14, 2010, 12:50:03 am
Yes, but how does that even work?
How did you figure that out?
So L1+3/16 would get me the first half and L1+3^16 would get me the second?
(3 is a random number)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 14, 2010, 12:53:10 am
Exactly, sorry if this is confusing, im sleep deprived and going insane so this might not make sense.  Actualy... bleh i cant figure out how to store to half byte...  ah ignore me, nevermind, this would make it complicated and weird, im going to go to bed before i implode
Title: Re: Axe Minesweeper
Post by: nemo on September 14, 2010, 06:59:59 am
i remember when i was trying to learn builderboy's concept it was helpful to think of it in base 10:

think of the number 48. two digits, just like a hex pair. now divide 48 by 10 and truncate the remainder. you get 4, the first digit. now mod 48 by 10, and you get 8, the second digit. it's the same for hex. if you have a pair 5F you can get the 5 separated by dividing 5F by 16, and you can get the F separated by moding 5F by 16. in axe 1.0 i think there's going to be a nib{} command which will basically do this for you.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 14, 2010, 09:46:14 am
Ah, cool, that makes sense.  Thanks!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 15, 2010, 06:43:38 pm
Okay - submitted my entry to the contest!
I didn't have time to include wraparound, or make any kind of elaborate high scores list, but now you can contort your minefield size so long as the total is equal or under to about 355.

I also ironed out a few bugs, which I've been careful to never let you guys see...  :P
Title: Re: Axe Minesweeper
Post by: Madskillz on September 15, 2010, 06:46:36 pm
Looks great good luck mate!
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 15, 2010, 06:48:35 pm
That is sick!
Title: Re: Axe Minesweeper
Post by: calcdude84se on September 15, 2010, 07:27:55 pm
This. Is. Awesome. ;D
Good luck in the contest, you deserve to place :)
Title: Re: Axe Minesweeper
Post by: LordConiupiter on September 15, 2010, 08:56:23 pm
wow! perhaps you'll even beat me :P :D
Title: Re: Axe Minesweeper
Post by: FinaleTI on September 15, 2010, 09:07:59 pm
Looks awesome! I suck at Minesweeper games, but I'll most likely be putting this on my calc regardless.
Good luck in the contest, as well.
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 15, 2010, 09:43:47 pm
sweet!!!
i can't wait to play it! :)

Title: Re: Axe Minesweeper
Post by: MRide on September 15, 2010, 09:44:58 pm
That looks great!  Good luck. :)
Title: Re: Axe Minesweeper
Post by: patriotsfan on September 15, 2010, 10:35:16 pm
Good luck mate. :) Definitely some winning qualities there. :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 04:35:27 am
This is awesome! Too bad I never received the updated version. Thankfully you submitted at least one version (that seemed to work kinda well) so it's kinda good. I'm glad you got to participate and nice project!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 16, 2010, 11:13:38 am
I'm planning to upload the new version after school today, so that disappointed people can at least play a better version.
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 16, 2010, 02:39:34 pm
yeah... the contest version crashed my calc instantly as i tried to run it...

is this the bug? or is it because i am trying to run it with DCS7?
I'm planning to upload the new version after school today, so that disappointed people can at least play a better version.
Title: Re: Axe Minesweeper
Post by: Builderboy on September 16, 2010, 02:44:38 pm
Like i said in the other topic, its an app because its so large :)
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 16, 2010, 03:48:04 pm
Like i said in the other topic, its an app because its so large :)
yeah...
my bad...
i didn;t change the settings before...
now it works fine :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 04:32:17 pm
Weird I did not get crashes in the old version... maybe I was just lucky. I did notice some weird bugs sometimes, though. I ran it as APP
Title: Re: Axe Minesweeper
Post by: Raylin on September 16, 2010, 04:47:08 pm
This game causes many crashes for me and my Axe is up-to-date. Is there something that I'm missing?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 04:52:05 pm
You compiled it as APP, right? I only tried it on OS 2.41 btw
Title: Re: Axe Minesweeper
Post by: Raylin on September 16, 2010, 04:52:39 pm
Ooooohhh.... Failsauce. I will do that when I get back to my dorm.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 04:56:45 pm
I normally included the source+executable with the entries (or in two ppl case, just the executable), but unfortunately I hit a wall when I tried to figure out how to sign apps with Rabbitsign, so people have to compile it themselves x.x
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 16, 2010, 07:31:50 pm
Kay, here.  Version 0.9.5.
I should have submitted this one, but oh well...

Should be bug-free, although that's the only difference.  (no new features).
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 16, 2010, 07:52:54 pm
I didn't have time to include wraparound, or make any kind of elaborate high scores list, but now you can contort your minefield size so long as the total is equal or under to about 355.

No wraparound? That's not a problem. Not many PC minesweeper games have wraparound, anyway :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 07:53:44 pm
Cool I'Ll try it after I'm done judging everything (although that may take a while x.x and I'm not doing any today since I am tired)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 16, 2010, 07:56:36 pm
I didn't have time to include wraparound, or make any kind of elaborate high scores list, but now you can contort your minefield size so long as the total is equal or under to about 355.

No wraparound? That's not a problem. Not many PC minesweeper games have wraparound, anyway :)

Yes, but wraparound is EPIC.  (I've never seen it or been able to enable it, but I was looking forward to trying it myself...)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 08:00:20 pm
It would be cool to try playing Minesweeper with that. I wonder if it would be very hard to implement, though? Also, would the map scroll continuously, looping, as if it was going further in the map, or would the cursor move at the edge of the map, then instantly jump on the very opposite side of the map?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 16, 2010, 08:04:04 pm
Umm...
The cursor jumping to the other side was something I was originally going to include, anyways, although I was unable to make it work in time.
Making the actual map loop continuously would be wickedly hard (and I'm unable to come up with any clever ways to do it at this moment).
With wraparound, I think you just have to make the mine placement and expanding loop to the other side once, which should be easy enough to do.
Title: Re: Axe Minesweeper
Post by: shmibs on September 16, 2010, 08:11:38 pm
map looping wouldnt be that hard...
how exactly are you storing your "map" data?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 16, 2010, 08:14:02 pm
Umm...
The cursor jumping to the other side was something I was originally going to include, anyways, although I was unable to make it work in time.
Making the actual map loop continuously would be wickedly hard (and I'm unable to come up with any clever ways to do it at this moment).
With wraparound, I think you just have to make the mine placement and expanding loop to the other side once, which should be easy enough to do.
Aah ok I see. Well, good luck!
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 16, 2010, 09:07:01 pm
Ooo, I just got this, and it's nice!
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 16, 2010, 09:20:15 pm
I didn't have time to include wraparound, or make any kind of elaborate high scores list, but now you can contort your minefield size so long as the total is equal or under to about 355.

No wraparound? That's not a problem. Not many PC minesweeper games have wraparound, anyway :)

Yes, but wraparound is EPIC.  (I've never seen it or been able to enable it, but I was looking forward to trying it myself...)

so i thought of something original? thats awesome!
Title: Re: Axe Minesweeper
Post by: shmibs on September 16, 2010, 10:08:39 pm
i now have a bit of time to explain myself as my brother is done using the machine. (you most likely know the vast majority of what is going to follow already, but im going to cover everything anyways just in case)
traditionally, map data for tilemappers is stored in one long continuous string of data. to access a set point in this data one would simply multiply the y position by the total width of the map and then add the height. thus, drawing a map from the data would look like these(you draw to a 10*10 square and store your data in L1, right?):
fixed map size of 10*10:
Code: [Select]
for(L,0,9
for(M,0,9
PtOn(6*L,6*M,10*M+L+L1
End:End
Dispgraph

which can also be written as

Code: [Select]
for(L,0,99
PtOn(L^10*6,L/10*6,L1+L
End
Dispgraph

scrolling for variable sizes larger than 10*10(x and y positions are listed as A and B respectively. these could technically be stored in a single variable with accessing via ^ and / as well, but that just makes things too confusing):

Code: [Select]
0->A->BRepeat D=15
Repeat D
getkey->D
End
A+((D=3)*(A<[total map width minus 10]))-((D=2)*(A>0))->A
B+((D=1)*(B<[total map height minus 10]))-((D=4)*(B>0))->B
for(L,0,99
PtOn(L^10*6,L/10*6,[total map width]*B+A+L1+L
End
Dispgraph
End

Scrolling with wraparound(this is very similar to the option above, but instead of just stopping at it's max value, the x and y's will revert back to zero. to make what im doing a bit cleaner and easier to read ive split some of it into if statements, but these can be incorporated easily into the long +- strings {saving quite a bit of space} as well if you want. also to make things easier to read, the L^ and L/ are L and M again):
Code: [Select]
0->A->BRepeat D=15
Repeat D
getkey->D
End
A+((D=3)*(A<[total map width]))-((D=2)*(A>0))->A
B+((D=1)*(B<[total map height]))-((D=4)*(B>0))->B
if A=[total map width] and (D=3)
0->AEnd
if A=0 and (D=2)
[total map width]->AEnd
if B=[total map height] and (D=1)
0->BEnd
if B=0 and (D=4)
[total map height]->BEnd
for(L,0,9
for(M,0,9
PtOn(L^10*6,L/10*6,B+M^[total map height]*[total map width]+(A+L^[total map width])+L1
End:End
Dispgraph
End

i dont know any specifics about the code you're using for the sweeping routine, but it could potentially do the same thing. im going to assume that you have to check all the spots around a given point to see which direction the sweeping should advance in. in that case, check if the point you are checking is less than 0(in which case you would add the total map dimension you are advancing in) and check if it is greater than the max map dimension in the direction you are checking in(in which case you simply subtract that total to find the tile you want)

this code was all written on the spot and was not bug tested, so there may be an off by 1 in here somewhere or i may have mixed up getkey(1) and getkey(4) again. however, the general concepts should work. good luck on making this happen!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 17, 2010, 08:12:44 pm
Code: [Select]
for(L,0,99
PtOn(L^10*6,L/10*6,L1+L
End
Dispgraph


I like this, but am slightly confused by the rest.

I don't think this:

scrolling for variable sizes larger than 10*10(x and y positions are listed as A and B respectively. these could technically be stored in a single variable with accessing via ^ and / as well, but that just makes things too confusing):

Code: [Select]
0->A->BRepeat D=15
Repeat D
getkey->D
End
A+((D=3)*(A<[total map width minus 10]))-((D=2)*(A>0))->A
B+((D=1)*(B<[total map height minus 10]))-((D=4)*(B>0))->B
for(L,0,99
PtOn(L^10*6,L/10*6,[total map width]*B+A+L1+L
End
Dispgraph
End

would work.  Assume that there's a 4x4 map for simplicity, and I want it to look like this: (* is a mine, and can be replaced by an arbitary number over 8 )

01*2
012*
0011
0000

If I stored that map data to L1, it would look like this:

01*2 012* 0011 0000
(with spaces for readability)

Using your code, if I just wanted to display the graph, without adding scrolling, I would do this.
Code: [Select]
For(L,0,8
PtOn(L^4*6,L/4*6,4*B+A+L1+L
End
(assuming for a moment that A=B=0)
Which would display only the first 9 numbers in L1 and look like this:

01*
201
2*0

Parts left out: 00110000

instead of ideally, this:

01*       2
012       *
001       10000
          Right column = parts of the list left out.


At this moment, I'm not sure if your code will accommodate displaying correctly.  I think you've made the same kind of error for looping too.
Or did I completely misunderstand your code or did something stupid on my part?  (apologies if I did, I'm a bit tired)
Title: Re: Axe Minesweeper
Post by: shmibs on September 18, 2010, 12:34:37 am
the second one should work, as i've made it work before:
(http://img.removedfromgame.com/imgs/1280784648-pkwalk.gif)

however, it is also quite possible that i mistyped something as i am also quite tired
ima try mocking up a couple of demos for you
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 18, 2010, 01:04:11 am
Was that a new RPG you were working on shmibs?
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 18, 2010, 01:45:12 am
Was that a new RPG you were working on shmibs?
it looks kinda like Pokemon :P
is it going to be something like a pokemon clone or something on those lines?
harvest moon perhaps?

i donno... i am just thinking up all the games that look like that :P

though it looks like pokemon the most
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 18, 2010, 01:57:20 am
Yeah indeed, although the map seemed different. It looks nice though. I wonder if he'll work on a RPG. I wish I had motivation to port ROL3 to Axe...
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 18, 2010, 10:21:15 am
@ Shimbs: Huh - so I was wrong  :P
Your sprite stays in the center of the screen though - is that built in, or can that be changed?  My screen only moves if the pointer approaches the edges.

@ Everybody:
Right now, I'm not entirely sure what people mean by wraparound, looping, etc., so:
Wraparound - by this, I mean that if a mine is located on an edge, it increments the numbers on the opposite side.  Also, if you click a blank bubble that goes off screen, then it continues on the other side.
This should be easy-ish to implement.

Map looping - by this, I mean that if the entire minefield map would continue to draw itself to the side and corners over and over, giving the illusion that the minefield has no boundary.  DJ suggested this idea, but while it would be cool, it would also be incredibly disorienting for the player and difficult for me to code.

Pointer-moving-to-the-other-side - Currently without a snappy name, this feature would let your pointer move to the other side if you hit a boundary and keep going.  This feature existed in some of my earlier screenshots, but was removed after the large minefield sizes along with time constraints made it more difficult.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 18, 2010, 12:36:00 pm
I guess wraparound might be best then, since looping looks like it might be too hard.
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 18, 2010, 01:32:58 pm
i just sent you a pm :)
i hope that has the correct information though :/

not really sure what most people mean by wrap around either...
though i would thinking that something like map looping is quite unnecessary...

the first one... it seems quite interesting... though once again... not necessary lol
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 18, 2010, 01:35:48 pm
Pointer-moving-to-the-other-side - Currently without a snappy name, this feature would let your pointer move to the other side if you hit a boundary and keep going.  This feature existed in some of my earlier screenshots, but was removed after the large minefield sizes along with time constraints made it more difficult.

As for a name, how about cursor snapping? :P
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 18, 2010, 01:40:03 pm
Pointer-moving-to-the-other-side - Currently without a snappy name, this feature would let your pointer move to the other side if you hit a boundary and keep going.  This feature existed in some of my earlier screenshots, but was removed after the large minefield sizes along with time constraints made it more difficult.
As for a name, how about cursor snapping? :P
i say we keep that part as is...
since everything works now... so why fix it? :/

EDIT: oops... i accidentally posted in his quote
Title: Re: Axe Minesweeper
Post by: meishe91 on September 18, 2010, 04:09:04 pm
Well I think I'm just gonna put my two cents in.

I feel like the idea of wrap around is a little taboo in Minesweeper. I just think it will mess with people who go in expecting to play a normal Minesweeper game but then when a number on the edge says four but they can only find two touching ones, it might mess with them and think the game is flawed. Even if you put it in a Readme.txt file there is no guarantee people will read it. Also the wrap around expansion is a little odd too because that would be completely new and odd to some people. Like I know for a fact those would mess with me unless I really focused and remembered those things.

As for what you were calling map looping. I like this idea, though not in the context you were saying. I think you should be able to scroll out to the end of the map and then when you go one more over it wraps back to the first row/column.

Code: [Select]
1234  1234
123X  X234
1234  1234
1234  1234

That's what I mean. It'll be odd if you do:

Code: [Select]
1234  2341
123X  234X
1234  2341
1234  2341

I could be wrong, but that's what it sounded like you were saying.

What ever you do though I think it'll be great. This has been an amazing project so far :) Keep up the good work and can't wait to see progress :)
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 18, 2010, 04:20:00 pm
Well I think I'm just gonna put my two cents in.

I feel like the idea of wrap around is a little taboo in Minesweeper. I just think it will mess with people who go in expecting to play a normal Minesweeper game but then when a number on the edge says four but they can only find two touching ones, it might mess with them and think the game is flawed. Even if you put it in a Readme.txt file there is no guarantee people will read it. Also the wrap around expansion is a little odd too because that would be completely new and odd to some people. Like I know for a fact those would mess with me unless I really focused and remembered those things.
I agree, which is why I was planning to add wraparound (the four in the corner sort of thing) as an extra that's toggled off by default.  If players don't like it, they can toggle it back off.

As for what you were calling map looping. I like this idea, though not in the context you were saying. I think you should be able to scroll out to the end of the map and then when you go one more over it wraps back to the first row/column.

Code: [Select]
1234  1234
123X  X234
1234  1234
1234  1234
Taking SirCmpwn's name, this would be cursor snapping.  This feature existed in my earlier vids, but I canceled it because I didn't have time to make it work with scrolling.  I'll definitely add this feature.

It'll be odd if you do:

Code: [Select]
1234  2341
123X  234X
1234  2341
1234  2341

I could be wrong, but that's what it sounded like you were saying.
I agree, I think it's disorienting (player reaction: Where am I?  Why is this minefield endless?!  Where is that last unflagged square?! Argh - ragequit!) and difficult to implement, so this probably won't happen.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 18, 2010, 04:38:23 pm
Cursor snapping can't be to hard to implement, I imagine. I mean you'd basically have your scrolling code and then when if you go over the barrier it just subtracts that many spots, or at least that's how I would do it in TI-BASIC.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 18, 2010, 04:47:06 pm
You're right - shouldn't be that hard, but at the time, I didn't want to muck around with cartesian coordinates.  This is what I do:
Code: [Select]
Determine X and Y
For(A,0,[total_rows])
    For(B,0,[total_cols])
        Pt-On(6*A+X,6*B+Y,Picture stuff)
    End
End
I use X and Y to determine where to start drawing the entire thing, and I just shift X and Y coordinates when I'm scrolling.  (most of my map is drawn off-screen, which might account for some of the slowdown).
Because I could never remember exactly how large my viewing square was (was it 62 pixels wide, or 21), I avoided.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 18, 2010, 11:42:58 pm
If you ever added endless looping around the map it would have to be turned OFF by default to not be confusing. Such feature is only really common in RPG world maps, really.
Title: Re: Axe Minesweeper
Post by: shmibs on September 19, 2010, 12:40:24 am
alright, here's the demo of the second map drawing method i posted above(with notes)
i made one for looping maps as well, but it looks like you arent going to use that, so i guess i'll keep it secret for that mega project im starting...
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 19, 2010, 01:20:03 pm
Thanks, shimbs!  I'll be sure to take a look at it.


Also, after taking a short break after the contest, I've started adding and debugging again.

This time, I added cursor snapping and fixed some bugs.

Also, I've changed the version format, because my previous way of doing it was pretty arbitrary and was fairly meaningless.  Now, it makes more sense! (but only to me)

I've also tried including the actual application - I found a way to export them from my calculator by opening a .tig group file, but I don't know if they'll actually work.  Could somebody give it a try?

Also: is it possible to change appvars while they're still archived?


Edit: I swear, wabbitemu gets faster each time I use it...
Edit 2: The app is now signed.
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 19, 2010, 01:21:31 pm
It is impossible to change the appvars without unarchiving them, unless you unlock flash and only ever reset bits.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 19, 2010, 01:45:18 pm
Looks very nice. I might try it soon. However, if the APP is unsigned, I doubt it will send to any calc. It will most likely just send to emulators.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 19, 2010, 01:51:47 pm
Just noticed - Axe came with an application signer.  If I drag my app over the .bat, will it magically sign itself?  It said it did, but how can I test?
Title: Re: Axe Minesweeper
Post by: calcdude84se on September 19, 2010, 01:52:47 pm
It should. Try to send it back to your calc ;D
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 19, 2010, 01:52:56 pm
1) Find an app.
2) Drag over .bat
3) Check for success
:P
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 19, 2010, 01:53:30 pm
Oh it does? I didn't notice. I think the way it is set now you just need to drag the APP over the bat and it signs the app. To test, you need to try sending the APP to your calc afterward.
Title: Re: Axe Minesweeper
Post by: calcdude84se on September 19, 2010, 01:54:14 pm
I ninja'd both of you :P [/off-topic]
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 19, 2010, 01:54:52 pm
Lol I noticed x.x

and I lost the game
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 19, 2010, 01:57:34 pm
MUHAHAHA!!
SUCCESS!!

*ahem*
That was fun.
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 19, 2010, 02:15:45 pm
That looks nice!  I'll hopefully be able to try it later today. :)
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 19, 2010, 02:28:45 pm
sweet... downloading now :)

thanks for the update
Title: Re: Axe Minesweeper
Post by: program4 on September 19, 2010, 02:36:13 pm
This looks awesome! I'm going to try it out right now.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 24, 2010, 06:56:51 pm
Another minor update: doubled the potential minefield size and altered the appvar to accommodate future high score stuff.

...

I just spent several days debugging the doubling minefield stuff, only to find out that Axe 0.4.5 supports working directly with nibbles...

Oh well - at least I learned something new.


Also: Important - if you've played a previous version, you have to delete the appvar it created (which is MINES4DE) before playing this new one.
Well, you don't have to, but you'll have some oddities if you tried.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 24, 2010, 06:59:39 pm
Nice to see updates! And yeah Axe is gonna add that soon, but I guess it's better to not wait because releases are very sparse now that he's at University.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 24, 2010, 07:05:18 pm
Great work, Michael_Lee!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 24, 2010, 07:09:29 pm
...You can just call me Michael, you know.  Isn't it kind of awkward having to press that underscore?
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 24, 2010, 07:11:11 pm
Not_really,_I_guess_.__It's_right_next_to_backspace,_which_gets_pressed_often_enough.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 24, 2010, 07:23:50 pm
One key away from the backspace, plus the shift button.

Well, it's awkward for me, at least (which makes logging in a minor hassle)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 24, 2010, 07:26:03 pm
...You can just call me Michael, you know.  Isn't it kind of awkward having to press that underscore?
Please don't be so picky. Some people are just used to calling forum users by their exact nicknames. I personally often omit the underscore, though. It might be because on IRC I was used to auto-completing nicknames with TAB, though.
Title: Re: Axe Minesweeper
Post by: SirCmpwn on September 24, 2010, 07:26:46 pm
Yeah, I use tab complete when available, but I try to write entire usernames by hand if need be.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 24, 2010, 07:32:45 pm
Besides, I can type around 70-80 words per minute :)
Title: Re: Axe Minesweeper
Post by: Deep Toaster on September 24, 2010, 07:42:21 pm
Besides, I can type around 70-80 words per minute :)

And many of us can do that on the calc too ;)
Title: Re: Axe Minesweeper
Post by: meishe91 on September 24, 2010, 07:49:30 pm
Great to see some progress :) Hope things continue to go well.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 24, 2010, 07:52:54 pm
...You can just call me Michael, you know.  Isn't it kind of awkward having to press that underscore?

DJ just sent me a PM, so...

I apologize if that comment appeared rude - that really wasn't my intention.
I just felt because I have difficulty typing the underscore, other people might too, and I wanted to free them from the obligation of having to type in every last character.
It wasn't my intention to be picky - really, I don't personally care what I'm called, so long as it's vaguely recognizable, but I've always felt kind of bad about making people type more then they should.
Once again, my sincere apologies.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 24, 2010, 07:56:31 pm
Ah ok, it just seemed like you were picking on Hot Dog just for something trivial and there were people who did such stuff a lot before. I'm glad it was not the case.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 24, 2010, 08:26:32 pm
...You can just call me Michael, you know.  Isn't it kind of awkward having to press that underscore?

DJ just sent me a PM, so...

I apologize if that comment appeared rude - that really wasn't my intention.
I just felt because I have difficulty typing the underscore, other people might too, and I wanted to free them from the obligation of having to type in every last character.
It wasn't my intention to be picky - really, I don't personally care what I'm called, so long as it's vaguely recognizable, but I've always felt kind of bad about making people type more then they should.
Once again, my sincere apologies.

I appreciate that, but I knew exactly what your attitude was, and it didn't sound rude to me.  In other words, I was not offended and appreciated your offer/generosity.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 24, 2010, 08:44:29 pm
I sent a PM so maybe he clarify his post before you arrive, in case, because it can be interpreted the same way by other people like it can be interpreted differently. I was also unsure if he would read the immediate replies to it right away. I know myself I accidentally offended people and have been more careful nowadays by re-reading most of my posts, but we're not perfect so sometimes I feel it needs to be clarified. I guess it depends of people views, though.
Title: Re: Axe Minesweeper
Post by: Hot_Dog on September 24, 2010, 09:49:44 pm
I sent a PM so maybe he clarify his post before you arrive, in case, because it can be interpreted the same way by other people like it can be interpreted differently. I was also unsure if he would read the immediate replies to it right away. I know myself I accidentally offended people and have been more careful nowadays by re-reading most of my posts, but we're not perfect so sometimes I feel it needs to be clarified. I guess it depends of people views, though.

Oh, I thought it was an accusation rather than asking for clarification.  Don't mind me then...when I saw he had -1 respect, that's what got me upset
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 24, 2010, 10:37:16 pm
Ok. Yeah it just seemed kinda picking up on something trivial and I wanted to be certain he clarifies that. One issue is that sometimes, people will post something in a hurry before having to go, and their post seems very hit-n-run
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 24, 2010, 10:48:04 pm
Removed by writer.
Title: Re: Axe Minesweeper
Post by: Ranman on September 24, 2010, 11:22:55 pm
Amazing looking game! Very professional looking!
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 24, 2010, 11:27:50 pm
*happybobjr sits in silence, knowing that he can't write much without saying sumething slightly rude.  -->  STUPID NOOBS <-- that was only a joke right there :P

?
Sorry, not understanding this post.
Especially the bolded 'u'
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 24, 2010, 11:30:47 pm
Same here x.x
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 25, 2010, 09:39:58 am
I think he's trying to be funny, but it didn't quite come off as so. D=
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 25, 2010, 01:24:06 pm
I misspelled something on my pc and I felt like bolding the u :P

I am not sure what i meant either though... I have had little sleep over the past week.  going to bed late and waking up at 5:00
sry.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 25, 2010, 02:02:52 pm
That happens.

On a side note, juding shall start soon (hopefully). Some games will be quick to judge, though, because I pretty much went through them already so I do not need to replay during several minutes.
Title: Re: Axe Minesweeper
Post by: Builderboy on September 25, 2010, 05:42:41 pm
Looking great :D Awesome to see the double tilemap implemented ^^ awesome to hear the nibble working got working :D
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 26, 2010, 12:31:19 am
Added multiple high scores (3 per level)
It's currently slightly buggy, plus the menu feels a little cramped, but it works.
Later, I'm going to try to add either the average success rate or the average time - I haven't decided yet.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 26, 2010, 12:42:04 am
Nice! I think the menus are fine and I love how you have multiple highscores per level. Great job so far :)

I am starting to wonder if this could get featured eventually on ticalc.org. My only concern is that there are already two other TI-84+ grayscale minesweeper clones ( http://www.ticalc.org/archives/files/fileinfo/398/39854.html and http://www.omnimaga.org/index.php?action=downloads;sa=view;down=195 ) so maybe they might not find it as new, although I personally think your game is probably the best available Minesweeper clone on the 84+ series and has much more features than the two other grayscale ones.
Title: Re: Axe Minesweeper
Post by: meishe91 on September 26, 2010, 02:29:47 am
That looks great! Keep up the good work :D
Title: Re: Axe Minesweeper
Post by: ztrumpet on September 26, 2010, 08:46:34 am
Looking nice!  I hope it gets featured as well. ;D
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 26, 2010, 07:28:31 pm
Yay!
2nd game ever, and people think that it's good!
(Well, 3rd game ever, if you count rock paper scissors.)

Note:  I think that I'll soon stop working on this game, as soon as I do four things:
1) Add an automatic game save (so that if you quit, you can can resume your game)
2) Add wraparound
3) Make it so that you have an option to never die on the first click
4) Completely rewrite the code so that it's organized.
Title: Re: Axe Minesweeper
Post by: shmibs on September 26, 2010, 07:52:24 pm
i'm loving the progress!

On a side note, juding shall start soon (hopefully). Some games will be quick to judge, though, because I pretty much went through them already so I do not need to replay during several minutes.
HUZZAH TO THAT
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 26, 2010, 08:17:30 pm
Yeah I think yours is gonna be done next, after I'm done with Squidgetx's. Then I might do Player's.
Title: Re: Axe Minesweeper
Post by: Builderboy on September 27, 2010, 01:13:07 am
Complete rewrite? O.O that seems pretty ambitions
Title: Re: Axe Minesweeper
Post by: meishe91 on September 27, 2010, 01:35:09 am
Ya, I would say unless you are expecting a speed increase or something like that a rewrite is not really needed. It's your choice in the end though. Good luck :)
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 27, 2010, 01:54:41 am
I tend to not like the rewriting part too much. Personally, I would say make sure it's bug-free then release, and maybe have a next version that is rewritten afterward. Some people fall into the trap of rewriting over and over and it becomes an endless loop causing them to never release their work, disappointing many people around.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 27, 2010, 01:57:07 pm
Well, perhaps 're-write' is too strong of a term.
I'm planning on doing a combination of editing, optimizing, and general shuffling around of codes.
The reason I want to do this is because I see lots of redundant code that could be stuffed into subprograms to shorten the length.
Also, when Axe 0.4.5 comes out, I might be able to use some of the new features.

So, I guess it's really not a re-write, because the bulk of the code would probably be unchanged.
Besides, I'm still kind of hoping that maybe it might just be possible to make an asm program, although at this point, that's probably not possible...
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 27, 2010, 02:14:08 pm
wow... just what we wanted!
thanks for the multiple highscore!

downloading and copying again...

you definetly won my vote here :)
Title: Re: Axe Minesweeper
Post by: Builderboy on September 27, 2010, 02:37:31 pm
Please note that votes should be considered based on what has been submitted on the due date of the contest, not what has been submitted afterwards.  Otherwise that give people who release more versions after the contest an advantage.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 27, 2010, 03:11:33 pm
Well, perhaps 're-write' is too strong of a term.
I'm planning on doing a combination of editing, optimizing, and general shuffling around of codes.
The reason I want to do this is because I see lots of redundant code that could be stuffed into subprograms to shorten the length.
Also, when Axe 0.4.5 comes out, I might be able to use some of the new features.

So, I guess it's really not a re-write, because the bulk of the code would probably be unchanged.
Besides, I'm still kind of hoping that maybe it might just be possible to make an asm program, although at this point, that's probably not possible...
Ah ok I see. Sounds better IMHO. Good luck on that.

Please note that votes should be considered based on what has been submitted on the due date of the contest, not what has been submitted afterwards.  Otherwise that give people who release more versions after the contest an advantage.
Yeah I agree. Personally I judged the entries based on the versions I received for the contest. I have yet to try the new versions because I did not want to be influenced by feature additions or anything.
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 27, 2010, 03:54:55 pm
wow... just what we wanted!
thanks for the multiple highscore!

downloading and copying again...

you definetly won my vote here :)

where's the download link?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 27, 2010, 03:56:36 pm
wow... just what we wanted!
thanks for the multiple highscore!

downloading and copying again...

you definetly won my vote here :)

where's the download link?
. (http://www.omnimaga.org/index.php?action=dlattach;topic=4264.0;attach=3469)
Title: Re: Axe Minesweeper
Post by: Happybobjr on September 27, 2010, 03:58:29 pm
:P
Title: Re: Axe Minesweeper
Post by: whitevalkery on September 27, 2010, 04:16:37 pm
Please note that votes should be considered based on what has been submitted on the due date of the contest, not what has been submitted afterwards.  Otherwise that give people who release more versions after the contest an advantage.
yeah... i know...
but eitherway... it was the best minesweeper so far... (at that time)

and now its even better

thats what i meant to say...
Title: Re: Axe Minesweeper
Post by: Michael_Lee on September 27, 2010, 09:19:06 pm
Please note that votes should be considered based on what has been submitted on the due date of the contest, not what has been submitted afterwards.  Otherwise that give people who release more versions after the contest an advantage.

I have to agree with this, although it would be nice if it were otherwise...

I actually feel kind of bad about releasing a bunch of versions after the contest - do you guys think I should have waited longer before starting to post updates?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on September 27, 2010, 09:32:50 pm
Nah it's OK imho. After all, voting also depends of the user's opinion and judging was done based on the versions uploaded for the contest.

It is kinda unfortunate that your update email missed the attachment and that I worked that night, otherwise I would have warned you via e-mail immediately after receiving the update that missed a download link.

But don't worry too much about it. Normally, the contest rules were planned with uninished games being allowed, but after the deadline, you were free to release updates anywhere you want. See Squidgetx entry, for example.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on October 06, 2010, 11:01:45 am
(Almost a necropost (but not quite)):

I present a new feature: saving and replaying!
Inspired by overly inquisitive teachers, I created a feature which automatically saves your game when you quit (either by pausing and pressing 'Quit' or by pressing [CLEAR])
Even if you muck around with the extras or the difficulty levels, it should automatically set them back to your previous game.
Note that the game is not saved if you simply return to menu.

Also note that saving creates about a 760 byte appvar - I didn't want to mess around with compression (although I probably should have).

Also, while working on this appvar, I uncovered a whole nest of appvar ickiness that had been hiding in my program from nearly day one.  Now, playing the game for the first time should no longer return RAM clearing parabolic variable things.

Title: Re: Axe Minesweeper
Post by: meishe91 on October 06, 2010, 11:18:52 am
Looking great ;D Keep up the great work.
Title: Re: Axe Minesweeper
Post by: Deep Toaster on October 06, 2010, 11:49:27 am
Saving seems great!

And as for compression, you could probably get it down to at least half the size (and a quarter if you don't save the numbers and choose to recalculate them when it is reloaded). Just an idea.
Title: Re: Axe Minesweeper
Post by: whitevalkery on October 06, 2010, 12:38:57 pm
nice... it just keeps getting better an better
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on October 06, 2010, 02:26:38 pm
Nice, I like the new features! :)
Title: Re: Axe Minesweeper
Post by: ztrumpet on October 06, 2010, 05:56:04 pm
Looks great and plays great!  Nice job! ;D

Also, I kinda got a high score >_<
Title: Re: Axe Minesweeper
Post by: Michael_Lee on October 06, 2010, 06:04:29 pm
...
Did you just rickroll me?

O.o

And yeah, the custom high scores are pretty meaningless, but it's always good for a laugh...

Edit: Also, this new version of the game has been added to both the Omnimaga archives and ticalc.org, where they are both pending checking, or whatever it is the administrators do.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on October 06, 2010, 11:53:40 pm
Gah, txtroll'd x.x

Interesting highscore you got there, Ztrumpet :P

Also file approved :D
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on October 16, 2010, 02:38:11 pm
I know this is off-topic but did you check your forum PMs Michael_Lee?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on October 16, 2010, 02:43:24 pm
Erm... Yes.

I'm actually browsing on Amazon at this very moment.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on October 16, 2010, 02:47:35 pm
Ah ok, because you did not bother to reply so I thought you missed them X.x
Title: Re: Axe Minesweeper
Post by: Munchor on October 16, 2010, 04:26:30 pm
Really Good minesweeper, just tried it niice joob
Title: Re: Axe Minesweeper
Post by: Michael_Lee on January 24, 2011, 06:46:18 pm
After learning lots about Axe and programming in general, I glanced over the source code for Minesweeper, and I was appalled by how inefficient and unnecessarily complicated it was in many places.  As a result, I've decided to attempt completely rewriting the program, and while I can't promise that I'll have time to finish this, I've decided to start.  So far, I've rewritten my menu system (although most of the graphics should be the same), finally created an algorithm that implements wrap-around (after promising this feature for practically forever :P), created a much more optimized stack-based algorithm for the expanding bubble thing, and shifted code around in general.

However, I have several questions:
I was considering adding an option that lets the user use nearly all of their RAM so that they can make massive levels if they want.  Should I do this, or just stick with using the amount of data in L1 instead?  If I do allow this to be a feature, should I leave it as a permanent feature, or should I let the user turn this option on or off?

Besides toggling question marks on and off, toggling wraparound, and toggling showing the positions of the mines when you die, should I add any more options?

What else should I add to make Minesweeper even better?
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on January 25, 2011, 02:00:49 am
That reminds me when I glanced at Illusiat 12 code. I was shocked O.O Although I guess we all have to start somewhere :D

I hope you can finish this project, though. I was sad to see it never finished :(

You could add more options such as larger maps, but try to make sure it cannot cause Mem clears. Otherwise it might be best to stick to L1. Good luck!
Title: Re: Axe Minesweeper
Post by: Deep Toaster on January 28, 2011, 07:16:30 pm
After learning lots about Axe and programming in general, I glanced over the source code for Minesweeper, and I was appalled by how inefficient and unnecessarily complicated it was in many places.  As a result, I've decided to attempt completely rewriting the program, and while I can't promise that I'll have time to finish this, I've decided to start.  So far, I've rewritten my menu system (although most of the graphics should be the same), finally created an algorithm that implements wrap-around (after promising this feature for practically forever :P), created a much more optimized stack-based algorithm for the expanding bubble thing, and shifted code around in general.

Same here with Simul and all that stuff :D Axe's just so fast that you don't notice if it's really, really unoptimized.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on January 30, 2011, 08:07:12 pm
This is also why so many new TI programmers still manage to release games that are as great as some others. That said we need to make sure that these newcomers still learn to optimize, though, so the community won't take bad habits of not optimizing at all (when  the 84+ came out this started happening with TI-BASIC: The standard was 3 frames per second for a BASIC game on a regular 83+, but then this became the standard on SE calcs too, so 83+ users were stuck not being able to play those games due to lack of optimizations.
Title: Re: Axe Minesweeper
Post by: JustCause on February 03, 2011, 09:58:27 am
For your giant maps, I suggest creating an appvar buffer only if the map won't fit in L1. You can check for this at runtime. Store your map offset to a var and use that var everywhere you would normally use L1. That's what I did for cUbEs.
Title: Re: Axe Minesweeper
Post by: Michael_Lee on February 03, 2011, 02:57:25 pm
For your giant maps, I suggest creating an appvar buffer only if the map won't fit in L1. You can check for this at runtime. Store your map offset to a var and use that var everywhere you would normally use L1. That's what I did for cUbEs.

I'm planning on combining L1 and an appvar buffer for map data.  At the start, if the map size is larger then L1 can handle, then a temporary appvar is created to handle the overflow.  I'm planning on either RLE or something I think is called macro compression (?) to compress my maps when using the teacher key.  I don't want to keep a huge appvar in memory :P
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on February 04, 2011, 02:19:16 am
THey would be compressed upon quitting, right? Otherwise that might be a bit slow if they're decompressed everytime they're drawn. X.x

By the way should I create a sub-forum for this?
Title: Re: Axe Minesweeper
Post by: Michael_Lee on February 06, 2011, 10:44:50 pm
Yup, I'm planning on adding as much compression as possible when saving map data.

As for the subforum, I think probably not.  I've been really busy lately, and it's been difficult of late to work on calc projects.
Besides, after this final update (plus bug fixes if needed), I'll probably just finally lay this to rest.
Title: Re: Axe Minesweeper
Post by: DJ Omnimaga on February 08, 2011, 12:57:33 am
Hmm I see. I hope you aren't planning to quit calc stuff anytime soon. it would suck to see you go so early. :(