23 comments

[ 3.4 ms ] story [ 63.0 ms ] thread
In Win2000 you could read from and write to memory of any app [1]. Which we did for minesweeper. By setting proper values and forcing the window to repaint we implemented a simple snake game. The body of the snake consisted of bombs and "fruit" you had to eat were flags. I don't remember how we captured keyboard input though.

[1] If your app had admin rights IIRC

There were GameHack and ArtMoney, they allow you to track memory address for specific value in game (gold, money, scores...) by input the value before and after changing it, and then allow to change the value at that address.
A modern version of these tools is Cheat Engine, which is brilliant: http://www.cheatengine.org
Watch out for the adware bundled into its installers, though. :(
Yeah.

There is a link on the download page to a zip of the files, without an installer (or the installCore adware/bundleware).

>"For those that want to have Cheat engine without automated installer and installCore recommendation during installation, click here"

To be honest, that's not really acceptable.

We as a community should be pushing back hard against open source developers who want to monetize their work with malware. There are better ways for them to make money from their work than something that's ethically dubious at best.

>[1] If your app had admin rights IIRC

only if it's a different user. you can read/write to your own processes without admin

I always thought Minesweeper would compute the minefield dynamically as you played instead of generating a fixed map of the minefield at the beginning of the game.
There’s the possibility of painting yourself into a corner (generating an inconsistent board) if you do it on the fly. It could be done, but it’s probably just simpler to generate it at the outset and then do lookups.

edit: unless you just meant that the adjacency numbers could be generated on the fly, in which case painting yourself into a corner isn’t a concern

There is one place where it's dynamic, which is that if your very first click is on a mine, then it'll relocate it to the upper-left corner (or the next available spot).
I'm surprised it's done this way... I'd expect that it just doesn't generate the mines until the first click.
Nice.

I once wrote a “clone”[1] and when someone here pointed out the “first click is safe” feature, I implemented it by putting the reshuffle inside a while. Never thought of the first click as being “pre game”...

[1] https://www.ronilan.com/bugsweeper/

Modern versions of Minesweeper actually makes it so nothing _around_ your first click is a mine, so you always reveal more than one square.

https://guangcongluo.com/dminer/

is a version I wrote while trying to teach myself React.

I'm now questioning my memory because I'm convinced I have hit a mine on the first click before ...
you can also delete the game physically from your disk