Minesweeper v2.0.0 (multiple languages available)

This is the balance between a large block and small. Having ‘variable’ sized blocks introduces lots of complexity as you need to a way to navigate between blocks - either a BAT (that’s a block allocation table) at the start of the EEPROM or a pointer from one block to the next. The issue with the second approach is that EEPROM ‘blocks’ will not be contiguous so it would be impossible navigate.

If you get it right, the system could and should be used by all games. You could have a game look for the next available block and if none are found, start cycling through old games and (arbitarily) claim an old, used block. Maybe a low (one of the reserved ones?) EEPROM byte could store a pointer to the ‘oldest’ block.

1 Like

Not really. If you encode the size of the block into the header of the block then you know how far to step until you reach the next one.
Sort of like having a one-way linked list.

That’s how some implementations of malloc work (or at least partly how they work).
This problem is actually quite similar to the one malloc has to solve,
so looking at malloc implementations is a reasonable approach.

That’s an option, though it does take space in itself.
(Reducable by allocating blocks as a multiple of a certain size, e.g. 8 bytes)

Blocks are only non-contiguous if you chose to allocate them that way.

Gaps from deleting can either be fixed by shuffling blocks or by having a flag to mark the block as unallocated (or both), so games that are looking for a block can sometimes take one that’s between two other blocks but has been deallocated.

To get it right I’d have to be attempting to solve it for all games from the start.

Minesweeper doesn’t need a complex block system.
Even if I came up with a system to solve the issue of multiple save blocks, it would probably wouldn’t be suitable as a universal system for managing save blocks because it would be founded on different assumptions.

Deleting a variable sized block and reusing the space with a smaller block will make them non-contiguous.

Anyhow, it was just an idea that has been floating around for a long time and contributed to by greater minds than I. Due to the various opinions, it would almost take someone to write something ‘definitive’ and let the objectors pick over it. If the solution addresses most cases, then people can adopt it. If a developer chooses not to go with the ‘recommended’ or preferred way, then they run the risk of alienating owners by not caring about their other games.

1 Like

Found it :slight_smile: Reminded me of this:

unnamed

Strange. Why did it remind you of that?

Maybe I didn’t find it then! :smile: Reminded me because that is what Sonic would do if you didn’t press anything for a while…

So you didn’t find it then :wink:

1 Like

I can’t wait for more people to find it, something cool might appear after… or not…

I can assure you that the easter egg isn’t based on something happening after a period of time.

If you did find the easer egg, perhaps you accidentally pressed a button and didn’t realise?

this game is simple but nice to play and addictive! :fu:

3 Likes

Yes, it’s a game that i always tried to not play because i thought it was boring… until i tried it on the Arduboy, then it became one of my favourite for that handheld.

And there’s a easter egg hidden somewhere in it. Just wish more people could find it. Here’s a hint… it could be a ‘game changer’.

@Pharap did a good job on that game, the coding under the hood is quite something.

3 Likes

I haven’t forgotten, my backlog is just really long and continually growing.

2 Likes

I feel guilty now. :see_no_evil:

1 Like

It’s fine. If I hadn’t been helping with Arduwars I’d probably have fallen into the trap known as Skyrim or ended up sacrificing my wallet to lord Gaben.

Procrastination is a terrible disease.

2 Likes

I’m going to be trying to get through the issue backlog in the next few days.

@uXe, would you mind checking if this branch solved the linux compilation issue?
If there are no other issues then I can merge the branch immediately.

if you need I can traduce it in Italian.

2 Likes

All good, compiles fine now cobber! :+1:

1 Like

@chrisz
I would be happy to add an italian translation if you could provide one.
I’ll PM you with some details to avoid clutting up the thread.

@uXe
Excellent, consider it merged.

v2.0.0 has just been released:

This update is 80% aesthetic, 5% backend and 15% fancy new bidirectional save system.

Fancy new graphics provided by @Vampirics.


Minesweeper.arduboy will be coming soon, just need to get some new screenshots.
Minesweeper.arduboy is available.

There’s a PR ready for updating the entry on @eried’s repo, it will be merged when @eried has a some time available from his busy schedule.

5 Likes

Here’s a teaser of the new themes feature.
I’m only going to post the ‘Sea’ theme though,
I’ll keep the other four themes a surprise…

Gameplay


Also, thanks to @Vampirics, @Nicole_Birgel and @eried for helping with translations, as always.

I’m afraid I cut @filmote out of providing the Aussie names for the themes because he was asleep at the time, but I’m sure he’ll appreciate them.

And of course, all the big backgrounds supplied by the new themes feature were created by our resident artist @Vampirics.

4 Likes