source code of /projects/anonymine/index.html
| Last modified | |
| Lines | 467 | 
Parent directory Download CGIread sitemap Main page
Quick links: about contact content dl-unix dl-windows download footer navigation news platforms release-notes screenshots title top
- <!DOCTYPE html> 
- <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
- <head> 
- <meta charset="utf-8"/> 
- <meta name="viewport" content="width=device-width, initial-scale=1"/> 
- <link rel="stylesheet" href="https://oskog97.com/style.css" type="text/css"/> 
- <link rel="icon" type="image/png" href="/favicon.png"/> 
- <link rel="canonical" href="https://oskog97.com/projects/anonymine/"/> 
- <!-- End html5 macro. --> 
- <title>Anonymine - guess free minesweeper</title> 
- <meta name="description" content="Anonymine is a text based 
- minesweeper that can be won without any guessing, and has a few other 
- features, including hexagonal and von Neumann fields."/> 
- <style> 
- #screenshots p 
- {
- margin-bottom: 2em; 
- } 
- #platforms dt 
- {
- font-size: 105%; 
- } 
- #platforms dd 
- {
- font-size: 95%; 
- margin-bottom: 0.167em; 
- } 
- .dl- 
- {
- padding-left: .5em; 
- } 
- .download 
- {
- vertical-align: middle; 
- font-size: 110%; 
- } 
- .download::before 
- {
- vertical-align: middle; 
- font-size: 250%; 
- content: '⭳'; 
- padding-right: .25em; 
- } 
- </style> 
- </head> 
- <body> 
- <!-- BEGIN autogenerated navigation --> 
- <nav><div id="navigation"><div id="nav_inner"> 
- <p><a href="#content" class="textonly">Skip navigation</a></p> 
- <p class="row"> 
- <span class="textonly" translate="no">[</span><a class="head" href="/">Home</a><span class="textonly" translate="no">]</span> 
- >> 
- <span class="textonly" translate="no">]</span><span class="sub active">Anonymine</span><span class="textonly" translate="no">[</span> 
- <span class="textonly" translate="no">[</span><a class="sub" href="/projects/light-sensor/">Analog light sensor</a><span class="textonly" translate="no">]</span> 
- <span class="textonly" translate="no">[</span><a class="sub" href="/projects/PLLM-M702A/">Reverse-engineered schematics for PLLM-M702A</a><span class="textonly" translate="no">]</span> 
- <span class="textonly" translate="no">[</span><a class="sub" href="/small-scripts/">Small scripts</a><span class="textonly" translate="no">]</span> 
- <span class="textonly" translate="no">[</span><a class="sub" href="/thinkpad/">-> My IBM thinkpad</a><span class="textonly" translate="no">]</span> 
- </p> 
- <p class="row"> 
- <span class="textonly" translate="no">[</span><a class="sub" href="/sitemap.py">Sitemap</a><span class="textonly" translate="no">]</span> 
- </p> 
- <hr class="textonly"/> 
- </div></div></nav> 
- <!-- END autogenerated navigation --> 
- <main><div id="content"> 
- <h1 id="title">Anonymine - guess free minesweeper</h1> 
- <p class="notprint" style="max-width: 100%;"> 
- <!-- If I make these images link back, it will cause 
- accessiblity issues on mobile devices. --> 
- <img src="imgs4/banner1.png" alt="" width="420" height="280"/> 
- <img src="imgs4/banner2.png" alt="" width="420" height="280"/> 
- </p> 
- <div id="top"> 
- <p>Latest version: 0.6.44 released on 2025-06-22 
- - <a href="#news">what's new</a></p> 
- <ul> 
- <li><a href="#about">About</a></li> 
- <li> 
- <a href="#download">Download</a> 
- <small> 
- <span class="dl-">(<a href="#dl-unix">Linux & Unix,</a></span> 
- <a href="#dl-unix" class="dl-">macOS,</a> 
- <a href="#dl-windows" class="dl-">Windows,</a> 
- <a href="#dl-unix" class="dl-">Haiku OS</a>) 
- </small> 
- </li> 
- <li><a href="#screenshots">Screenshots</a></li> 
- <li><a href="#platforms">Platforms</a></li> 
- <li><a href="#news">What's new?</a></li> 
- </ul> 
- <p> 
- You can try it on my demo server using SSH. 
- Log in as play@anonymine-demo.oskog97.com, 
- password is "play".<br/> 
- <a href="http://anonymine-demo.oskog97.com:8080/" class="printurl" 
- >Leaderboard for public demo server</a> 
- </p> 
- </div> 
- <section><div class="section" id="about"> 
- <h2>About</h2> 
- <p class="notprint"><small><a href="#top">To top of the page</a></small></p> 
- <p> 
- Anonymine is the "anonymous minesweeper" as I never had any 
- name for it, but I think "Anonymine" works just fine. 
- Back in December 2015 I was curious about creating an algorithm 
- for solving minesweeper, and then I needed an excuse for it 
- so I turned it into a terminal game that can be solved wihout any 
- guessing. 
- </p> 
- <p> 
- Do note that it runs in the terminal, so it may not be your cup of 
- tea. Mouse input is usually supported, but only really useful in 
- hexagonal mode. 
- </p> 
- <p> 
- Being solvable without guessing is not its only feature, 
- it has many other unusual or even unique features: 
- the games are fully customizable and Anonymine seems to be the 
- only minesweeper with <span class="a"><a 
- href="https://en.wikipedia.org/wiki/Von_Neumann_neighborhood" 
- >von Neumann grids</a>.</span> 
- <!-- No printurl, it's just Wikipedia. --> 
- </p> 
- <p> 
- For each game you can set the field type (normal / hexagonal 
- / von Neumann), width, height and number of mines, only 
- restricted to certain minimums and security limits (to avoid 
- igniting your computer). 
- </p> 
- <div class="atom"> 
- <h3>The supported field types/game types are:</h3> 
- <div class="atom"> 
- <!-- FIXME: This should be a dl with dt and dd. --> 
- <h4>Von Neumann grids</h4> 
- <p> 
- I have never seen another 
- minesweeper that can have fields with von Neumann 
- grids. In a von Neumann neighbourhood (grid), 
- each cell/square has only four neighbours, at the edges 
- but not at the corners. 
- </p> 
- <p> 
- The biggest number you'll ever see is 3. But that doesn't 
- mean it's easy, it's quite the opposite. 
- </p> 
- </div> 
- <div class="atom"> 
- <h4>Traditional fields with Moore grids</h4> 
- <p>Like any other minsweeper.</p> 
- </div> 
- <div class="atom"> 
- <h4>Hexagonal fields</h4> 
- <p> 
- Every cell is a hexagon and has six 
- neighbours, (with obvious exceptions). 
- This mode has separate key bindings because there is no 
- single "up" and single "down" direction. 
- </p> 
- </div> 
- </div> 
- <div class="atom"> 
- <h3>More features:</h3> 
- <ul> 
- <li> 
- It looks almost fine on monochrome terminals. 
- </li> 
- <li> 
- Even the losers can get on their very own highscores table. 
- </li> 
- <li> 
- There are cheat codes. They're not useful, but will be a 
- challenge to crack. 
- </li> 
- </ul> 
- </div> 
- </div></section> 
- <section><div class="section" id="download"> 
- <h2>Download</h2> 
- <p class="notprint"><small><a href="#top">To top of the page</a></small></p> 
- <p><strong>NOTE</strong>: Not for smartphones and tablets.</p> 
- <p class="notprint bold"> 
- <a href="#dl-unix">Linux, macOS, unix-likes, Haiku</a>, 
- <a href="#dl-windows">Windows</a>, 
- </p> 
- <p><a href="https://oskog97.com/archive/anonymine/?C=M&O=A" 
- class="printurl">Archive of all released versions</a></p> 
- <p> 
- If you find any bugs, please <span class="a"><a 
- class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/issues" 
- >create an issue</a>.</span> 
- </p> 
- <div class="atom"> 
- <h3 id="dl-unix">GNU/Linux, macOS, *BSD, Cygwin, other unix-like 
- operating systems, and Haiku</h3> 
- <ul> 
- <li><a href="https://oskog97.com/archive/anonymine/anonymine-0.6.44.tar.xz" 
- class="printurl download">xz compressed tarball of version 0.6.44 from 2025-06-22</a></li> 
- <li><a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/">GitLab</a></li> 
- <li><a href="#release-notes">Release notes</a></li> 
- </ul> 
- </div> 
- <div class="atom"> 
- <h3 id="dl-windows">Windows</h3> 
- <p>There are a few options:</p> 
- <ol> 
- <li><strong>Recommended:</strong> WSL (both 1 and 2 work just fine)</li> 
- <li>Automatic Cygwin and Anonymine installer</li> 
- <li>Install Python and windows-curses</li> 
- </ol> 
- <p><a href="https://gitlab.com/oskog97/anonymine/-/wikis/Windows" 
- >Comparison of options</a></p> 
- <h4>Automatic Cygwin installer</h4> 
- Downloads: 
- <ul> 
- <li><a href="https://oskog97.com/archive/anonymine/windows/Anonymine-Windows-19.0-stage2-1.20-cygsetup-2.934.zip" 
- class="printurl download">Windows installer from 2025-07-02 
- (version 19.0-stage2-1.20 
- with Cygwin setup 2.934) 
- </a></li> 
- <li><a href="https://gitlab.com/oskog97/anonymine-windows" 
- class="printurl">Fetch newest version from GitLab 
- </a></li> 
- </ul> 
- <h4>Install Python and windows-curses</h4> 
- It is possible to run the unix version with some limitations. 
- <ul> 
- <li><a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/blob/master/doc/INSTALL.Windows.txt"> 
- Instructions</a> 
- </li> 
- <li>You can download as a zip from <span class="a"><a 
- href="https://gitlab.com/oskog97/anonymine/-/archive/master/anonymine-master.zip" 
- class="printurl">Gitlab</a>.</span></li> 
- </ul> 
- </div> 
- </div></section> 
- <section><div class="section" id="screenshots"> 
- <h2>Screenshots</h2> 
- <p class="notprint"><small><a href="#top">To top of the page</a></small></p> 
- <p> 
- <img width="484" height="316" alt="" src="imgs4/last-cells.png"/> 
- <br/><span class="caption"> 
- The von Neumann field: The biggest number you'll ever see 
- is 3. This mode makes Anonymine a unique minesweeper. 
- (Attention mode has been enabled to find the last few 
- cells.) 
- </span> 
- </p> 
- <p> 
- <img width="484" height="316" alt="" src="imgs4/traditional.png"/> 
- <br/><span class="caption"> 
- Traditional (Moore) field, nothing special 
- </span> 
- </p> 
- <p> 
- <img width="484" height="316" alt="" src="imgs4/hexagonal.png"/> 
- <br/><span class="caption"> 
- Hexagonal field 
- </span> 
- </p> 
- <p> 
- <img width="484" height="316" alt="" src="imgs4/losers.png"/> 
- <br/><span class="caption"> 
- The losers' highscores 
- </span> 
- </p> 
- </div></section> 
- <section><div class="section" id="platforms"> 
- <h2>Platforms</h2> 
- <p class="notprint"><small><a href="#top">To top of the page</a></small></p> 
- <p> 
- Check the <a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/-/blob/master/README.md#blob-content-holder" 
- >readme</a> and <a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/blob/master/doc/INSTALL.txt" 
- >installation instructions</a> for more details. 
- </p> 
- <div class="atom"> 
- <h3>Tested on</h3> 
- <p> 
- Here's a list of various platforms Anonymine has been tested 
- on. It works on all of them unless I say otherwise, but there 
- may be some minor issues. 
- </p> 
- <ul> 
- <li>Various GNU/Linux distributions</li> 
- <li>FreeBSD, OpenBSD, NetBSD, DragonflyBSD</li> 
- <li>Haiku</li> 
- <li>SerenityOS</li> 
- <li>macOS</li> 
- <li>OpenIndiana and Solaris</li> 
- <li>Debian GNU/Hurd</li> 
- <li>Cygwin (on Windows and ReactOS)</li> 
- <li>Windows and ReactOS (without Cygwin)</li> 
- </ul> 
- Python interpreters: 
- <ul> 
- <li>CPython</li> 
- <li>PyPy (lacks <code>curses</code> on Windows)</li> 
- </ul> 
- </div> 
- <div class="atom"> 
- <h4>"Some coercion required"</h4> 
- <p> 
- Using <span class="a"><a href="http://gitlab.com/oskog97/poop" 
- class="printurl">Pööp</a>,</span> Anonymine can be made to work 
- on even more platforms. 
- <span class="bold">"Do not try this at home"</span> 
- </p> 
- <dl> 
- <dt>GraalVM Python</dt> 
- <dd>Needs only <code>curses</code></dd> 
- <dt>PyPy on Windows</dt> 
- <dd>Needs only <code>curses</code>, 
- but the Windows console is really slow</dd> 
- <dt>Jython</dt> 
- <dd>Needs <code>curses</code> and <code>multiprocessing</code></dd> 
- <dt>IronPython</dt> 
- <dd>Needs very different configuration files and 
- <code>curses</code> and <code>multiprocessing</code></dd> 
- <dt>Minix 3.4</dt> 
- <dd>Needs <code>multiprocessing</code> and <code>threading</code></dd> 
- </dl> 
- </div> 
- </div></section> 
- <section><div class="section" id="news"> 
- <h2>What's new?</h2> 
- <p class="notprint"><small><a href="#top">To top of the page</a></small></p> 
- <dl> 
- <dt id="release-notes">Release notes</dt> 
- <dd> 
- <pre>0.6.43 
- Fixed issue with highscores on Windows 11 
- 0.6.42 
- Removed the seed feature 
- 0.6.41 
- Fixed two Python 3.13+ issues: 
- - Import failure on all platforms. 
- - Crash when fork()ing on some rare platforms 
- Some fixes and workaround have been included already in 0.6.38 
- 0.6.36 
- - cursescfg updated and older versions are no longer compatible in 
- hexagonal mode. Added: 'grid2', 'grid3', and 'grid4' 
- [macOS, SerenityOS] 
- - Anonymine will change TERM for itself to enable the numpad to work. 
- [SerenityOS] 
- - Workaround for recent bug (July 2024), see doc/INSTALL.SerenityOS</pre> 
- <p><a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/blob/master/doc/RELEASE-NOTES" 
- >See the rest of the file on Gitlab</a></p> 
- </dd> 
- <dt>Bigger changes</dt> 
- <dd> 
- <pre>What's new in 0.7.0 since 0.6.0? 
- ================================ 
- 2024-xx-xx 
- Improved platform support: 
- - Python 3.13+ supported since 0.6.38 
- - SerenityOS (First in 0.6.26, at least 0.6.38 required due to Python) 
- - Icon for Anonymine on Haiku (0.6.17) 
- - Mouse support on Haiku (0.6.37) 
- - Fixed a race condition that previosuly required a bunch of platform 
- specific workarounds (0.6.11) 
- - Use Notepad to display highscores on Windows (0.6.33) 
- Updates: 
- - New, much faster, field initialization algorithm. (0.6.29) 
- - Fixed race condition (fix14) (0.6.11) 
- Security fixes: 
- - 0.6.19: Prevent information leak if Anonymine is used as login shell 
- for ssh. 
- - 0.6.32: Prevent local DoS. Don't read the entire highscores file, 
- which is writeable by everyone, if it's too big. 
- - 0.6.34: Check file permissions before loading configuration files</pre> 
- <p><a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/blob/master/doc/NEWS" 
- >See the rest of NEWS on Gitlab</a></p> 
- </dd> 
- <dt>Low level changes</dt> 
- <dd> 
- <p><a class="printurl" 
- href="https://gitlab.com/oskog97/anonymine/blob/master/ChangeLog" 
- >See ChangeLog on Gitlab</a></p> 
- </dd> 
- </dl> 
- </div></section> 
- </div></main> 
- <!-- INCLUDED FOOTER --> 
- <footer><div id="footer"> 
- <hr class="textonly"/> 
- <p> 
- Copyright © Oskar Skog<br/> 
- Website content released under the <a 
- href="https://creativecommons.org/licenses/by/4.0/" rel="license noopener" 
- target="_blank">Creative Commons Attribution (CC-BY 4.0)</a> license 
- and my software usually under the <span class="a"><a target="_blank" 
- rel="noopener" 
- href="https://opensource.org/licenses/BSD-2-Clause">FreeBSD license 
- (2-clause)</a>.</span> 
- <br/> 
- Images may be from other sites, I should have cited useful sources 
- somewhere on the page. 
- <span class="notprint">Contact me if I haven't.</span> 
- </p> 
- <p id="contact" class="notprint"> 
- You can contact me at: <a href="mailto:oskar@oskog97.com" 
- rel="noopener" target="_blank">oskar@oskog97.com</a> 
- <span class="a">(<a href="/pgp-pub/oskar.asc" 
- >PGP public key</a>)</span> 
- </p> 
- <p> <a class="notprint" href="https://oskog97.com/read/?path=/style.css"> 
- CSS Stylesheet 
- </a> 
- <a href="https://validator.w3.org/check/referrer" rel="nofollow noopener" 
- target="_blank" class="notprint"><span 
- class="img">Valid HTML5</span 
- ></a><br/> 
- </p> 
- </div></footer> 
- <!-- END OF INCLUDED FOOTER --> 
- </body> 
- </html>