Minesveeper Advent Calendar 2023

Minesveeper ?? - ...

Please Be Patient

...

...

...

...

...

...

...

Time:
0:00.000



Custom Setting By:


Custom settings cannot be uploaded until you verify that your settings are able to generate by starting a game.
Upload this custom setting in order to share it with others.
I agree to the Rules and Data Policy of uploading custom settings
Board Size:
X:
Y:
Adjust Mode:



Adjust Direction



Edit Board:
Relative Probability:


Tile:


Brush Size:





Mines:







Fixed Pattern
Topology:









Neighborhood:
Type:


Small Mines: ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ Large Mines:

Display Style:




Display Options:
Decrementing
Gray Mines
Animals:
Sheep
Rat
Dog
Horse

Allow Chording
Title:


Author:

Description:




Check Syntax:


Merry Christmas!
Welcome to the 24th day of the advent calender, like in 2018 you can now create your own settings. Although this time around you get to have a bit more freedom with the settings you create. So how do you get started making your own setting?

There are 3 menus for this day.
Play lets you try out the custom setting that you've made.
Edit gives you a bunch of options for how you can adjust the settings.
Json lets you edit the JSON Data for the setting you are making. This is a less user friendly way to edit the settings, but can in some situations be more powerful. When you want to make something that the regular editor doesn't have an explicit option for.

Once you are happy with your setting you can request a share link, this will upload the settings and give you a link directing to those settings, so other people can play them.
For more detailed instructions on how to use the editor as well as some tips how you can replicate mechanics from other days, not available as options you can check the Editor Guide.

Special Thanks to Zettex for letting me use/modify some of their fraction tiles from Mineday.

Welcome for the 5 year anniversary of Minesveeper
You may have heard of Minesweeper before, this here may or may not be a similar game to that. Now Minesveeper began five years ago with an advent calendar, so now for the anniversary we go for another round, with another 24 variants.
After 2018 and until now, I have only made 6 further Minesveeper games. So this year there will be Minesveeper 38 to 61. Yes, I will continue the numbering instead of restarting from one. And also I am skipping over Minesveeper 37 for now, it will be released later. Playing older variants may be advantageous but is not required to play/understand these variants. You are perfectly welcome to start here.

If you want discuss Minesveeper or get informed when I make any games in the future, I do have a Discord Server for that.

Disclaimer:
On several occasions I have chosen mechanics over accessibility. Some days may not be reasonably playable for (partially) colorblind people. In addition while most mechanics are introduced with easier games, even the standard rules of Minesweeper, the overall complexity of some mechanics significantly exceed the mechanics of the 2018 advent calendar which may result in some far more challenging puzzles. While I can confirm that all days are humanly possible, some settings may not fall in the range of everyone. The player should thus not feel bad about being unable to complete a day, later days can be played even without completing prior days.

So I hope that even if you struggle with some days, you'll still find some that you like.
Have Fun!


Settings
If you are a first time player, you may be confused by the days being offset by 37. In case you'd rather have days starting at 1, you can enable this offset to show the day of December 2023 on which they unlock. For the true Minesveeper experience, it is recommended not to use this setting.

Offset to 1





The controls for this game are adjusted when played on mobile. In the vast majority of situations this game should automatically detect if it is played on a mobile device. However, in case that this detection fails. This option will let you manually switch between normal and mobile mode.

Invert Mobile Detection





When you are in mobile mode an icon will appear fixed to the top left of your screen. This serves as an always visible indicator, if you are in flag or dig mode and will also let you switch between the top, without needing to scroll the button on the side. In case you do not want this icon and would rather just use the button like in older variants, this option will let you disable it.

Disable Mode Icon





When you play a custom setting by someone, which has not been specifically approved by me. You will receive a warning about unreviewed user submitted content. If you accept any potential risks that come with that you can disable this warning with this option.

Disable User Submitted Content Warning





Settings are persistently stored using local storage, this information is only stored on the client and is not sent to the server. If you want to delete this information use the button below:


...

This game is not unlocked yet, please be patient.
New games are unlocked at midnight central european time.
If you are Periodle player: Yes Periodle is offset and will switch to the next day one hour earlier as it runs on summer time.

If you are unsure on which day a setting will be unlocked subtract 37 to get the corresponding day of December (or enable the offset to 1 option in the settings). And if you live in America expect the Minesveeper variants to unlock in the evening of the day prior. Yes I have chosen to just put everyone on the same timezone, instead of messing with timezones and creating problems where some people would get to play a certain variant before it got unlocked for others.

You have reached the end of the 2023 Minesveeper advent calendar.
Minesveeper will be returning in the future, but for now I want to focus on some other projects.
But this is not about what I will do, this is about what you can do now.

With the advent calendar now being over, I am hereby uploading the code for it so that if you want to make your own things based on it you can now do so. I have prepared to separate Downloads based on what files you want. First off is a smaller template you can use for coding your own setting and re-uploading it wherever you'd like. In addition if you want to check the files for this page with all of the days you can play here as well as many other files you can download the full package instead. This also comes with many off the textures as png files and various utility scripts I used while working on the advent calendar.


Reupload Template Full Advent Calendar

You may use these however you like for any non-commercial purpose as long as credit is given to this advent calendar.

Getting Started
For most cases I would recommend using the Reupload Template. Here you can unzip the files and open index.html with a browser of your choice and that's it you are now playing this custom setting locally. To modify it you can edit js/mySettings.js if you are familiar with the JSON representation for custom settings you will be at a significant advantage, if not it may be helpful to check how this works with Minesveeper 61 as well as checking the Editor Guide. So what's new? Before you could use "copyFrom" instructions to use special features from some days. However, now you can freely code your own functions here. To see how they work you can check the individual implementations of the days in the full version with all files. Here is a quick overview of which functions can easily be set in the custom settings.

  • customFlagFunction overwrites the default right click
  • customDigFunction overwrites the default left click
  • postFlagFunction will be executed after a flag was placed or removed
  • postGenFunction will be executed after all mines were generated
  • preDigFunction will be executed before a tile is dug up, through clicking or chording. (Warning: This is also executed if chording does not open any new tiles.)
  • entityEvents allows you to implement an event listener for all events distributed to the entities on the board. The third parameter specifies the type of the event.
  • renderFunction overwrites the default draw function for individual tiles.

Of course since you have access to the code of the game you can modify whatever default behavior you'd like.

Adding Your Own Textures
Some ideas might require you to create your own textures or modify existing textures. All game textures are included as png files with the full download. In most cases where you just want to add a new texture you can just add an extra line of code to load it. However, if you want to modify existing textures, you should know that those aren't loaded from the png files.
Instead they are encoded as Base64 (with some extra replacements for common character sequences) in js/b64.js. I would recommend to not manually add textures to this file and instead generate this file with the provided scripts. Simply modify images/textureList to include your new textures and use the python script images/MakeB64.py to generate a new version of js/b64.js. Encoding images as Base64 in a script files avoids having to load a large amount of individual files. It also allows accessing image data within the code for local testing. Where loading images from local png files would prevent accessing image data in some browsers.

Have Fun!
I'm curious to see what mechanics people will come up with using this.