We like daily games, we like Minesweeper - so here is Sweepr. Every day, it generates a unique, deterministic and verified solvable puzzle, that gets gradually harder over the week.
The generator runs up to 3,000 seeded attempts per date and rejects any board where a full constraint solver (direct deduction → constraint subtraction → bifurcation) leaves any cell undetermined. Boards are also filtered by a complexity score derived from solver step count, constraint overlap, and bifurcation depth - difficulty targets are calibrated within a range that gradually increases. Almost everything is delivered as is, so you can read the logic in app.js directly.
The difficulty scales from Mon–Sun: 8×8/8 mines → 13×13/40 mines (which means today's is the easiest, so worth giving a go immediately). The share format shows time plus stats split by penalties, so clean runs are distinguishable. The leaderboard can be filtered to only show no-casualty, no-hint, no-guess completions from the day - which shows you how well you did against clean gamers, but unfortunately not by otherwise removing the nasty cheaters.
It is extremely easy to cheat, since by caching the board server side I also have to send the mine positions in the same initial response. I also didn't like the latency introduced by validating guesses server side synchronously. Any advice on this much appreciated - in the meantime I'm sure we'll see plenty of 1 second solves, hopefully the game is fun enough for most people that they a) want to play it themselves and b) don't care too much about the leaderboard.
roshiya•17m ago
Out of curiosity, how many generated boards get rejected before finding a guess-free puzzle at the higher difficulty levels? The 3,000-attempt limit caught my attention.
youreawizerdhar•1h ago
The generator runs up to 3,000 seeded attempts per date and rejects any board where a full constraint solver (direct deduction → constraint subtraction → bifurcation) leaves any cell undetermined. Boards are also filtered by a complexity score derived from solver step count, constraint overlap, and bifurcation depth - difficulty targets are calibrated within a range that gradually increases. Almost everything is delivered as is, so you can read the logic in app.js directly.
The difficulty scales from Mon–Sun: 8×8/8 mines → 13×13/40 mines (which means today's is the easiest, so worth giving a go immediately). The share format shows time plus stats split by penalties, so clean runs are distinguishable. The leaderboard can be filtered to only show no-casualty, no-hint, no-guess completions from the day - which shows you how well you did against clean gamers, but unfortunately not by otherwise removing the nasty cheaters.
It is extremely easy to cheat, since by caching the board server side I also have to send the mine positions in the same initial response. I also didn't like the latency introduced by validating guesses server side synchronously. Any advice on this much appreciated - in the meantime I'm sure we'll see plenty of 1 second solves, hopefully the game is fun enough for most people that they a) want to play it themselves and b) don't care too much about the leaderboard.
roshiya•17m ago